Beancount client
Query a ledger as SQL tables or use BQL with rledger. Edit the source ledger in your own text editor.
Works on MacDriver downloads on first use of Beancount
Included in Free; paid plans add optional featuresOpen source (AGPL-3.0)


At a glance
- Query language
- SQL
- Driver
- Downloads on first use
- Connect with
- A file
- iPhone and iPad
- Does not open
Open a ledger
Install rledger or Python Beancount. rledger takes precedence when both are available; only rledger supports BQL and validation output in diagnostics.
Choose a ledger with Browse… or open a .beancount file from Finder. The path is the entire connection. beancount:///path/to/main.beancount URLs can also be imported.
An app opened from Finder does not inherit your shell’s PATH. If the backend runs in Terminal but not here, name it with launchctl setenv TABLEPRO_RUSTLEDGER_BINARY or TABLEPRO_BEANCOUNT_PYTHON and relaunch.
The Python backend runs the plugins that ship with Beancount and skips any other plugin directive, which is third-party code, until you turn on Run Ledger Plugins for that connection. Skipped plugins are listed in diagnostics.
Query the ledger
Query transactions, postings, accounts, balances, prices, directives, metadata and source files as tables. Join postings to transactions on transaction_id, and accounts by name.
Amounts arrive booked, with arithmetic, costs and prices resolved, and posting costs and inline prices in columns of their own. Transactions, postings and several directive tables carry a source_location such as main.beancount:42, so a row leads back to its line.
Prefix a query with BQL: to send it to rledger instead of the tables. Browsing, row counts and paging work on a BQL result; SQL parameters do not.
include directives are followed, literal paths and globs alike, and every ledger file and referenced document is watched. Save a change in your editor and the next query reads it without reconnecting. The connection is always at Safe Mode Read-Only, so INSERT, UPDATE, DELETE and schema changes are refused.
Move data
Export a table or a query result as CSV, JSON, SQL, XLSX, Markdown, HTML and XML. Other files TablePro opens as databases include SQLite, DuckDB and Parquet.
iPhone and iPad
The iPhone and iPad app has no Beancount driver. Beancount connections synced from a Mac appear in its list but do not open.
Limits
- TablePro reads the ledger into 23 read-only SQL tables when it opens. Nothing is written back to the ledger.
- Needs rledger or Python beancount installed on this Mac.
Questions about Beancount
Does a ledger with errors still open?
Through rledger, yes. The ledger is projected even when validation fails, and each problem is a row in diagnostics with its file, line, severity and message.
Can one connection open several ledgers?
One connection is one ledger file, with no switching. A main file that includes the others brings them all in, globs included.
Get TablePro
Requires macOS 13 Ventura or later