--- id: beancount version: "3.2.3" license: GPL-2.0-only license_treatment: copyleft maintenance: active --- # beancount — Command-line Double-Entry Accounting License: copyleft · Maintenance: active · Downloads: 147.9K/mo ## What it is and what it does Beancount is a command-line double-entry accounting system designed for developers and power users who want to track finances in plain text. You write financial transactions in a simple text-based format, load them into memory, and generate reports such as balance sheets and income statements, or query the data using an SQL-like language. It also includes a web interface to render reports to HTML and provides infrastructure to automate conversion of external financial data into Beancount syntax. The package is actively maintained, has an engaged user base, and depends on only three common libraries: click, python-dateutil, and regex. It requires Python 3.9 or later and is released under GPL-2.0-only, which means any modifications or derived works must also be open-source under the same license. Use it for: - Track personal finances in version-controlled text files alongside code repositories. - Generate monthly or annual balance sheets and income statements from transaction records. - Query and aggregate financial data across multiple accounts using SQL-like syntax. - Automate import of bank statements or investment data into a unified ledger format. - Build custom financial reports by parsing Beancount's in-memory transaction objects. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Beancount is a double-entry accounting system that reads financial transactions from text files, loads them into memory, and generates reports like balance sheets and income statements with an SQL-like query interface. Yes, if you want a text-based accounting system that integrates with your development workflow. The package is actively maintained, has no known vulnerabilities, and three lightweight dependencies. The GPL-2.0-only license is not a barrier for personal or internal use but matters if you plan to redistribute or embed it in proprietary software. Medium install friction is typical for compiled packages. ## Install pip install beancount uv add beancount poetry add beancount ## Installing beancount Before you install: Medium install friction due to compiled wheels; actively maintained with recent commits and a substantial user base. Requires Python 3.9 or later. Three lightweight runtime dependencies with no known security vulnerabilities. License in practice: GPL-2.0-only copyleft license means any derivative work or modification must also be released under GPL-2.0. This restricts commercial redistribution or proprietary extensions without source disclosure. Quickstart: pip install beancount from beancount import loader entries, errors, options = loader.load_file('ledger.beancount') Requires Python 3.9 or later; a Beancount-format text file is needed to load transactions. Verify before relying: - Whether the web interface and HTML report rendering require additional dependencies beyond click, python-dateutil, and regex. - Performance characteristics when handling large transaction files or complex queries. - Availability of plugins or extensions for automating external data conversion beyond the scaffolding mentioned. ## Package facts - License: GPL-2.0-only (copyleft) - Python support: supports_current - Install friction: medium - Maintenance: active - Downloads: 147.9K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags double-entry accounting system, text-based financial ledger, personal finance tracking, accounting query language, balance sheet generator, income statement reports, transaction ledger parser, accounting, ledger, finance [View on SkillFed](https://skillfed.io/packages/beancount) · [View on PyPI](https://pypi.org/project/beancount/)