Skip to content

BeanTab is a spreadsheet-like interface for Fava to mangage balance assertions in your Beancount ledger

License

Notifications You must be signed in to change notification settings

Evernight/beantab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BeanTab

License

BeanTab is a spreadsheet-like interface for Fava to mangage balance assertions in your Beancount ledger.

BeanTab

What's the ideal way to manage balance assertions? I switched to Beancount from spreadsheets where I used to track balances of accounts and, as a consequence, total net worth. I got many more possibilities and features as a reward of that migration but if I'm being honest, some aspects of tracking just balances were more convenient in spreadsheets.

Why not to get the best of both worlds? BeanTab is meant to be a part of Beancount plugin ecosystem that makes that particular workflow pleasant to use. It relies on balance-ext and pad-ext from beancount-lazy-plugins extensions that augment the original balance and pad operations with more functionality and flexibility.

Features

  • Spreadsheet-style balance table — View all balance assertions, valuations, and balance-ext entries in an editable grid (powered by RevoGrid)
  • Inline editing — Add or modify balance entries directly in the table; changes are written to your Beancount files on save
  • Multiple balance types — Supports regular Balance, valuation, and balance-ext directives (regular, padded, full-padded, valuation)
  • Filtering — Can be filtered by account / regex and a couple of additional settings to only show the set of accounts you're interested in
  • URL-persisted settings — Current configuration (filters, sort, layout) is stored in the URL for bookmarking / saving using fava-sidebar-link directive

Installation

pip install git+https://github.com/Evernight/beantab.git

Add to your Beancount ledger

Add the Fava extension directive:

2024-01-01 custom "fava-extension" "beantab" "{}"

For suggested usage pattern you will need to set up balance-ext and pad-ext from beancount-lazy-plugins. See example for more details.

Usage

  1. Run Fava with your ledger:
fava your-ledger.beancount
  1. Open the BeanTab tab in the Fava sidebar.

  2. Use the table to:

    • View balances across accounts and dates
    • Edit cells to add or change balance assertions (append ~ for padded, ! for regular when overriding)
    • Use Settings to adjust grouping, filtering, and visibility
    • Save changes to write balance-ext entries to your ledger / included files

Development

make deps          # Install Python (uv) and frontend (npm) dependencies
make build         # Build the frontend bundle
make dev           # Run Fava with example ledger + esbuild watch

With a custom ledger path:

make dev LEDGER_FILE=path/to/your/ledger.beancount

See Also

About

BeanTab is a spreadsheet-like interface for Fava to mangage balance assertions in your Beancount ledger

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published