Skip to content
← Back to all tools

hledger

Free

Your ledger is a plain text file — Git-friendly and still readable in twenty years

Open Source No Ads No Tracking Offline No Sign-up Cross-platform

A plain text double-entry accounting tool — the ledger is a human-readable text file, and hledger checks it and produces reports. It comes with a command line, a terminal UI (hledger-ui) and a web UI (hledger-web), produces balance sheets, income statements and cash flow reports, and imports CSV with rule files that categorize transactions. The file format is compatible with Ledger.

Why we picked it

GPL-3.0-or-later, 4,700 stars, maintained by Simon Michael since 2007. The current stable release is 1.52.4 from September 2026, with 2.0 previews in testing alongside.

The idea behind plain text accounting is that the ledger is not locked in any program's database. It is a text file, a few lines per transaction:

2026-09-20 Grocery store
    expenses:food        86.50 USD
    assets:checking

hledger reads the file, checks that every transaction balances, and produces reports on demand: hledger bs for the balance sheet, hledger is for the income statement, hledger reg expenses:food for one account's register. Because it is text you can edit it in any editor, version it with Git, see this month's changes with diff, and switch tools without exporting anything.

The real time saver is CSV import rules. Write a .rules file for your bank's statement that names the date and amount columns and maps keywords to accounts (anything mentioning "transit" goes to transport), and from then on a monthly hledger import brings in new transactions categorized and de-duplicated. An hour up front, a few minutes each month after.

If you would rather not read reports on the command line, hledger-ui is an interactive terminal interface and hledger-web offers viewing and entry in a browser.

To be clear about:

  • There is no graphical installer wizard and no point-and-click entry screen. You record by editing text or answering hledger add prompts; it suits people willing to write a few lines of configuration.
  • The barrier, as with GnuCash, is double-entry concepts, plus a text format to learn. The documentation is thorough.
  • There is no direct bank connection; every number comes from what you record or import. Good for privacy, less good for convenience.