4.5k stars · GPL-3.0 · 1.52.1 (2026-04-28), read from the About sidebar on the repository page · Track this in Scout
Keeps double-entry accounts in a plain text journal file you write yourself, and prints balance sheets, income statements and registers from it.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A double-entry accounting program that reads a plain text journal file. It offers a command-line interface, a terminal interface and a small web interface, and it prints balance sheets, income statements and account registers.What it is good for. Anyone who wants accounts they can read, compare and keep forever, and anyone who has been burned by a finance app shutting down. It also suits a one-person business with few transactions per month, where the typing is genuinely small and the auditability is genuinely useful. It pairs with Actual above: Actual is for deciding, this is for recording.
- Your data is a plain text file you own, in a format that two other programs also read, so you are never locked in.
- Real double-entry accounting, which means the numbers have to balance and a mistake shows itself.
- Unusually careful documentation and a steady release every few months, going back many years.
- You type the entries, or you write a small importer. There is no bank connection at all.
- Double-entry accounting is a genuine subject, and the first week is confusing even with good documentation.
- GPL-3.0. You may use it freely, but anything you build from its code must also be GPL.
- ledger/ledger
The original plain text accounting program that hledger was modelled on, faster on very large files and harder to learn, with a stricter file format.
Track this in Scout - beancount/beancount
The same plain text idea with a stricter language and a Python plugin system, which suits people who want to write their own checks and reports.
Track this in Scout - beancount/fava
Solves the presentation half: a good-looking web interface over a Beancount file, with charts and filters that the command line does not give you.
Track this in Scout
# Debian or Ubuntu
sudo apt install hledger
# macOS
brew install hledger
# Make your first journal file:
mkdir -p ~/finance
cat > ~/finance/2026.journal <<'EOF'
2026-09-14 opening balances
assets:bank:checking 1000
equity:opening balances
2026-09-14 Hetzner server
expenses:hosting 12
assets:bank:checking
EOF
hledger -f ~/finance/2026.journal balance
hledger -f ~/finance/2026.journal incomestatement