Awesome Beancount
A curated guide to the Beancount ecosystem. Beancount is a powerful, open-source accounting system that uses a simple, text-based format to manage your finances with the rigor of double-entry bookkeeping. This page combines community-curated lists and ecosystem overviews into one comprehensive resource.
Why Plain Text Accounting?
Plain text accounting (PTA) is a methodology for managing finances using simple text files and powerful command-line tools. This approach gives you full ownership of your data, ensures longevity, and offers unparalleled flexibility for automation and analysis.
- Official PTA Hub: Plain Text Accounting
- A Gentle Introduction: Accounting for the simple minds with plain text accounting
- From Web Apps to CLI: Command line accounting: From mint.com to Ledger
The Beancount Ecosystem
The Beancount ecosystem is a collection of tools, plugins, and resources built around a core engine. Each component plays a specific role in creating a complete financial management workflow.
1. Core Engine & Official Resources
These are the foundational elements of Beancount, maintained by the creator and official contributors.
Resource | Description |
---|---|
Beancount (Core) | The engine that reads your ledger file, enforces double-entry rules, and generates reports. It provides core command-line utilities like bean-check and bean-format . All other tools are built on this. |
Homepage | beancount.github.io |
Source Code | github.com/beancount/beancount |
Documentation | GitHub Pages and Google Docs |
External Contributions | Official list of community contributions |
Beanquery | A powerful, SQL-like query tool (v3 ) for running advanced queries (e.g., SELECT ... FROM ... WHERE ... ) against your ledger to generate custom analyses. |
2. User Interfaces
These tools provide visual interfaces for exploring and editing your financial data.
Tool | Description |
---|---|
Fava | The definitive, full-featured web dashboard for Beancount. It provides interactive charts, drill-down tables, in-browser editing, and an extension system for adding features like budgeting. |
Fava-GTK | A native GNOME Desktop application that wraps Fava for a seamless desktop experience. |
Beancount Mobile | A mobile data-entry app for adding transactions on the go. |
Beancount Telegram Bot | A Telegram bot for quickly adding transactions to your ledger via chat. |
3. Transaction Importing
Importing is the process of converting data from financial institutions (like bank CSVs or PDFs) into Beancount entries.
Tool | Description |
---|---|
Beangulp (v3) | The modern, standalone framework for building importers. It processes external files through Python scripts (plugins) to generate Beancount directives. |
Smart Importer | A tool that augments importers with machine learning to automatically predict and assign categories. |
Beancount Reds Ingestor | A collection of importers with a common library for handling CSV and OFX files. |
double-entry-generator | A rule-based importer focused on Chinese services like Alipay and WeChat Pay. |
Community Importers (By Country)
A vast collection of scripts for specific banks and services, maintained by the community.
- China
- Alipay / 支付宝: deb-sig/double-entry-generator, wzyboy/importer
- China Merchants Bank (CMB): Debit Card, Credit Card
- WeChat Pay / 微信支付: deb-sig/double-entry-generator
- France
- Caisse d'Epargne: beancount-ce
- Boursorama, Amex: Beancount-myTools
- Germany
- Commerzbank: beancount-commerzbank
- Deutsche Kredit Bank (DKB): beancount-dkb
- ING: beancount-ing
- N26: beancount-n26
- Volksbank & GLS-Bank: beancount-importer-volksbank
- India
- SBI, BOI, Paytm, HSBC, ICICI: beancount-importers-india
- Netherlands
- ABN AMRO: beancount-abnamro
- Switzerland
- General: tariochbctools (BCGE, Neon, Raiffeisen, ZKB, Fidelity)
- Finpension: drnuke-bean
- PostFinance: tariochbctools, drnuke-bean
- UK
- Monzo, Revolut, Wise: Evernight/beancount-importers
- Revolut, Wise: tariochbctools
- US
- Amex, Chase, Citi, Schwab: mterwill/gist
- Capital One: mtlynch/beancount-capitalone
- Chase: mtlynch/beancount-chase-bank, ArthurFDLR/beancount-chase
- Clipper: beancount-clipper
- Mercury: mtlynch/beancount-mercury
- Blockchain
4. Editor Support & Tooling
Tools that integrate Beancount into your development environment to streamline editing and maintenance.
- IDE Support: Plugins providing syntax highlighting, auto-completion, and on-the-fly balance checking.
- VSCode
- Emacs
- Vim
- Zed
- Sublime Text
- Atom
- Beancount Language Server (for any LSP-compatible editor)
- Automation & Utilities:
bean-add
: Interactively add transactions from the command line.beancount-black
: An opinionated code formatter for Beancount files.beancount-categorizer
: Automatically categorize transactions with regex rules.beanahead
: Administer and project future transactions.
- Data Migration Tools: Utilities to convert data from other accounting systems.
- From GnuCash: henriquebastos/gc-to-bc, dtrai2/gc-to-bc
- From Ledger/hledger: travisdahlke/gist, zacchiro/ledger2beancount
- From YNAB: hoostus/beancount-ynab
5. Plugins (Ledger Extensions)
In-ledger Python modules that run during processing to enforce custom rules, automate transactions, or add new features.
- Budgeting:
- fava-envelope: A Fava extension for envelope-style budgeting.
- Automation & Checks:
- autobean.share: Expense splitting and debt management.
- autobean.sorted: Ensures transactions are chronologically ordered.
- beancount-checkclosed: Automatically checks for a zero balance on closed accounts.
- Data Manipulation:
- autobean.narration: Auto-generates transaction narrations.
- beancount-lazy-plugins.filter_map: Applies operations to a filtered group of transactions.
6. Price Sources
Scripts that fetch historical and current prices for commodities, stocks, and currencies to track investment values.
- beancount-exchangerates: For fiat currencies via APIs like
frankfurter.dev
. - pricehist: A multi-source price fetcher.
- beancount-cryptoassets: For fetching cryptocurrency prices.
- tariochbctools: Includes a price source for Interactive Brokers.
Learning & Community
Books & In-Depth Guides
- Tracking Personal Finances using Python: A book that provides a comprehensive guide to building a personal finance system with Beancount. (Website)
- Chinese Blog Series (BYVoid): Part 1: Why?, Part 2: Debits & Credits
Selected Blog Posts
- English
- French
- Chinese
Community
- Mailing List: Google Groups (Primary discussion forum)
- Live Chat (IRC): #beancount on web.libera.chat
- Telegram (Chinese): t.me/beancount_zh
Commercial Services & Apps
For users who want the power of Beancount without managing the infrastructure themselves.
Service | Description |
---|---|
Beancount.io | A SaaS (Software as a Service) platform providing an out-of-the-box Beancount and Fava instance. It also offers dedicated mobile apps for iOS and Android. |