Personal finance software for people who use coding agents. Open source, fully local software.

dbu6 takes all your financial statements and imports them into a robust double-entry accounting system. This lets you track your income and expenses, net worth, and their graph over time.

Any bank, any format

dbu6 is malleable. It supports PDFs, XLS, CSV, text files, and TSV from any bank and credit card and any format. When it encounters a format it hasn't seen before, it will hand over the task to your local coding agent (Claude Code, Codex, or Pi), which will write a fully tested statement reader for that specific format. From then on, that format is easily read and parsed instantaneously.

Categorized for you, reviewed by you

When you import a statement, your entries will be automatically categorized into accounts like Groceries, Subscriptions, Hotel, Dining Out and so on. It does this by sending your transaction details to your local coding agent, along with your chart of accounts, and any specific instructions you add - like "LLM subscriptions should go to Software Expenses account" - and maps them automatically.

You see each transaction beside its category before it reaches your books, fix what's wrong, and can turn a fix into a rule.

Automatic transaction categorization rules on the Exact tab: three tabs in order, Exact then Contains then AI, and descriptions grouped by the account they go to. Capture: sample-data demo (npx dbu6 seed), signed in as the demo user; viewport 1440×900 @2x; open /categorization-rules?show=exact; clip x320 y0 w1016 h690 (CSS px).
You can also teach your categorization rules

Your data, on your machine

All data is stored locally in a single SQLite database. dbu6 also exposes APIs, so that you can work with your information using a coding agent. This means all the power of a coding agent that your imagination can bring forth, you can apply to your financial data. For example, before making a big purchase decision - you can ask your agent to look at your finances and figure out the risks of a large outlay.

The Income and Expenses report

This report shows how much money came in each month, how much went out, and how much of it you kept. You can click into any month or account to see how your spending there has changed over time - for example, whether Dining Out has been creeping up since last summer. From there you can open its largest transactions, and the full ledger behind them.

dbu6's Income and Expenses report for the last 12 months: income, spending and the amount kept as three figures, a month-by-month chart of income against spending, spending by account with each account's share and its months, and the largest spending entries beside it. Capture: the dbu6-videos teaser screen library, state hdfc-september-imported (sample data with an HDFC Bank September statement imported); viewport 1440×810 @2x; open /reports/income-expenses; clip x230 y0 w1210 h810 (CSS px), which leaves out the sidebar.
The last 12 months, with spending by account and its largest entries.

Net Worth Over Time

This report shows what you own and what you owe at the start of each month, and the difference between the two - your net worth. The last column shows how much it changed from the month before, so you can see at a glance whether you're moving forward, and which months set you back.

The Balance Sheet shows the accounts behind those totals: your bank balances, investments like mutual funds, PF and gold, and what you owe on cards and loans. For these numbers to be right from the start, add your opening balances when you set up your books.

dbu6's Net Worth Over Time report for all time: one row per month with assets, liabilities, net worth and the change from the month before, every change positive, and the current totals at the bottom. Capture: the dbu6-videos teaser screen library, state hdfc-september-posted (sample data with an HDFC Bank September statement added to the books); viewport 1440×810 @2x; open /reports/net-worth; clip x216 y0 w800 h600 (CSS px), which leaves out the sidebar and the Run report button.
A year of sample data. Net worth grew every month.

Setting up

dbu6 needs Node.js 22.18 or newer, uv, poppler's pdftotext to read statements, and a coding agent: Claude Code, Codex or Pi. git is optional.

Install the tools

Add the Sapporta skill to your coding agent

dbu6 works through your coding agent. It categorizes what your rules don't, proposes a chart of accounts, and teaches dbu6 statement layouts it can't read yet, and it needs the Sapporta skill to do any of this. Install it once, for the agents on this machine:

Make a folder for your books, and serve it

Sign up, and give your agent access

Open localhost:2345 and sign up. Then, in the same folder, give the agent access to your books and check it:

The token for your account goes in .env.agent; never commit it. With more than one account, add --user you@example.com.

Set up your books

Home shows the next thing to do, one at a time:

  1. Pick a chart of accounts. Start from dbu6's starter chart, or describe your money in a sentence and your coding agent proposes accounts that fit.
  2. Add a bank or card. Name it and the account its statements belong to.
  3. Import a recent statement for it. This is where your books start: dbu6 takes the account's starting balance from it.
  4. Add your opening balances (optional). What your cash, investments and loans held on that day, so the balance sheet is right from the start.
  5. Review, and add it to your books. Fix any categories, check for duplicates and balances, then add it. Nothing reaches your books before this.

If something is missing, npx dbu6 check says what. Getting started has each step in full.

Or try it with sample data

With dbu6 dev running, load a year of sample finances, with the current month left for you to review:

Sign in as demo@example.com with demo-password.

Usage

Your books are data/: one SQLite database. dbu6 keeps no other copy and makes no backup — stop it and copy that folder. Your rules and prompts sit beside it in user-config/, which belongs in git.

Double-entry books

dbu6 keeps your books in double entry. Each transaction is recorded as two equal sides: the amount leaves one account and arrives in another. A grocery bill paid by card, for example, adds to your Groceries expense and to what you owe on the card.

A bank statement prints its balance as of each date. Before a statement is added to your books, dbu6 compares those balances with the running balance in your books. If they match, you can add it. If they don't, the statement stays in review, with the difference shown for each date, until the missing or duplicated transaction is found.

The balance sheet, the trial balance and net worth over time are all read from these same books.

A card's review overview, held back from posting: one transaction needs a category, no duplicates, and the balance checks against the statement fail; the Add to my books button is disabled. Capture: sample-data demo (npx dbu6 seed), signed in as the demo user; viewport 1440×900 @2x; open /review; click the HDFC Millennia card (its Overview tab); clip x216 y0 w1000 h360 (CSS px).
A statement in review. Its balances don't match the books yet, so it can't be added.

More screenshots

Documentation