Beancount
TablePro opens.beancount ledgers as read-only, file-based connections. If the Beancount plugin is not installed yet, TablePro prompts you to download it before opening the ledger. The driver projects transactions, postings, accounts, prices, computed balances, balance assertions, and source files into SQL tables for browsing and exports.
The plugin uses either rledger or Python Beancount to parse ledgers. Install one of those backends separately. When both are available, TablePro uses rledger; Python Beancount is used as a fallback for browsing projected SQL tables.
The plugin also supports BQL queries through rledger. BQL requires the rledger executable even when the ledger was opened through Python Beancount.
Backend requirements
TablePro does not bundle a Beancount parser. It discovers backends in this order:rledgerfromTABLEPRO_RUSTLEDGER_BINARY,PATH, or standard Homebrew locations.- Python Beancount from
TABLEPRO_BEANCOUNT_PYTHON,PATH, or standard Python locations.
rledger:
Connecting to a Beancount ledger
Connection URL
Tables
| Table | Contents |
|---|---|
transactions | Transaction date, flag, payee, and narration |
postings | Posting account, amount, commodity, and resolved cost basis (cost_number, cost_currency) |
accounts | Opened accounts and declared currencies |
prices | Price directives |
balances | Computed account balances by commodity |
balance_assertions | Beancount balance directives |
source_files | Parsed ledger and include files |
rledger, so thousands separators, arithmetic, cost ({}), and price (@/@@) annotations are resolved to their booked values.
Includes
The parser follows Beancountinclude directives. Literal includes and glob patterns such as include "imports/*.beancount" and include "imports/**/*.beancount" are supported.
BQL
Prefix a query withBQL: to run it through your configured rledger executable:
Limitations
- Beancount connections are read-only.
- Schema editing, imports, SSH, SSL, and database switching are not available for ledgers.
- The SQL projection covers common ledger directives; unsupported directives remain available in the original source files.
