Not a budget toy. The pages below replace what people use Mint, Empower, and a stack of spreadsheets to do — under one roof, with your own data.
Per-account FIFO matching mirroring the 1099-B. Chain-correct wash-sale calculator, cross-account transfer reconciliation, Form 8949 CSV, pre-flight sell modal, tax-loss harvest finder.
Multi-decade Monte Carlo with bracket-aware tax math, Roth conversion ladder, IRMAA, RMDs, survivor scenario, sequence-of-returns stress, age-banded spending phases.
30-day forward calendar with paycheck overlay, per-day running balance, projected low-point tile, drag-to-reschedule for one-off events.
Full amortization with extra-payment slider, bi-weekly comparison, refinance modeler, PMI drop-off detection, HELOC modeling, multi-loan stacked timeline.
HSA contribution tracker, capital-loss carryover, Schedule C bucketizer with capital-vs-expense routing, business mileage. One PDF for your CPA.
Per-category targets with personal/business split. Auto-rollover for variable categories. Force-tag/untag overrides for the subscription detector.
The tile grid above is the brochure. This is the showroom — what each page actually looks like and the specific work it does.
The page you open every morning. Net-worth + cash + month-delta tiles, anomaly insights surfaced before you go looking, and stale-balance alerts on accounts that haven’t synced.
A spreadsheet that knows what categories are. Search, filter, edit in bulk, attach notes, pin for later — and when you recategorize a one-off, the app offers to make it a permanent rule.
Heatmap of when you spend, leaderboard of who you pay, year-over-year of how that’s shifting. The page that makes patterns visible before they become problems.
A real calendar, not a list. Bills and paychecks land on actual dates with a running balance underneath, and a low-point tile flags the day you should worry about.
One page that answers “what if I paid an extra $200/mo?” without a spreadsheet. Includes the modeling tools your bank charges to use.
The page accountants charge $300/hour to assemble. Per-account FIFO matching that mirrors your 1099-B, a chain-correct wash-sale calculator, and a clean Form 8949 CSV at the end.
A retirement model that knows about progressive brackets, RMDs, IRMAA, the 0% LTCG rule, and what happens when one spouse outlives the other. Most calculators stop at “rough estimate.”
A year-end summary that pulls from every other page — HSA contributions, capital loss carryover, Schedule C buckets, business mileage — and stitches them into a single document.
One SQLite file, not a SaaS. Plaid runs over TLS direct from your laptop to your bank. No cloud, no analytics, no telemetry, no marketing emails to opt out of.
Mint went away. Many of its replacements will eventually too. Tusk Ledger is yours — fork it, host it, hack it. The bus factor is one (you).
Free Plaid tier covers up to 100 connected items. For a personal household that’s permanent. Past that you’re paying Plaid directly, not me.
Plaid talks to your bank, your laptop talks to Plaid, and that's the entire round-trip. There is no Tusk Ledger server in the middle because there is no Tusk Ledger server.
Five years ago, running a local-first finance app meant being a developer. Today, you just need an AI assistant in your pocket. Tusk Ledger is built to work with Claude Code, Cursor, Cowork, and the rest — clone the repo, hand it to your assistant, and let it install, configure, and customize it for you.
Tell Claude / Cursor / Cowork to set up tuskledger. It clones, reads AGENTS.md, installs the venv + node modules, and gets the dev servers running.
Your assistant guides you through getting sandbox keys (5 min) or production access (a few days). When something errors out, paste the error back to it; the gotchas are documented.
"Add a tile that shows my coffee spending by week." "Make the dashboard hide income." Your assistant edits the React component, hot-reloads, and the change is live. The repo is your repo.
The data stays on your laptop. Your assistant stays separate (you bring your own — there's no LLM embedded in the app). The bridge between them stays local.
Where it's the same, where it's different, where the trade-offs sit. Calibrated by someone who actually used all five for years.
| Mint | Empower | Quicken | Spreadsheet | Tusk Ledger | |
|---|---|---|---|---|---|
| Local-only data | ○ | ○ | ◐ | ● | ● |
| Open source / inspectable | ○ | ○ | ○ | ● | ● |
| No subscription | ◐ | ● | ○ | ● | ● |
| Bank sync (Plaid) | ● | ● | ● | ○ | ● |
| Bills + paycheck calendar | ● | ○ | ● | ○ | ● |
| Tax-aware retirement model | ○ | ◐ | ◐ | ○ | ● |
| Wash-sale calculator | ○ | ○ | ◐ | ○ | ● |
| Schedule C bucketizer | ○ | ○ | ◐ | ○ | ● |
| Zero telemetry | ○ | ○ | ○ | ● | ● |
| Survives if vendor folds | ○ | ○ | ○ | ● | ● |
Your bank data should live where your bank statements live — on your machine. No SaaS to outlive, no breach to be in, no marketing emails to opt out of. SQLite is in your home folder; you can move it, back it up, or delete it like any other file.
Copy the .db file. That’s the entire app’s state. Restore on the new machine, run ./start.sh, and you’re back exactly where you left off. Plaid access tokens carry over too unless they’ve expired.
The app auto-snapshots the SQLite DB on every startup to a sibling folder. You decide what backup tooling fits the rest of your life — Time Machine, rsync, encrypted external drive, an iCloud Drive folder. The DB is one file.
Plaid’s free tier covers 100 connected items. For one household, that’s permanent. If you go past it, you pay Plaid directly — there’s no middle layer marking up your usage. If Plaid disappeared tomorrow you’d lose bank sync but keep every transaction you’d already pulled.
It’s already out. The whole DB is on your laptop in plain SQLite. Open it in DB Browser, dump it to CSV, query it from a Python REPL — there’s no export button because there’s no lock-in.
Demo mode ships enabled by default so you can poke around with seeded data before linking real accounts. One toggle in Settings flips you to real mode; the app refuses to mix the two and prompts before the switch.
Optional. There’s full email/password + TOTP MFA support if you want it; on a single-user laptop many people skip it via DEV_BYPASS_AUTH. Your machine, your call.
GitHub issues for bugs, GitHub PRs for code, GitHub discussions for ideas. The repo is the only place anything happens — no separate forum, no Discord, no email list.
Requires Python 3.12+ and Node 22+. Plaid sandbox keys are immediate; production access takes a few days but is free for household use.
# 1. Clone
git clone https://github.com/BradMorphsters/tuskledger.git
cd tuskledger
# 2. Configure backend (paste Plaid sandbox keys)
cp backend/.env.example backend/.env
# 3. Launch — sets up venv + npm install + boots both servers
./start.shOr double-click Tusk Ledger.command if you cloned to a Mac. Demo mode is enabled by default so you can poke around before linking real accounts.