Books an AI agent can keep

Say it.
It's on the record.

An invoice, a payment, a card statement. Say what happened and it's in the books, checked against rules that refuse a guess. Claude, any MCP client, or a model that never leaves your machine.

Try it now, no signup Sign in with Google The demo gives you private example books to poke at. Sign in for books of your own. Free.
Replayed from a real runVega Consulting · main
YouInvoice Meridian Logistics for 12 hours of consulting at $250 an hour, due in 30 days, and issue it.
Claudesolo_draft_invoice Meridian Logistics · 12 × $250.00 · net 30 ok
Claudesolo_issue_invoice INV-0001 · $3,000.00 · due 2026-10-23 ok
ClaudeIssued. INV-0001, $3,000.00, due 23 October. The link and the PDF are on the invoice.
YouChange the total on that invoice to $2,000.
Claudesolo_update_draft INV-0001 · 8 × $250.00REFUSEDOnly a draft can be edited; INV-0001 is issued. Mistakes on an issued invoice are void-and-reissue (S-2).
ClaudeI can't change an issued invoice. If the amount is wrong, I can void INV-0001 with a reason and issue a corrected one. Shall I?
Trail7 acts on the record, 1 refused, 0 invented. Every one of them, with who and why.

Every line above came from the system, refusal included. Try the same thing in the demo books · Read a full session

144commands, each declared once for the agent, the screen and the log
8modules, every one spec-first
102invariants written down and executed
36scenarios replayed on every build
23contract gates a module must pass

Works with Claude, with any MCP client, and with a local model. Free, open source, and your data exports any day.

What keeps the books right

Helpful is not the same as right

Most AI tools fill a gap with a guess and call it done. Saybooks is built so that cannot reach your records: the rules live in the system, not in the prompt, and they hold whichever model is on the other end.

09:41:07Claudeconfirm order SO-0007
09:41:07REFUSEDCredit check failed for Contoso. Order $6,200.00; available $4,800.00.
09:52:30Samraise credit limit · "12 months on time"
09:53:02Claudeconfirm order SO-0007 · same rule, new facts

It gets told no

Every rule your books have applies to the agent exactly as it applies to you. A refusal is one plain sentence with the numbers in it, the same sentence the greyed button shows a person. Nobody talks their way around it; somebody changes the facts.

14:10:45Samrecord payment $1,500.00 · "bank feed, no remittance yet"
16:02:11Claudeapply payment to INV-0041 · "AP clerk confirmed by phone"
16:02:11Claudeupdate draft INV-0041 · refused
16:05:00Samexport everything · JSON, 9 tables

Every act on the record

Who did it, a person or an agent, what, when it happened, and why. Refusals are recorded next to the acts that went through. You can read the whole history, export all of it, or delete everything.

Staged rows · Phoenix pull · 38 qualified of 303
Claudejudged 303 rows, reason on every one
Promote to accountsA person's act, never an agent's
Peterpromoted 38 · the verdict became each account's why

Some acts are a person's

An agent can stage a bought list and judge every row. Only a person promotes one into the real list, sets what a campaign may claim, or marks a message as sent. Those acts are refused to an agent whatever its role, and the tool description says so before it calls.

Claudeissue INV-0002 · $412.50 issued
Petervoid INV-0002 · "carries a PO nobody gave" void
Claudeissue INV-0003 · $412.50, no PO issued
INV-0002 stays on the record, burned.

Issued means issued

An issued invoice never changes. A mistake is a void with a reason and a fresh invoice, the number burned, the original kept. Statements land whole or not at all, reconciled to the printed balances. Receipts must add up to their own lines.

Start here

Six things people actually say

Each is its own set of books with its own rules, and you can have more than one. Say the sentence, or click the button; it is the same act either way.

Also in the box

The parts you notice later

Receipts that add upA receipt's lines must sum to its total, so a digit a model misreads in a photo is re-read, never stored.
Statements whole or not at allRows reconcile to the printed opening and closing balance, or the import is refused with the gap named.
QuickBooks and Xero filesJournal lines mapped to your accountant's chart. Every hand-over keeps its totals, its hash and the exact file.
Drafts a person sendsThe agent writes, you send from your own mailbox, the exact words go on the trail. Nothing here can send anything.
Dates with a sourceAn event the agent found carries the page its date came from. A date the page doesn't pin is not a date.
A local modelRuns on your laptop with Gemma or Qwen and nothing leaving the machine. What that took.
The rules, publishedEvery area has a written spec with invariants and scenarios, replayed on every build. Read them.
Export and deleteEverything, as JSON, audit log included, any day. One button deletes a space for good.
Questions

Asked before people start

Do I need a Claude subscription?

In practice today, a Claude Pro or Team plan is the easiest way in: add saybooks.io/mcp as a connector and talk. Under the hood it is a plain MCP server, so anything that speaks MCP can drive it, and the web app needs no AI at all.

Can it run on my own machine?

Yes. Saybooks is open source and runs on a laptop, and a local model can keep the books with nothing leaving the machine. Gemma 4 26B in LM Studio kept a full invoice cycle and a full statement cycle from plain sentences. The docs have the setup; a note has what it took.

Is it accounting software?

No. It keeps the operational record: quotes, orders, invoices, receivables, pipeline, reviewed spending. Your accountant's ledger stays where it is; Saybooks hands over balanced journal lines as a QuickBooks Online or Xero import file, and keeps what went and when.

What does it cost?

Nothing today. There is no paid plan yet. When there is, prices change with twelve months' notice, and your data exports completely, in open formats, on every plan, forever.

What happens to my books if Saybooks disappears?

Export takes everything, in JSON, audit log included, any day. The code is public under the AGPL and runs on a laptop. Your data does not depend on the hosted service existing.

For builders

One definition, both surfaces

Every business act is declared once. From that declaration Saybooks derives the tool the agent sees over MCP, the form a person sees, the rule that can refuse either, and the audit row. The two surfaces cannot drift; a contract test fails the build if they do.

Free. Open source.
Yours to export any day.

No paid plan exists yet. When one does, prices change with twelve months' notice, and your data exports completely, in open formats, on every plan, forever.

Try it now, no signup