What it does
Beancount is a free, GPL-licensed language and toolset for double-entry bookkeeping in text files. You declare accounts, record transactions and validate the resulting ledger. It suits technical users who want inspectable local records and can assemble their own reporting or import tools.
Beancount gives account declarations and financial transactions a defined text syntax. Start with a small file containing two accounts and one opening transaction, then run bean-check against the file. Validation errors appear in the console, so you can correct the entry before building more records around it.
The syntax has deliberate rules: dates use YYYY-MM-DD, currency codes are uppercase and account names use colon-separated parts without spaces. A balance assertion records what an account should contain on a particular date. It can help reveal a duplicated import or a missing transaction when your journal no longer matches a statement.
Version 3 is the current core release. Several tools previously bundled with version 2 now live in separate projects, and older manual pages still show the earlier arrangement. Use the current repository when choosing compatible importers or reporting frontends. The core is free software under GPL-2.0 and works with local files, without a hosted account. It is a good fit for a programmer or experienced spreadsheet user willing to learn a bookkeeping language.
Strengths
- Local text records can be checked before reports are produced
- Balance assertions help detect missing or duplicated entries
- The core code is available under GPL-2.0
Watch out for
- A text-based workflow requires learning the account and transaction syntax
- Older version 2 tools may need separate installation or replacements
Best for
- Technical users who want structured, inspectable accounting files
Sources
- beancount/beancount (Oct 27, 2026)
- Getting Started with Beancount (Oct 27, 2026)
