Skip to main content

UI Features of beancount.io

The beancount.io web interface provides a suite of tools to help you manage, analyze, and customize your accounting workflow. This article highlights the main features available to users.

Editor

The beancount.io UI includes a built-in editor for quick changes to your Beancount source file. Features include:

  • Auto-completion for account names, payees, tags, and more
  • Trailing whitespace highlighting
  • Flexible file selection via the default-file option
  • Smart cursor placement using the insert-entry option (jumps to the most recent entry)

Querying with BQL

On the Query page, you can run Beancount Query Language (BQL) queries, similar to the bean-query CLI tool. The UI will display results as tables and, when possible, as charts (line or treemap) if your query returns two columns (date/string and inventory).

  • Download query results as CSV by default
  • See the BQL Reference for more details

Adding Transactions

Click the + button (or press n) to open the transaction form. You can:

  • Insert transactions at a specific position with the insert-entry option
  • Bookmark the form with #add-transaction in the URL
  • Add tags and links directly in the narration field (e.g., Lunch #food ^receipt)

Up-to-Date Indicators

Colored dots next to accounts help you track which accounts are up-to-date:

  • Green: Last entry is a passing balance check
  • Red: Last entry is a failed balance check
  • Yellow: Last entry is not a balance check
  • Grey: Account not updated recently (configurable with uptodate-indicator-grey-lookback-days)

Enable this by setting fava-uptodate-indication: TRUE in the account’s Open directive.

Displaying Only Relevant Accounts

The beancount.io interface provides options to declutter your account view:

  • show-closed-accounts
  • show-accounts-with-zero-balance
  • show-accounts-with-zero-transactions
  • collapse-pattern

Opening an External Editor

You can open your Beancount file in your favorite editor directly from the beancount.io UI using the use-external-editor config and the beancount:// URL handler. See beancount_urlscheme for setup.

Multiple Beancount Files

If you start the beancount.io UI with multiple Beancount files, you can easily switch between them by clicking the file name at the top left.

Add frequently used or filtered views to the sidebar using the custom directive:

2016-05-04 custom "fava-sidebar-link" "Income 2014" "../income_statement?time=2014"
  • The first argument is the sidebar label
  • The second is the URL (relative or absolute)

Common examples:

  • All Documents: /<slug>/journal/?show=document
  • All Notes: /<slug>/journal/?show=note
  • Use /jump for dynamic links (e.g., /jump?time=month)

Language Support

Set the interface language with the language option, or let the beancount.io UI detect it from your browser.

Uploading Documents & Statements

  • Drag and drop files onto account names or Journal rows to upload
  • Drop on account: file is stored in the account’s folder; you can rename before saving
  • Drop on transaction: creates a document metadata entry for the transaction
  • Files are stored in your documents folder (set with option "documents" ...)
  • Beancount auto-discovers documents and generates entries
  • Enable plugins for extra automation:
    • Tag discovered documents: plugin "fava.plugins.tag_discovered_documents"
    • Link documents to transactions: plugin "fava.plugins.link_documents"

Exporting Journal Views

You can export any displayed (including filtered) Journal view in Beancount format by clicking the Export button.