Introduction
Beancount Desktop is a native macOS app for people who keep their accounts in Beancount: a plain-text, double-entry accounting system. The app reads the ledger you already have, shows it as reports, charts, a portfolio and a journal, and lets you add and edit entries without giving up the text file.
If you know Fava, think of it as the same idea as a Mac app: faster to open, keyboard driven, with Git built in and a companion for the iPhone.
What you can do with it
Section titled “What you can do with it”- See where you stand. Income Statement, Balance Sheet and Trial Balance for any period, with columns per month, quarter or year, and charts on top.
- Follow your investments. A Portfolio screen with every lot, its cost, its market value and its unrealized gain.
- Read your ledger. A Journal with every directive, searchable and filterable.
- Write to it. A dialog for transactions with autocomplete, and a full text editor for everything else.
- Keep a history. Every save becomes a Git commit you can reword, undo and inspect.
- Capture on the go. An iPhone companion app records expenses as drafts and hands them to the Mac.
The ideas behind it
Section titled “The ideas behind it”Your ledger stays a text file. The app never converts it, imports it into a database or keeps a copy. It reads the .beancount files where they are and writes to them the way you would by hand: in date order, aligned like the rest of the file. You can keep using any other tool on the same files at the same time.
The numbers are Beancount’s. All the arithmetic — sums, conversions, booking of lots, your plugins — is done by the real Beancount, running as a helper process. The app only presents the results. That is why a report here matches bean-check, bean-query and Fava exactly. Under the hood it also reuses Fava’s calculation code as a library; you do not need Fava installed, and it never runs as a web app.
Nothing leaves your Mac. There is no account, no server, no sync service and no telemetry. Even the iPhone companion exchanges plain files that you move (AirDrop, Files, mail…). The one connection the app makes is a daily check for a newer version of itself, which you can turn off in Settings ▸ Updates.
Simple over complete. The app does not try to mirror every screen of Fava. Where Fava has four holdings reports, there is one Portfolio screen with a selector. Where a feature would add more confusion than value, it is left out on purpose.
What it is not
Section titled “What it is not”- It is not a budgeting app, and it does not download transactions from your bank.
- It does not replace learning Beancount. You need a ledger, or the will to start one. The Beancount documentation is the place to learn the language.
- It does not push to or pull from a Git remote. Commits are local; syncing the repository is up to you.
Install the app, then open your ledger.