Skip to main content

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.


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.

ResourceDescription
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.
Homepagebeancount.github.io
Source Codegithub.com/beancount/beancount
DocumentationGitHub Pages and Google Docs
External ContributionsOfficial list of community contributions
BeanqueryA 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.

ToolDescription
FavaThe 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-GTKA native GNOME Desktop application that wraps Fava for a seamless desktop experience.
Beancount MobileA mobile data-entry app for adding transactions on the go.
Beancount Telegram BotA 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.

ToolDescription
Beangulp (v3)The modern, standalone framework for building importers. It processes external files through Python scripts (plugins) to generate Beancount directives.
Smart ImporterA tool that augments importers with machine learning to automatically predict and assign categories.
Beancount Reds IngestorA collection of importers with a common library for handling CSV and OFX files.
double-entry-generatorA 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.

4. Editor Support & Tooling

Tools that integrate Beancount into your development environment to streamline editing and maintenance.

5. Plugins (Ledger Extensions)

In-ledger Python modules that run during processing to enforce custom rules, automate transactions, or add new features.

6. Price Sources

Scripts that fetch historical and current prices for commodities, stocks, and currencies to track investment values.


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

Community


Commercial Services & Apps

For users who want the power of Beancount without managing the infrastructure themselves.

ServiceDescription
Beancount.ioA 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.