Awesome Beancount 
A curated list of resources for Beancount, an open-source double entry bookkeeping system — ideal for plain text accounting users and Python software developers.

Plain Text Accounting
- Plain Text Accounting
- Accounting for the simple minds with plain text accounting
- Command line accounting: From mint.com to Ledger
Official Resources
- Homepage
- Source Code
- Documentation
- Google Docs
- GitHub Pages (generated from Google Docs)
- External Contributions to Beancount
Books
User Interfaces
- Fava - Web interface for Beancount
- Fava-GTK - GNOME Desktop app for Fava and Beancount
- Beancount Mobile - Data entry app for Beancount plain-text accounting system
- SQL queries for Beancount - Example SQL queries for Beancount
- Beancount Telegram Bot - Telegram bot to track Beancount transactions on the go
- Beancount Telegram Bot - Telegram bot powered with llm to record any complex transactions with multiuser and web interface
Importers
China
- Alipay / 支付宝
- China Merchants Bank (CMB)
- WeChat Pay / 微信支付
Germany
France
India
The Netherlands
Switzerland
UK
- Monzo
- Revolut
- Wise:
US
- Amex
- Amazon (GDPR Download order data, gift card. pip-installable)
- Capital One (Credit, pip-installable)
- Chase (Checking, Credit, pip-installable)
- Chase (Checking, pip-installable)
- Chase (Checking, Credit)
- Citi
- Clipper
- Fidelity
- IBKR (Flex Query importer and downloader)
- Mercury
- Schwab
- Red's Importers (Including Ally, Chase, Citi, Fidelity, Schwab, Vanguard, pip-installable)
Blockchain Transactions
Misc
- Beancount importers for the F-Droid Budget app and for a bank CSV
- Web UI for semi-automatically importing external data into beancount
- Augment Beancount importers with machine learning
- Red's Importers: Collection of simple importers and a framework to write your own
- Importers, plugins and price-fetchers for Beancount
- yabci - yet another beancount importer
Exports
How to export (the "inferred" extended form of) *.beancount to other formats:
- JSON
- RDBMS
Commercial Services
- Beancount.io: Out-of-box Beancount and Fava SaaS that you can use instantly
- BeanHub: A modern accounting service based on Git and Beancount
Commercial Apps
- Beancount.io iOS App: Visualizes and connects to your Beancount.io ledger on iOS
- Beancount.io Android App: Visualizes and connects to your Beancount.io ledger on Android
Community
Editor Support
Plugins
Beancount
- autobean.include: Includes external beancount ledgers without disabling their plugins
- autobean.narration: Generates transaction narration from posting narration and posting narration from comments
- autobean.share: Expense split, joint bookkeeping, and debt management for personal use cases
- autobean.sorted: Checks that transactions are in non-descending order in each file
- autobean.truelayer: Imports transactions from banks via TrueLayer, a bank API aggregator
- autobean.xcheck: Cross-checks against external ledgers
- beancount-balancechange - Checks change in balance between two dates
- beancount-balexpr - Check balances against simple expressions combining accounts in Beancount
- beancount-checkclosed - Automatically insert a 0 balance check for closed balance sheet accounts
- beancount-lazy-plugins.filter_map - apply operations to group of transactions selected by Fava filters
- beancount-lazy-plugins.valuation - track total value of the opaque fund over time
- beangrow computes investment returns on a variety of assets
- metadata-spray use a regex pattern to add metadata to entries
- portfolio_allocation reports on portfolio asset allocations; useful for risk analysis and for rebalancing purposes.
- portfolio-returns calculates money-weighted and time-weighted returns for a portfolio
- reds capital_gains_classifier: rebooks capital gains into separate long and short accounts, and separate gains and losses accounts
- reds effective_date: enables per-posting dates (each posting in a transaction can have a different date)
- reds opengroup: Inserts open statements for sets of accounts based on specifiable rules.
- reds rename_accounts: rename arbitrary accounts on the fly (eg: move Taxes from Expenses to Income when you temporarily want to view all your Expenses except taxes)
- reds zerosum: find matching pairs of postings that sum up to zero. Useful in de-duplication, and tracking things such as reimbursements, rebates, etc.
Fava
- fava-envelope - Beancount Fava extension for envelope budgeting
- fava-dashboards - Additional fully custom dashboards
- fava-portfolio-returns shows portfolio returns
- fava-portfolio-summary grouped portfolio view; also calculate MWRR (Money-Weighted Rate of Return) or TWRR (Time-Weighted Rate of Return)
- fava-classy-portfolio displays a list of different portfolios, with breakdowns using metadata labels
- fava_investor reports, analyses, and tools for investments
Tools
- Importer from YNAB to Beancount
- CSV to Beancount
- GnuCash to Beancount
- Ledger to Beancount
- Beancount - Import and Sync
- Moneywiz3 to Beancount
- Costflow - Convert one line message to beancount/ledger format
- bean-add - Easily add transactions to your Beancount journal
- Beancount Bot - Telegram / Mattermost bot to generate new transactions with few words
- Beancount Categorizer - Automatically categorize your transactions using simple regex-based rules
- ofxtools - Python library for working with Open Financial Exchange (OFX) data
- double-entry-generator - Rule-based double-entry bookkeeping importer (from Alipay/WeChat/Huobi to Beancount).
- beancount-parser - Standalone Lark based Beancount syntax parser (not relying on Beancount library)
- beancount-black - Opinionated code formatter, just like Python's black code formatter but for Beancount
- beanhub-web-react - React components for beancount entry input forms and beanhub-forms
- beanhub-forms - Data types and processors of custom beancount forms for inputting repeating similar entries easily
- beanhub-cli - Beancount command line tools with features like formatter, beanhub-import and a beanhub-forms web app
- beanhub-extract - Simple Python library for extracting all kinds of bank export CSV files into standardized transaction data objects
- beanhub-import - Declarative idempotent rule-based beancount transaction import engine in Python consumes data extracted by beanhub-extract
- beanahead - Administer future transactions for a beancount ledger
- beanquery-mcp - MCP (Model Context Protocol) server for Beancount Ledger files
Price Sources
- xuhcc/beancount-exchangerates for frankfurter.dev or exchangeratesapi.io or other fixer.io-like 💱 APIs
- Cryptoassets
- pricehist - Multiple sources, for use via bean-price or independently
- Interactive Brokers
Blog Posts
- English
- Accounting automation with Beancount
- Counting beans - and more - with Beancount
- Manage your personal finance with beancount
- Managing my personal finances with beancount
- Managing Personal Finances using Python
- Moving on to Beancount
- No-Bullshit Beancount Introduction
- Plain text accounting with Beancount
- French
- Chinese