GnuCash & Double-Entry Desktop Accounting
GnuCash, HomeBank, KMyMoney, Money Manager Ex, Skrooge, Eqonomize — the desktop OSS double-entry accounting landscape.
The desktop OSS finance landscape is dominated by GnuCash — a venerable, somewhat ugly, very capable double-entry accounting app that has run households + small businesses for two decades. Lighter alternatives (HomeBank, Money Manager Ex) trade depth for friendliness. GPLv2 / GPLv3 across the board. For envelope budgeting see Actual Budget; for plain-text accounting see Beancount + Fava; for the broader self-host OSS personal index see Self-Hosted Personal Apps; for SMB-business accounting see Accounting & Bookkeeping; for the post-Mint paid hosted side see Bill Tracking & Household Finance.
The tools
- ★ ★ GnuCash — free OSS (GPLv2); the venerable double-entry accounting desktop; cross-platform (macOS / Linux / Windows); SQLite + XML backends; mature 2002+; supports investments, business invoicing, payroll-light, multi-currency.
- https://www.gnucash.org/
- https://github.com/Gnucash/gnucash
- Mobile: GnuCash Mobile (Android — read-mostly companion); on iOS via web export.
- ★ HomeBank — free OSS (GPLv2); lighter than GnuCash; great charts; cross-platform; not double-entry. Best fit for "I want a clean desktop personal-finance tracker, not full bookkeeping."
- KMyMoney — free OSS (GPLv2); KDE-flavored; double-entry; mature; cross-platform but feels best on KDE.
- ★ Money Manager Ex (MMEX) — free OSS (GPLv2); cross-platform; clean UI; SQLite-backed; growing community; Android companion (read-mostly).
- Skrooge — free OSS (GPLv3); KDE-flavored; double-entry-ish; nice reports; smaller community.
- Eqonomize! — free OSS (GPLv2); Linux-only; lightweight; somewhat dated.
When to pick double-entry desktop
- ★ Multi-account household with investments + multiple currencies — GnuCash handles this cleanly; many spreadsheet workflows do not.
- ★ Want a bookkeeper-style audit trail — every transaction has two sides; balances reconcile or you find the bug.
- ★ Long-term commitment — GnuCash files you opened in 2008 still open today.
- ★ Privacy-respecting — pure desktop; no cloud; no Plaid; you control everything.
When desktop double-entry is wrong
- Mobile-first lifestyle — desktop OSS apps have weak mobile stories; GnuCash Mobile is read-mostly.
- Want envelope budgeting — Actual Budget is a much better fit.
- Want web-app + sync across devices — Firefly III (Firefly III Deep) or Beancount + Fava (Beancount + Fava).
- Want bank aggregation built-in — most desktop OSS imports CSV/OFX manually.
Investments + multi-currency in GnuCash
- ★ Stock + mutual fund accounts — GnuCash treats them as commodity accounts; great cost-basis + lot tracking.
- ★ Multi-currency — built-in; daily exchange rates via Finance::Quote (Yahoo / AlphaVantage / etc.).
- ★ Reports — net worth, cash flow, asset allocation, investment performance; HTML output; configurable.
- Crypto — works as a commodity; manual price updates or scripts.
Business / freelance use
- ★ Customers + Vendors + Invoices — built-in; print-ready; AR/AP tracking.
- ★ Payroll — light; usable for tiny shops; outgrow it for real payroll.
- ★ Tax export — TXF export for US tax software (TurboTax, FreeTaxUSA).
- See also Accounting & Bookkeeping and Freelance Bookkeeping (Wave).
Mobile + sync stories (the weak spot)
- GnuCash Mobile (Android): companion data-entry; export and import on desktop; not real-time sync.
- GnuCash file in Syncthing / Nextcloud: works but requires single-writer discipline — opening on two devices simultaneously corrupts.
- MySQL / Postgres backend — GnuCash supports this; experienced sysadmins use it for multi-device sync, but most stick with SQLite.
Backups + file format
- ★ Default XML format — text-friendly; diff-able if you must.
- ★ SQLite backend — single file; back up daily; rotating snapshots.
- MySQL / Postgres — for power users; allows multi-user but adds operational burden.
License / pricing
- GnuCash, HomeBank, KMyMoney, Money Manager Ex, Skrooge, Eqonomize: free OSS (GPL family).
- Companion mobile apps: free.
- Finance::Quote: free OSS perl module for price feeds.
Pick this if…
- Default OSS desktop double-entry, household + investments: GnuCash.
- Lighter than GnuCash, just want clean tracking: HomeBank.
- KDE user, want native: KMyMoney or Skrooge.
- Cross-platform clean SQLite-backed personal finance: Money Manager Ex.
- Want web UI / multi-device: Firefly III or Actual Budget instead.
- Want plain-text in git, not desktop: Beancount + Fava instead.