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-by-default 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
A hosted Remote MCP server, generally available, plus an open-source local server, CLI and agentic SDK — read and write tools scoped by OAuth grants against your Xero org.
Agents operating inside an existing Xero organisation.
Cloud ledger · Intuit sign-in or developer app
Intuit's hosted QuickBooks connector for Claude (US) and ChatGPT, plus an official open-source MCP server with full entity CRUD and financial reports.
Agents operating inside an existing QuickBooks Online company.
Cloud ledger · MCP connector, read-only by default
Read-only MCP access to a Puzzle company by default, with confirmed writes as an opt-in Beta — a Q&A window first, not a bookkeeping backend.
Conversational questions over a Puzzle company in Claude, ChatGPT, Cursor or Codex.
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) | Hosted Remote MCP: nothing to install, Core-plan developer app; local server and CLI: Node 18+ and API credentials | Hosted connector: no install, US QuickBooks Online subscription; local server: clone, build, Intuit developer app | No install: Puzzle account, MCP client and connector URL |
| Authentication | None needed locally; hosted credentials only for bea ask | None needed: local files, no accounts | Xero OAuth 2.0: PKCE for Remote MCP and CLI, or a Custom Connection for the local server | Hosted: Intuit sign-in and permission grant; local: OAuth2 app handshake, production needs public HTTPS | Puzzle OAuth for chosen companies; stays signed in if used once every 30 days |
| Read / write scope | Reads and writes, observed: query, report, preview-then-apply import | Reads via reports; writes by appending and via import | Remote MCP: 18 read tools and 21 create, update, authorise and void tools, scoped by OAuth grants | Hosted: reports, invoices, estimates, customers, transaction imports; local: full CRUD and search, writes can be disabled | Read-only by default; write Beta per connection: categorize, bills, invoices, journal entries, reconcile |
| Local vs cloud data | Local: plain-text ledger files | Local: plain-text journal | Cloud: hosted by Xero or run locally; ledger lives in the Xero org | Cloud: hosted connector or local stdio subprocess; ledger lives in the QBO company | Cloud: hosted MCP endpoint over Puzzle company data |
| Preview / validation | Observed: preview 3 ready / 0 written; check valid; unbalanced write rejected | Documented: import dry run; entries balanced and validated; check command | Remote MCP V1 asks no confirmation (Xero advises adding one); CLI validates file input; dry run unverified | Hosted: destructive actions need confirmation; local: schema validation; dry run unverified | With writes on, each change is confirmed before it is made; dry run unverified |
| 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 in the MCP client; 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 | Unverified: no import path documented |
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.
Beancount.io and hledger. On Beancount.io the behavior was observed: an identical repeat apply reports 0 ready with 3 exact duplicates, writes 0 entries and leaves the ledger bytes unchanged. hledger documents idempotent import in its manual, keeping state in a hidden .latest file so a re-run appends only new transactions. For Xero, QuickBooks Online and Puzzle, what a repeated import does is unverified in the sources checked. Agents retry, so test this before you let one import unattended.
No. Beancount.io's local import, query, report and check commands run on plain-text files with no account; only bea ask needs hosted credentials. hledger needs no account at all. Xero, QuickBooks Online and Puzzle keep the ledger in the cloud, so an agent first needs that service's account and an OAuth grant, whether it connects through a hosted MCP server or a local tool.
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 official documentation checked on 2026-09-10, with the Xero, QuickBooks Online and Puzzle details rechecked on 2026-11-01. 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.