Skip to main content

localfiscal

Local-first, private receipt + invoice + ledger for solopreneurs and small businesses — money is exact, amounts are never invented, exports import cleanly.

Open source (MIT) · Local-first sqlite · Exact money (never floats) · Optional local Ollama vision · One-command Docker.

The problem

Solopreneurs and small teams drown in paper and digital receipts, manual categorization, invoice chasing, and painful tax prep. Existing tools are either dated desktop apps, heavy self-hosted platforms, or cloud SaaS that lock you in and exfiltrate your data. And the ones that handle money often do it with floats — so the numbers quietly disagree. localfiscal stays on your machine and gets the boring, important parts right.

A local-first Python CLI + minimal web UI that runs entirely on your machine. Ingest receipts (images/PDFs) with a locale-aware heuristic parser (and optional local Ollama vision) — amounts are stored as exact integer minor units with an explicit currency, and a receipt it cannot read is flagged needs-review rather than given a fabricated amount. Keep a private sqlite ledger, generate invoice PDFs, produce signed income / expense / net reports, and export real CSV (RFC-4180) and OFX/QFX. One-command Docker, non-root, loopback-only by default. Nothing leaves your device unless you explicitly export.

Quickstart

Run via Docker (recommended) or install from source. Core has no mandatory external services.

Docker (easiest):

git clone https://github.com/OrionArchitekton/localfiscal
cd localfiscal
docker compose up --build
# open http://127.0.0.1:8080  (binds loopback only)

Command surface

  • ingest: Read a receipt image/PDF. A locale-aware parser extracts vendor / amount / date / category into the ledger; an unreadable amount is flagged needs-review, never invented. Optional local Ollama vision with --vision.
  • add: Manually add a transaction to the private sqlite ledger (--income for income, otherwise expense). Amounts are parsed exactly to integer minor units.
  • list-tx: List recent transactions from the local ledger (newest first).
  • invoice: Generate a clean professional invoice PDF for a client.
  • report: Produce signed income / expense / net reports per currency (Markdown, JSON, or CSV) — all derived from one exact integer source, so they always agree.
  • export: Export the full ledger as real CSV (RFC-4180) or OFX/QFX for your accountant or accounting software.
  • health: Quick health check and DB status.

Why it is different

  • Truly local-first & private: Everything lives in a single sqlite file on your machine. Optional local Ollama vision for better receipt OCR is off by default — with no endpoint configured there is no network call, ever. Data never leaves unless you explicitly export.
  • Correct & honest about money: Amounts are exact integer minor units with an explicit ISO-4217 currency — never floats. Markdown, JSON, and CSV reports always agree to the cent, and mixed currencies are reported separately instead of summed into a false total.
  • Honest by construction: A receipt it cannot parse is flagged needs-review, never given an invented amount, and the web upload is path-traversal-safe. The v0.2 "harden & honest" release makes every claim on this page true and tested — exports included.
  • Solopreneur & SMB friendly: Simple CLI + web. One-command, non-root Docker. Real CSV and OFX/QFX exports accountants actually use. No subscriptions, no vendor lock-in, no data hostage situation.

Links