Installation / prerequisites
- Beancount.io
- Supported, observed: install bea 0.1.0; no account for local commands
- hledger
- Supported: single binary via package manager or Docker (1.52.3)
The 2026 agent accounting guide
Five tools. Seven workflow criteria. Start with where your books live and what your agent needs to do.
This order prioritizes agents that draft ledger changes: observed preview and repeat-safe imports, then documented workflows, then cloud access and read-only tools. Choose the fit for your books.
Free core · local files, no account needed
Local plain-text double-entry books with a CLI built for agents: preview before apply, repeat-safe imports, and the only observed end-to-end run on this page.
Agent-builders who want every ledger change previewed as text and verified before it lands.
Free, open source
Local plain-text accounting with a documented dry-run and idempotent import workflow, maintained since 2007.
Plain-text scripting veterans who want local double-entry without a new platform.
Cloud ledger · developer account and OAuth required
Official MCP server, CLI and agentic SDK with read and write tools, scoped by OAuth grants against your Xero org.
Agents operating inside an existing Xero organisation.
Cloud ledger · Intuit developer app and OAuth required
Intuit's official MCP server covering full entity CRUD plus financial reports, gated by an Intuit developer app handshake.
Agents operating inside an existing QuickBooks Online company.
Cloud ledger · Claude connector, read-only
Read-only MCP access to a Puzzle company from Claude, in alpha — a Q&A window, not a bookkeeping backend.
Read-only conversational questions over a Puzzle company in Claude.
Every tool is assessed against the same criteria. “Unverified” means the sources did not cover it; it does not mean the feature is missing.
| What matters | Beancount.io | hledger | Xero | QuickBooks Online | Puzzle |
|---|---|---|---|---|---|
| Installation / prerequisites | Supported, observed: install bea 0.1.0; no account for local commands | Supported: single binary via package manager or Docker (1.52.3) | Supported with prerequisites: Node 18+, developer account, API credentials | Supported with prerequisites: clone, build, configure; Intuit developer app required | Supported with prerequisites: Claude.ai plus Puzzle accounts, connector URL |
| Authentication | None needed locally; hosted credentials only for bea ask | None needed: local files, no accounts | Xero OAuth2: Custom Connection or PKCE browser login | Intuit OAuth2 app handshake; sandbox takes localhost, production needs public HTTPS | Puzzle OAuth via Claude connector, read-only grant; re-auth every 5 days |
| Read / write scope | Reads and writes, observed: query, report, preview-then-apply import | Reads via reports; writes by appending and via import | Reads plus documented create/update writes, scoped by OAuth grants | Full create, read, update, delete and search; writable categories can be disabled | Read-only by design: 40-plus read endpoints, nothing writable |
| Local vs cloud data | Local: plain-text ledger files | Local: plain-text journal | Cloud: tools run locally, ledger lives in the Xero org | Cloud: local stdio subprocess, ledger lives in the QBO company | Cloud: remote MCP endpoint over Puzzle data |
| Preview / validation | Observed: preview 3 ready / 0 written; check valid; unbalanced write rejected | Documented: import dry run; entries balanced and validated; check command | Field-level input validation; preview-before-write unverified | Schema input validation; preview-before-write unverified | Not applicable: no write path to preview |
| Structured output | Observed: JSON envelopes with rows and columns, exit codes, BQL | Reports to terminal, HTML, CSV, JSON or SQL | JSON, CSV and TOON output modes | MCP tool results plus invoice PDF download | Unverified: conversational answers; result envelope not covered |
| Repeated imports | Observed repeat-safe: reimport writes 0, bytes preserved | Documented idempotent re-import via hidden state files | Unverified in the sources checked | Unverified in the sources checked | Not applicable: no import path |
Beancount.io is the only tool on this page with an observed preview-first agent run behind it: the agent previews 3 ready rows, applies 3 entries, and a repeat apply writes 0 while the ledger bytes are preserved. hledger documents the same shape of workflow — dry-run import plus idempotent re-import — from its official manual. Xero and QuickBooks Online give agents official read and write tools behind their cloud OAuth setups, which fits agents operating inside an existing cloud org.
Yes. Xero publishes an MCP server, a command-line tool, and an agentic SDK under its developer program, all authenticated against a Xero org with OAuth credentials. Intuit publishes an official QuickBooks Online MCP server with create, read, update, delete and search tools plus financial reports, gated by an Intuit developer app and a one-time browser OAuth handshake. Both keep the ledger in the cloud; the agent tooling runs locally but the data does not.
No. Puzzle's MCP integration is explicitly read-only and in alpha: it exposes 40-plus read endpoints to Claude, requires re-authentication every 5 days, and states that nothing can be modified or written. It fits read-only conversational questions over a Puzzle company, not agent bookkeeping.
Beancount.io publishes this page and is one of the five tools compared. Beancount.io cells link to an observed, reproducible run; competitor cells cite current official documentation checked on 2026-09-10. No competitor was runtime-tested here, no paid account was used, and unknowns are labeled unverified rather than treated as failings.

Install bea, hand your agent one task, and check the result yourself. Local books need no account.