Private Books
Bank accounts, cards, and brokerage holdings in one private dashboard, refreshed every four hours and kept on your own computer.
The problem: seeing where the money goes.
Balances live in banks. Holdings live in brokerages. Transactions arrive with inconsistent names, and history disappears behind rolling data windows. Five accounts, five formats, no single number.
Every transaction is categorised as it arrives.
Transactions come in with the names banks give them. Private Books sorts each one into a category the owner defined, and the month's totals update as they land.
| Date | Description | Category | Amount |
|---|
Ask it a question.
Ask about your money in plain language. The answer comes with the numbers behind it and a chart, computed from your own transactions, with transfers between accounts excluded so nothing is counted twice.
Everything in, minus everything out, across all five accounts over June, July, and August. Transfers between accounts are excluded so nothing is counted twice.
Those two carry most of the increase. Every other category moved less than $80 in either direction.
At the rate of the last six months, cash clears $12,000 in early March without selling anything. A month at August's spending pushes it to late March.
Charged on two different cards every month since March. One of them predates the other by three years.
Every account is read every four hours.
Transactions, statements, balances, and holdings are pulled from every connected account on a schedule and written into one local file. Nothing is exported or downloaded by hand.
It runs on your own computer.
It installs on one machine and keeps everything in a single database file you can copy, back up, or delete. Nothing is uploaded, and there is nothing to revoke.
| Where it runs | Locally. The database is one file on the machine it runs on. |
|---|---|
| Schedule | launchd, every four hours, unattended. |
| Connections | Read-only, bank and brokerage. Pull only, with no ability to move money. |
| Backend | FastAPI and SQLite, with SQLAlchemy and Alembic. |
| Interface | React with Vite, served by the same process. Every chart is drawn by hand in SVG. |