Beanbook:Features

From a shop receipt to a yearly summary.

Entering what you spent takes a few taps. Behind it is Beancount, the same double-entry accounting software people run on a desktop, with Fava's reports on top, both running on your phone.

Illustrative BQL queryQuery
SELECT account, sum(position)WHERE account ~ '^Expenses:Food'GROUP BY accountORDER BY account

Recording what you spend

A form for everyday entries, and the text file itself when that is quicker. Both write to the same place.

Guided entry

Use the form for transactions and other entries. Edit, delete or copy existing ones, and the ledger stays ordinary Beancount text.

Raw files

Read and edit the ledger files themselves, with highlighting and search. If a file changed after you opened it, the save stops rather than overwrite the newer version.

Saved means saved

A change is written in full and read back by Beancount before the app says it is saved. If something fails halfway, the previous version comes back.

Your formatting survives

Comments, spacing, includes, relative paths and anything the app does not recognise stay exactly as you wrote them, outside the entry you change.

Where the money went

Fava's full set of reports and charts, beside the list of entries, your account balances, and the text editor.

Fava reports on the device

  • Balance sheet
  • Income statement
  • Trial balance
  • Holdings
  • Commodities
  • Accounts
  • Payees
  • Tags and links
  • Charts
  • BQL queries

Documents, mirroring, and backup

Your projects live inside the app. These are the ways to get a copy out, or keep one in step.

  • Receipts and statements

    Photograph or attach receipts, turn the pages into one PDF, and link it to an entry or an account. Documents are kept in the project folder, so they travel with it.

  • Manual copies

    Export to an ordinary folder or a backup archive.

  • Auto-mirror

    Auto-mirror keeps a copy in a folder you choose, such as one your cloud storage syncs. If the same file changes in both places, both versions are kept and you decide.

  • Scheduled backup

    The app can back up on a schedule and keep as many past copies as you choose. A backup you start yourself can be protected with a passphrase; scheduled ones are not.

Remote mode is deliberately narrower

Remote mode uses a Fava server you host. It provides reports and quick-add while the server is reachable.

It does not keep an offline copy, edit existing remote entries, or attempt two-way sync. An https:// certificate error is fatal. An http:// connection is used only when you type that scheme and is disclosed as unencrypted before connection.

Plugins and scripts

Plugins add checks, entries or report pages: Beancount plugins, Fava extensions, and importers for your bank's exports. The app also runs Python scripts. See the plugins people use.

Code you choose

A plugin runs with the app's permissions and can reach anything the app can: it is a program you are trusting. It runs only when your ledger names it, and safe mode holds all of them back.

Play edition

Plugins are added from a file, must be plain Python, and cannot use your phone's own features. This edition never downloads code.

Expert edition

Plugins install from the in-app list in one tap, with the Python libraries they need, and can use your phone's own features.

Big libraries stay optional

Some plugins need libraries far larger than the app itself, so they are never bundled. They are downloaded only when you install a plugin that needs them, or ask for one by name.

Not a safety guarantee.

The Play edition's limits on plugins are store rules, not protection for your ledger. In both editions a plugin runs with the app's permissions.

Check the edition before installing.

The ledger format is identical in both editions, but package and update behavior differs.