Documentation
What it does, and what it does not.
Every page here carries the real status of the thing it describes. 13 shipped, 2 being built — and where something does not exist, the page says so rather than leaving it out.
Using your book
What the product does, and where each capability actually stands.
- Getting started — the first ten minutes Shipped Sign up, a book is provisioned as its own machine, you connect an agent to it, and the first thing you do is open accounts — because a posting to an account that was never opened is refused.
- Connecting an agent Shipped You can talk to your book through a Telegram bot we host, through the Claude plugin with your own key, or through any client that speaks MCP.
- Accounts and the chart of accounts Shipped An account is opened by name before anything can post to it, it lives in the ledger as a line of text you can read — and the currency you open it with is permanent.
- Imports — bank statements and CSV Being built Countbean imports a bank export by mapping each row to two accounts — the account the money moved through and the category it belongs to — so every imported transaction balances before it is written.
- Receipts — photo to transaction Being built A photographed receipt becomes a proposed transaction with per-field confidence — never a written one — so anything the extraction is unsure of comes back flagged rather than guessed.
- History and undo Shipped Every change to your book is an ordinary git commit — so the answer to “what changed” is a diff you can read, and undoing one is a revert.
- Multi-currency, cost basis and lots Shipped Countbean records the amount, the currency it moved in, and the rate that valued it on that date — and holdings as individual lots with their own cost, rather than as one balance.
- Querying your books with BQL Shipped Anything the reports do not answer, the Beancount Query Language will — a SQL-shaped language that runs against your ledger and returns rows, with no database to connect to.
- Reports and the browser ledger Shipped Balance sheet, income statement and journals render in your browser behind your login, and reports export as a styled page or a spreadsheet your accountant already knows how to open.
- Sharing a book with an accountant Shipped Access is granted per project or per book with one of three roles, invitations are sent by email and expire in seven days — and the role you give someone is the scope their tools get.
- Your data, and leaving with it Not built Your books are plain text in a git repository and nothing about them is proprietary — but there is no route today that hands you a copy, and that gap is the honest answer to “can I leave?”.
For developers
The API, the MCP surface, and what is not there.
- The API and the MCP server Shipped Each book has an HTTP ledger API scoped by a book key, and an MCP server exposing the tool surface an agent needs to read and write validated double-entry.
- Errors and what a book refuses Shipped Every refusal arrives in one shape with a code, and one of those codes — ledger_rejected — carries a promise: the book is unchanged.
- Security and isolation Shipped One machine per book, no public address on any of them, three separate authorisation layers in front — and 404 rather than 403, so a credential cannot be used to learn which books exist.
Getting help
Where to send things, and what to expect back.
- Getting help, and reporting something broken Shipped Support is email and answered by a person; feature requests and bugs go on a public board where you can see the reply and the status.
- Backups, and what "verified by restore" means Shipped Every book's full git history and the control-plane database are copied off their machines nightly, and each copy is proved by restoring it — because a backup nobody has restored is a hypothesis.
Looking for the commercial pages instead? Start here.