ledgers.sh
Join the waitlist
Open-source accounting, built for agentsPlanned · not released yet

Agents do the books. People keep control.

Ledgers is open-source accounting where AI agents read invoices, match payments and draft entries. Policy decides what they may post. You approve the rest.

example · how it will work
Terminal~/books/halden-works
$ ledgers bills match RE-2026-0418 --dry-run
✓ extracted 10 fields from invoice_RE-2026-0418.pdf
✓ matched PO-1182 + GR-0931 (3-way)
✓ drafted entry · 3 lines · balanced
■ policy bills.post_limit: €7,240.00 > €5,000.00, needs a human
Agent chatconnected · ledgers MCP
Match the Acme invoice that just came in. Don’t post yet.
tool call · bills_match{ "document": "RE-2026-0418", "dry_run": true }
Matched to PO-1182 and GR-0931. The draft entry balances. It’s above my €5,000 limit, so I need your approval.
Approve bill · Acme GmbH€7,240.00
High risk: above the €5,000 limit
RejectApprove with passkey
Appledgers · Inbox⌘K
Acme GmbH€7,240.00 RE-2026-0418 Needs approval
Hetzner Online€48.90Posted by agent99%
TokopediaRp 1.250.000Matched to payment96%
ReviewApprove with passkey

Same journal preview, every way in

dry run · 02 Oct 2026 · EUR · nothing postedNeeds approval: above the €5,000 limit
Debit (Dr)
5410 Purchased services6,084.03
1576 Input VAT 19%1,155.97
Total debit7,240.00
Credit (Cr)
7,240.00Accounts payable · Acme GmbH 3300
7,240.00Total credit

A beautiful, useful UI for the people who sign off.

Agents work through the CLI and MCP. People supervise in the app, in the browser or on their phone: review what was extracted, see why it stopped, approve or reverse. The UI, the CLI and the agents use the same commands.

UI · Review and match CLI · ledgers bills approve bill_7Q2K MCP · bills_approve API · POST /v1/bills/bill_7Q2K/approve example screen · planned
ledgers Halden Works GmbH ⌘KSearch or run a command

Acme GmbH RE-2026-0418

bills-matcher@0.4.2tier Post ≤ €5,000 · run r_8f2c Needs approval: above the €5,000 limitpolicy bills.post_limit
Total · due 01 Nov
€7,240.00
invoice_RE-2026-0418.pdfhover a field to locate it1 / 2

Extracted fields

2 below 80%
IBAN middle digits are smudged. The value matches the IBAN on file for Acme GmbH.ConfirmCorrect value

Agent run

09:41:02 → 09:41:04 · 2.1 s
  1. ReceivedEmail to ap@haldenworks.de · 2-page PDF
  2. Extracted10 fields · 2 below 80%
  3. MatchedPO-1182 + GR-0931
  4. Drafted3 lines · balanced
  5. StoppedAbove €5,000 limit → you

Journal entry preview

dry run · 02 Oct 2026 · EURCopy as CLI
Debit (Dr)+
5410 Purchased services6,084.03
1576 Input VAT 19%1,155.97
Total debit7,240.00
−Credit (Cr)
7,240.00AP · Acme GmbH 3300
7,240.00Total credit
Balanced · difference 0.00Reversible from the journalledgers bills post bill_7Q2K --dry-run

3-way match

Purchase orderPO-1182€7,240.00 · 3 lines

qty ✓

Goods receiptGR-09313 of 3 · 29 Sep

amount ✓

This invoiceRE-2026-0418€7,240.00 · 3 lines
RejectEditPosts 3 lines dated 02 Oct 2026Approve €7,240.00 with passkey

Browser, desktop and phone.

One app, everywhere you work. Approve a bill from a push notification. It keeps working offline and syncs when you’re back.

  • Browser appChrome, Safari, Firefox and Edge. Nothing to install.
  • PWAOne app for every screen size. Install on macOS, Windows, iOS or Android.
  • NotificationsPush alerts when an agent needs you, with approve and reject right from the notification (high-risk approvals open the app for a passkey). Badge count on the app icon. Also send them to webhooks, Discord, Slack or email.
  • OfflineReview and approve without a connection. Actions queue and sync when you’re back online.
  • CapturePhotograph a receipt or share a PDF to Ledgers from any app. An agent picks it up.

See what the agent saw

Each extracted field links to its spot on the source document, with a confidence score. Low-confidence fields are flagged for you.

Know what will post

A dry-run preview shows every debit and credit before anything is posted. Approve in one click, confirm high-risk ones with a passkey, reverse any time.

Fast from the keyboard

⌘K runs any action and shows its CLI, MCP and API equivalent. Dense tables, tabular figures, light and dark themes.

Agents propose, policy decides.

Every agent key gets a tier and limits per amount and currency. Paying money out, closing a period and filing tax always need a person, and high-risk approvals are signed with a passkey. Every action is audited and can be reversed.

  1. Read

    Look up accounts, balances, documents and reports. Changes nothing.

    ledgers reports tb --period 2026-09
  2. Draft

    Extract invoices, propose matches and draft journal entries for review.

    ledgers bills match --dry-run
  3. Post within limits

    Post entries up to a set amount, per currency. Anything above goes to a person.

    limit = 5_000.00 EUR
  4. Human only

    Paying money out, closing periods, filing tax and anything above a limit. Agents can prepare these. A person signs with a passkey.

    requires = "human+passkey"

From one founder to a group of companies.

Freelancer

One company, one currency. Forward invoices to an inbox and an agent books them. You approve the few it isn’t sure about.

ledgers init --country DE

Finance team

Several agents with their own limits, multi-currency bank feeds, approval queues and a monthly close.

ledgers agents add --tier post --limit 5000EUR

One company, many units

One legal entity split into internal sub-companies: plants, brands or product lines. Each gets its own books, budgets and reports. Tax and the year-end close stay on the single entity.

ledgers reports pl --unit plant-2

Group

Many entities in many currencies, intercompany matching and consolidated reports. Same product, same commands.

ledgers reports bs --consolidate --in USD

Eight crates. Take what you need.

Each module will be a Rust crate on Cratefield. Every one ships a CLI, MCP tools and an HTTP API.

Coming soon
[dependencies]
# coming soon
ledgers-ledger    = "0.1"
ledgers-bills     = "0.1"
ledgers-matching  = "0.1"
ledgers-bank      = "0.1"
  • ledgersoon

    Chart of accounts, double-entry journal, periods. Entries are reversed, never edited.

    ledgers ledger …
  • invoicesoon

    Sales invoices, credit notes and e-invoicing formats.

    ledgers invoice …
  • billssoon

    Vendor bills from email or upload, extracted by agents.

    ledgers bills …
  • matchingsoon

    Invoice, order, receipt and payment matching with confidence.

    ledgers match …
  • banksoon

    Bank feeds and statement import in any currency.

    ledgers bank …
  • taxsoon

    VAT, GST and sales tax rules. Filing always needs a person.

    ledgers tax …
  • documentssoon

    Source files stored next to the entries they produced.

    ledgers docs …
  • reportssoon

    Trial balance, P&L and balance sheet, per entity or consolidated.

    ledgers reports …

Every currency, every language.

Amounts keep their own decimals and are formatted for the reader’s locale. Right-to-left layouts are built in. Crypto comes later: stablecoins and wallets booked like any other currency.

The same bill line, as each locale reads it
LocaleCurrencyStatus lineAmount
en-USUSDNeeds approval: above the $5,000 limit$12,480.50
de-DEEURFreigabe erforderlich: über dem Limit von 5.000 €7.240,00 €
ja-JPJPY · 0 decimals承認が必要です:上限 ¥500,000 を超えています¥1,284,000
hi-ININRNeeds approval: above the ₹4,50,000 limit₹1,23,456.00
id-IDIDRPerlu persetujuan: di atas batas Rp 80.000.000Rp 18.250.000
cryptoUSDC · 6 decimalsCrypto, coming later: stablecoins and on-chain wallets7,240.000000 USDC
ar-BHBHD · 3 decimalsيحتاج إلى موافقة: أعلى من حد ٢٬٠٠٠ د.ب.٢٬٧٣١٫٨٧٥ د.ب.

Open and portable.

MIT licence

Read the code, fork it, run it. Your books never depend on our roadmap.

One-command export

Every entry, document and audit event.

ledgers export --all ./books

Built on Cratefield

Modules are crates with manifests. Add your own next to ours.

Self-host or managed

Run it on your own servers, or let us run it for you. Same software either way.

Pricing

Open source is free for a single user with your own AI model key. Managed plans include the agents. These are planned prices: nothing is for sale yet.

PlanPriceWhat you getAction
Open source1 user · own key
$0Self-hosted, every feature, bring your own AI model keySelf-host
Solo
$12/mo100 documents/mo processed by agents, multi-currency, CLI, MCP and APIJoin the waitlist
Team
$49/moUnlimited people, 1,000 documents/mo, approval rules, e-invoicingJoin the waitlist
Business
$149/mo5,000 documents/mo, 3-way matching, audit exportJoin the waitlist
Group
from $499/moSeveral companies, consolidation, single sign-on, uptime guaranteeTalk to us

Let the agents start on your books.

Open the app

browser · PWA

Use it in the browser, or install it as an app on desktop and phone. Press ⌘K to run any command.

See the UI

Install the CLI

macOS · Linux · Windows
# not released yet: the install command ships with the first release
$ ledgers init --country DE
$ ledgers bills inbox
Follow on GitHub

Connect my agent

MCP · read tier by default
{
  "mcpServers": {
    "ledgers": {
      "command": "ledgers",
      "args": ["mcp", "serve", "--tier", "read"]
    }
  }
}