Local-first personal finance for people who don't trust the cloud.
Named after the Elder Futhark rune ᚠ — Old Norse for wealth.
I needed a personal finance app that was free, local (no cloud, no account), and complete enough to handle categories, recurring payments, P.IVA tax, and receipt scanning.
Nothing checked all three boxes. Free apps were too basic. Powerful apps were paywalled or cloud-only.
Nobody had built it the right way. So I built it myself.
Fehu is a desktop app for tracking personal finances — income, expenses, savings, receipts, recurring payments. Everything runs locally: no account, no sync, no subscription, no servers. Your data is a single SQLite file on your disk.
| Dashboard | KPI cards, monthly bar chart, expense donut by category, Sankey money-flow chart, budget alerts |
| Transactions | Table and calendar views, inline category creation, file attachments, cash / card badges, multi-currency |
| Recurring | Templates that auto-insert at the scheduled date — daily, weekly, monthly, yearly |
| Categories | Icon + color picker, optional monthly budget cap with dashboard alert |
| Goals | Savings funds with progress bars — contributions create linked transactions, reduce saldo, appear in all charts. Per-goal history view. Dashboard overview card. |
| OCR receipts | Drag-drop an image → Tesseract 5 extracts amount, date, merchant → local LLM categorizes automatically |
| P.IVA calculator | Italian freelance tax: Forfettario / Ordinario / Semplificato, INPS variants, ±20% projections. Rates auto-fetched from GitHub (2026 INPS + IRPEF). |
| Telegram bot | Add expenses and receipts from Telegram; desktop notifications via local bot |
| Import / Export | Import from Registro Lavoro XLSX, export filtered CSV and XLSX |
| Backup & Restore | One-click full SQLite database export and restore |
| Dark / Light theme | Persistent, floating card layout |
| Native menu bar | macOS native menu with keyboard shortcuts (⌘1–7, ⌘N, ⌘F, ⌘E, ⌘,) |
| Dependency | Required | Purpose |
|---|---|---|
| Tesseract 5 | Yes | OCR engine for receipt scanning |
| Ollama | No | Local LLM auto-categorization (keyword fallback when offline) |
macOS:
brew install tesseract tesseract-langWindows: download the installer from UB Mannheim. Default path C:\Program Files\Tesseract-OCR\ is auto-detected.
Download the latest release from Releases:
| Platform | File |
|---|---|
| macOS Apple Silicon | Fehu_*_aarch64.dmg |
| macOS Intel | Fehu_*_x86_64.dmg |
| Windows | Fehu_*_x64_en-US.msi (recommended) or Fehu_*_x64-setup.exe |
macOS — Gatekeeper: if the app is blocked on first launch, run:
xattr -dr com.apple.quarantine /Applications/Fehu.appOr use the
Rimuovi_Quarantine.commandscript included in the DMG.
Windows — SmartScreen: the app is not commercially signed (open source, free). If blocked:
- Click More info
- Click Run anyway
The
.msiinstaller is less likely to trigger this warning.
Prerequisites: Node.js 20+, pnpm, Rust stable, Xcode CLT (macOS) or VS Build Tools (Windows).
git clone https://github.com/ZonatedCord/Fehu
cd Fehu
pnpm install
pnpm tauri build # → src-tauri/target/release/bundle/pnpm tauri dev # dev server with hot-reload| Layer | Technology |
|---|---|
| Desktop shell | Tauri 2 (Rust backend) |
| Frontend | Svelte 5 + TypeScript + Vite |
| Database | SQLite via rusqlite (WAL mode) |
| OCR | Tesseract 5 (local subprocess) |
| LLM | Ollama HTTP API (model configurable) |
| Charts | Chart.js 4 + custom Sankey |
| Icons | @lucide/svelte |
| Bot | Python aiogram 3 sidecar |
MIT — see LICENSE.
Built by Marco Barlera with Claude Code