History and undo
ShippedWorks today.
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.
The audit trail
Your book is a plain-text Beancount ledger inside a git repository. Every write
— by you, by the agent, by the API — is committed. history lists them, each
carrying what changed and when.
2026-08-13 * "Unknown merchant" ""
+ Expenses:Unknown 218.60 USD
+ Assets:Bank:Checking -218.60 USD
The gate
Every write runs through bean-check before it commits. An entry whose
postings do not sum to zero is refused, not saved and flagged. An automated
writer cannot leave the ledger in a state that does not add up.
Undo
revert reverses a commit. There is one real limitation, worth knowing before
you need it:
Revert only reliably works on the tip. Reverting a middle commit fails with a git conflict once a later commit has appended to the same file. The tool leaves the ledger unchanged — which is correct — but a mistake buried in history has to be fixed forward with a compensating transaction, not undone.
That is how real accounting works anyway. It is still a limitation rather than a design choice, and it is stated here rather than discovered.
What there is not
No one-click export. The data is a git repository and nothing is trapped, but the route that hands you a bundle does not exist yet — tracked as #48.
Something here wrong or missing? Put it on the board — it is public, and the reply is in the thread.