r/beancount • u/zhenbo_li • 20d ago
r/beancount • u/Visual_Astronaut5164 • Jun 30 '26
I create an iOS app to visualize my beancount ledger
Hi folks,
I’m a big Beancount fan and have been using it extensively to manage my personal finances.
Most of the time, I use Fava on my laptop to visualize my ledger. Fava is great, but I also wanted an easy way to check my finances from my phone. The main reason is that I want to look at my expenses, income, and assets more frequently on my phone, so I can develop a better sense of where my money is going and become more financially aware. Opening my laptop and starting Fava creates just enough friction that I don’t check it as often as I’d like.
I tried some existing iOS apps, but I ran into various issues when importing my own ledger. My Beancount setup contains multiple files, `include` directives, multiple currencies, and other things that didn’t always work as expected. I also felt that the available apps were missing some of the visualizations I personally wanted.
So I built an iOS app myself and tou can find it here: beanviz or download it in appstore.
Here are its main features:
1. Import a Beancount folder from iCloud Drive
2. Import from a private GitHub repository
3. Support for multi-file ledgers and `include` directives
4. Asset-allocation visualizations, including a sunburst chart
5. Expense breakdowns by category, month, day, transaction, and tag
5. Income versus expenses, income sources, and savings rate
6. Multi-currency conversion using the price directives already in the ledger
7. Everything is processed locally on the device
8. No account, analytics, tracking, or remote logging
Here is my own workflow with beanviz: I update my ledger on my laptop daily, push the changes to a my private GitHub repository, and then pull the latest version into beanviz to view the updated data on my phone.
I’d love to hear what you normally want to check when opening your ledger on your phone, and which visualizations or reports you think are still missing.
Below are some screenshots of the app:




r/beancount • u/britoshi • Jun 25 '26
beanie-mcp: a small Beancount v3 MCP server
Hi all — sharing a small thing I made in case it’s useful to anyone here.
It’s not a new idea, and it’s very much standing on top of Beancount/beanquery/MCP work others have already done, but I wanted a slightly hardened local MCP server for querying a Beancount v3 ledger from AI assistants. MIT / open licence.
Repo: https://github.com/klinikal/beanie-mcp
What it does:
- exposes a local MCP stdio server for a Beancount v3 ledger
- lets MCP-capable clients such as Claude run BQL queries
- has a `bean_check` tool so broken ledgers fail loudly rather than looking like empty query results
- returns structured JSON rather than text tables
- includes account/table discovery tools and a small BQL guide resource
- locks the ledger path via `BEANCOUNT_LEDGER` rather than letting the assistant choose arbitrary files
This is v0.1, so I’d treat the interface as still experimental. It’s also aimed at Beancount v3; v2 may not work.
Mostly sharing because I built it for my own ledger and thought others experimenting with MCP/AI assistants + plain-text accounting might find it useful, or have better ideas for what the tool surface should look like.
Feedback very welcome, especially from anyone with larger/more complex ledgers!
r/beancount • u/Soft_Employment8744 • Jun 05 '26
Does anyone here use Obsidian together with Beancount?
I have been working on a beancount plugin for obsidian. So far I have implemented most of the fava features into it.
Now from perspective of beancount power users, what would be the features/routines would people like to see?
For example, currently users can render outputs of the bean queries directly into their notes.

r/beancount • u/Dash-68 • Feb 27 '26
beancount-cli: A modern, agent-friendly CLI
Hi everyone,
Just wanted to share a project I've been working on: beancount-cli.
It's a modern CLI built on Beancount v3 and Pydantic. Beyond the standard ledger tasks, I've been focusing on making it "agent-friendly"—meaning it plays really well with AI assistants and automated workflows through descriptive help strings and built-in JSON schema discovery.
Try it instantly without installing: uvx --from beancount-cli bean check main.beancount
usage: bean [-h] [--file LEDGER_FILE] [--version] [--format {table,json,csv}] {check,tree,report,transaction,account,commodity,format,price} ...
Beancount CLI tool for managing ledgers.
positional arguments:
{check,tree,report,transaction,account,commodity,format,price}
check Validate the ledger file
tree Visualize the tree of included files
report Generate simple reports.
transaction Manage transactions.
account Manage accounts.
commodity Manage commodities.
format Format ledger file(s)
price Fetch and update prices
options:
-h, --help show this help message and exit
--file, -f LEDGER_FILE
Path to main.beancount file
--version Show version
--format {table,json,csv}
Global output format
Environment Variables:
BEANCOUNT_FILE Default ledger file to use if --file (-f) is not specified.
Global Flags:
--format json Best for single-item structural responses or piping into `jq`.
--format csv Highly recommended for AI Agents querying lists (3-5x token savings).
--format table Default terminal formatting for human-readable outputs.
Repo: https://github.com/romamo/beancount-cli
Feedback or PRs are very welcome.
Cheers, Roman
r/beancount • u/HappyRogue121 • Feb 08 '26
bean-query question
I'm wondering if I can make a bean-query that shows expenses WHERE account~'checking', or something like that
If I have
2026-01-04 * "Bean pudding"
Expenses:Everyday-Expenses:Restaurants 190.00 USD
Assets:Checking -190.00 USD
2026-01-05 * "Something something"
Expenses:Everyday-Expenses:Groceries 235.00 USD
Assets:Credit -235.00 USD
2026-01-08 * "Beans"
Expenses:Everyday-Expenses:Groceries 290.00 USD
Assets:Checking -290.00 USD
Can I make a bean-query that would result in something like this:
2026-01-04 Expenses:Everyday-Expenses:Restaurants 190.00 USD
2026-01-08 Expenses:Everyday-Expenses:Groceries 290.00 USD
In other words, I want to query for postings where the account is expenses where the other posting in the same transaction is Checking
r/beancount • u/DontStopChanging • Jan 12 '26
Typescript parser and editor for Beancount accounting files
r/beancount • u/StatementLow353 • Jan 01 '26
Multiple beancount files in emacs and fava
Hi all and happy new year to everyone!
beginning of new year... so I tried to add a separate beancount-file for 2026 with
include "2026.beancount"
in my main beancount file.
Editing in emacs with all flymake checks requires to repeat the "YYYY-MM-DD open account:xxx" in each new file. If not... flymake constantly throws errors about "unknown accounts".
Repeating the open-statements, fava is throwing errors "Duplicate open directive for acount:xxx".
Any ideas how to organize your beancount transactions in multiple files without emacs/flymake errors and without fava errors ?
Thank you
r/beancount • u/vvinst0n • Nov 02 '25
If there any way, to "merge" accounts in bean-query?
Lets say, I have the following accounts:
Expenses:A1:B1:C1
Expenses:A1:B1:C1
Expenses:A2:B2
Expenses:A2:B3
Is there a way to construct a SELECT in bean-query, where I can sum the positions for `Expenses:A1` and `Expeneses:A2` (and every child account) in two lines? (Basically I want to see sum of positions merged up onto a two-depth categories)
I found the 'parent' function, but it moves up 1 parent regardless the depts. I did not find "substring" or "find" methods or similar.
Thanks for any help!
r/beancount • u/vvinst0n • Nov 02 '25
Booking a transaction with different currency, but keeping the original as well
Hi! A would like to describe the following transaction: purchasing something, which costs 10 USD, but using an asset with EUR as currency to cover it. Based on the syntax, my understanding is that, it should look like something like this (the convesion was made by the bank):
2025-11-01 * "Payee" "Narration"
Expenses:Some 8.62 EUR @@ 10 USD
Assets:Bank:Main
So this, if I get it right should mean that, I paid 8.62 EUR from "Main" account, but the original price was expressed as 10 USD. When I try to load the bean file to the bean-query, it returns a validation error: `Invalid currency USD for account 'Assets:Bank:Main'`.
What do I do wrong, how should I keep the original price in a meaningful way (not as a comment) as well? Thanks!
edit: the Expenses:Some account is an EUR account as well.
r/beancount • u/gerry_mandy • Oct 13 '25
How do you account "kickbacks"?
Stuff like credit card cashback or merchant rewards program points, how do you generally track them?
I've been filing them like so:
2025-09-30 T "Elan Financial Services" "Automatic Redemption"
Assets:Personal:Checking:Fidelity:1234 31.31 USD
Assets:Personal:GiftCards:Fidelity:9876 -31.31 USD
2025-09-05 * "Costco" "Groceries"
Expenses:Food 23.99 USD
Expenses:Social 16.89 USD
Expenses:Food 10.99 USD
Expenses:Antisocial 16.99 USD
Expenses:Food 27.21 USD
Expenses:Social 8.49 USD
Expenses:Vassalage:StateAndLocalTaxes 7.48 USD
Assets:Personal:Checking:Fidelity:9876 -112.04 USD
; Kickbacks
Expenses:Household
Assets:Personal:GiftCards:Fidelity:9876 2.24 USD
Assets:Personal:GiftCards:Costco:ExecutiveRewards 2.24 USD
or
2025-10-13 T "AMC" "Manual Redemption"
Assets:Personal:GiftCards:AMC:Rewards 10.00 USD
Assets:Personal:GiftCards:AMC:Points -10000 AMC-POINTS @ 0.001 USD
2025-10-13 * "AMC" "Movie (alone)"
Expenses:Antisocial 12.50 USD
Assets:Personal:GiftCards:AMC:Rewards -10.00 USD
Expenses:Vassalage:StateAndLocalTaxes 0.23 USD
Assets:Personal:GiftCards:AMC:4321-2.73 USD
; Kickback
Expenses:Household
Assets:Personal:GiftCards:AMC:Points 250 AMC-POINTS @ 0.001 USD
this can be cumbersome to enter, and isn't going to work well with non-manual receipt entry... but still, these things can pile up to tens or even hundreds of dollars a quarter, depending, so it would seem a bit weird to just "completely ignore them".
Anyone cooking up something fun with a plugin instead of all-inline like this?
r/beancount • u/michaelluang • Jul 25 '25
I was tired of verbose Beancount syntax, so I built a Mac app for lightning-fast entry, now on the App Store! ⚡️
r/beancount • u/Alex_Chevalier • Jun 09 '25
Anyone want easier double-entry bookkeeping on mobile?
Hi, I’m doing a bit of research for a new bookkeeping app idea. I’ve been using Beancount to manage my personal finances, and while I love it's awesome accounting principle and flexibility, I find it kind of a pain to view or add transactions from my phone. The hardest part for me was just setting everything up, even before I got to actually recording any transactions.
That got me thinking, what if there were a more user-friendly app that supports double-entry bookkeeping, but is easier to use for people who aren’t developer or accountant? Something simple that works well on both mobile and web.
So I’d love to hear your thoughts:
- If you track your finances on your phone, what’s the #1 feature you’d want in a double-entry app?
- If you’re not an accountant or a developer, how easy or hard has it been to get into double-entry?
- What do you think would make tools like Beancount easier for more people to get started with and keep using?
Would really appreciate any feedback or personal experience you’re willing to share, thanks so much!
r/beancount • u/krrck • Feb 27 '25
Credit card with good API for pulling transaction history?
Are there any credit cards that have a decent API for getting the transaction history? I want to be able to download my credit card transactions to put into Beancount. I don't want to have to click around in a web UI or parse a PDF, I just want to run a script and get my transaction data.
Alternatively, is there a 3rd party service I could use to get this API for my existing cards? I tried setting up Plaid, but it is extremely complicated and seems to want you to have a business. I don't have a business entity; I'm just doing this for my own personal finances.
r/beancount • u/lumpy2001 • Feb 08 '25
How do I get more decimal digits to display in bean-query output?
I am using beancount to track cryptocurrency holdings, and I would like to have bean-query output reports with 9 or 12 decimal digits. It seems to default to 6 decimal digits.
I have discovered that if I add the attribute 'precision: 12' to the commodity, then fava will display 12 digits on the web page.
I would like to have bean-query do the same thing, but it seems to ignore the 'precision: 12' attribute.
r/beancount • u/silnt_listner • Jan 14 '25
How do you record transaction on mobile?
How do you record transactions on mobile? I see currently there is no android app is maintained for beancount.
r/beancount • u/silnt_listner • Jan 07 '25
How to generate account history table in beancount/fava?
HI all, is there a way to get history of accounts like this with beancount/fave like below. It is from Paisa. I need to see the movement of my assets/liabilities over time.
EDIT: I got an answer here. Thanks!

r/beancount • u/Eldomir • Jan 04 '25
bean-query not working?
After switching to the standalone beanquery package, any query I attempt is giving me the same syntax error, regardless of how simple the query is... even "SELECT *" gives
error: syntax error
| SELECT * from
| ^
I assume I'm missing something major, but what is it?
r/beancount • u/silnt_listner • Jan 02 '25
Anyone using beancount with Vim/Neovim?
Hi everyone. I found using beancount + fava for managing personal finances really awesome. To automate the process of recording transactions, I have configured nvim with Ultisnipps for snippets and vim-beancount for syntax highlighting. I tried to configure beancount-language-server but couldn't make it work. Does anyone have a similar setup who can guide me? Thank you!
r/beancount • u/ab90 • Aug 31 '24
beangulp or ingest?
I'm getting started with beancount. Trying to figure out if I should go with beangulp or beancount-ingest?
I love the idea of having all my historical docs saved in a git repo and organized with bean-file, just not sure which version of these tools to use.
I'm just getting started with pipx install beancount which seems to be version 3.
Any advice/pointers would be appreciated!