Beancount, hledger, or Ledger? Answer 5 quick questions to find out the best
plaintext accounting tool for you.
What best describes your programming experience?
How do you want to interact with your finances?
What matters most to you in a finance tool?
How will you import your bank transactions?
How complex is your financial situation?
🐍
⚖️
📜
Your recommended tool is
Beancount
hledger
Ledger
Beancount is the way to go! Its double-entry bookkeeping catches errors early, and the Python tools make it easy to extend. With Fava, you get a great web dashboard that makes exploring your finances easy.
Why this fits you
✓Python-native — write custom import scripts and plugins in Python
✓Fava web UI — interactive charts, balance sheets, and transaction browsing
✓Strong error checking — every transaction is checked for accuracy
✓Great for complex finances — handles multi-currency, investments, and tax lots
hledger is the perfect fit! It's a very practical tool, easy to get started, works with many file formats, and has a great CSV import workflow. Whether you prefer the command line or a web UI, hledger has you covered.
Why this fits you
✓Great CSV import — rules-based, powerful, and well-documented
✓Multiple interfaces — terminal (hledger CLI) and web (hledger-web)
✓Flexible data formats — works with Ledger files, CSV, and timedot
✓Great documentation and an active, welcoming community
Even though hledger is your best match, the concepts in Tracking Personal Finances using Python transfer across all plaintext accounting tools.
Ledger is your tool! As the original plaintext accounting system, it's been proven for over 20 years. If you value stability and want a pure command-line workflow, Ledger is dependable and won't let you down.
Why this fits you
✓Proven reliability — used in production since 2003
✓Fast and lightweight — C++ implementation is very fast
✓Pure terminal workflow — perfect for keyboard-driven productivity
✓Large ecosystem — many blog posts, tools, and resources built around it
While Ledger is your top match, the plaintext accounting concepts in Tracking Personal Finances using Python apply universally, and Beancount shares the same philosophy.