Lunch Money's core is a ledger: accounts, transactions, categories, rules that clean up payees, recurring items, monthly budgets, tags, splits and totals in several currencies. An agent builds that on SQLite with CSV and OFX import in one session. The pipes are what cost the weekend. Lunch Money pulls transactions through Plaid, which is built for companies; for one person SimpleFIN Bridge, which Actual Budget's docs price at $15 a year for mainly US and Canadian banks, is the realistic route. A multi-currency budget also needs daily exchange rates kept for past dates, and a phone-friendly view needs hosting.
Before you buildLunch Money has a 30-day trial with every feature. Actual Budget is free to self-host and can sync banks through SimpleFIN, so try it before building.
Build me a personal budget and transaction tracker to replace Lunch Money. Requirements: - Node.js 22 + TypeScript: a Fastify API and a React front end built with Vite. `npm start` builds the UI and serves it on http://127.0.0.1:4750 only. - Storage: better-sqlite3 at ./data/money.db. Money is integer minor units plus an ISO currency code; every write runs in a transaction. Accounts (checking, credit card, cash, manual asset), transactions (date, payee, category, tags, notes, amount, currency, reviewed flag), splits, and transfers stored as linked pairs. - Import: CSV (`papaparse`, map columns once per account) and OFX or QFX (`ofx-js`). Show a preview, skip duplicates by FITID or by date, amount and payee, and report what was skipped. - Rules: when the payee contains or matches a regex, or the amount is in a range, set payee name, category or tags and mark reviewed. Run on import and on demand, and show in the transaction's history which rule changed what. - Recurring: propose monthly and weekly items from history (same payee, amount within 10%, steady interval) for me to confirm; show expected against received this month. - Budgets: a monthly amount per category with optional rollover, shown in a base currency using daily rates kept in a table. FX_SYNC=1 fetches rates from the Frankfurter API; otherwise rates are entered by hand. - Inbox of unreviewed transactions with keyboard shortcuts to categorize and mark reviewed. - Reports with Recharts: spending by category per month, income against spending, net worth. - Optional bank sync: with SIMPLEFIN_ACCESS_URL in .env, pull new transactions into mapped accounts once a day. Off by default. - Single user. No accounts, no telemetry; only the SimpleFIN and rates calls can leave the machine, and both are off by default. - Out of scope: Plaid, mobile apps, shared budgets, crypto wallets, investment performance. - README: exporting CSV or OFX from banks, where the data lives, backups, and how to compare one month's totals with Lunch Money's own CSV export.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Lunch Money.
Extend the budget tracker in this folder. Requirements: - Add `npm run import:lunchmoney <file.csv>` for Lunch Money's transaction export. Map date, category group and category, payee, amount, currency, notes, tags and account name; recreate categories and accounts that do not exist. - Rebuild splits from the parent ID column and mark rows that have a recurring ID. - Run in dry-run mode first and print counts per account; skip rows already present. - Update the README.
Extend the budget tracker in this folder. Requirements: - On the first day of each month at 08:00 (`node-cron`), email a summary with nodemailer using SMTP settings in .env: spending by category against budget, the five largest transactions, and unreviewed counts. - Render the email as plain HTML without remote images. - Add a `npm run summary -- 2026-09` command that prints the same summary for any month. - Update the README.
Extend the budget tracker in this folder. Requirements: - Add a /quick page built for phones: amount keypad, category buttons for the six most used categories, an account picker remembered from last time, and a Save button. - Make it installable as a PWA (`vite-plugin-pwa`) and queue entries offline, sending them when the connection returns. - Protect the page with one password from .env; the README explains HTTPS over Tailscale. - Update the README.
Everything is in one price, with no tiers or ads, and by the company's own account it doesn't sell your data. The price you join at is kept for as long as you stay. Add automatic bank sync and multi-currency totals, and it suits people who want a finance app that runs itself.
Estimate · Runs on your machine for nothing. SimpleFIN Bridge is about $15 a year if you want automatic bank pulls. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Monthly | $10 | — | All product features, access to the Discord community and the beta-testing program. |
| Annual | — | $8.33 | The same features as Monthly. |
| Organizations | custom | — | A separate plan for sharing Lunch Money with a team. |
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Automatic bank syncing through Plaid, and cryptocurrency wallet sync, A hosted web app you can open from any device without running a server.
About $10 a month on the Monthly plan, $120 a year (checked 2026-10-19).
Automatic bank syncing through Plaid, and cryptocurrency wallet sync; A hosted web app you can open from any device without running a server; The developer API and the community integrations built on it; Recurring-item detection and rules tuned by the company over the years; The Discord community and the beta-testing program. If any of those matter to you, keep paying.
Yes: Actual Budget (open source), Firefly III (open source), Sure (open source).