Money
Actual Budget
Calm, private envelope budgeting. Give every pound a job.
Actual is a budgeting app built around envelope budgeting: you decide in advance what each part of your money is for, then track spending against it. It imports bank files (and can connect to banks in many countries), syncs between your devices, and keeps your financial data on your own device or server instead of a company's cloud.
What it does
- Envelope budgeting with rules, schedules and reports
- Bank import and bank sync in many countries
- Local-first with optional end-to-end encrypted sync
- Official API for your own scripts and automations
Great for: Anyone who wants a calm, private budget, including people leaving YNAB, couples and families.
Make it yours: ideas
Pick an idea to start from, or describe your own.
- Settings, no code · easy Shared budget for a couple "Set up a joint budget for me and my partner with shared bills, personal spending money each, and a holiday fund."
- Extend: themes, plugins, API · moderate Import your bank's CSV export automatically "My bank (Leumi) only exports a weird CSV. Write a small script that imports it into Actual with the right dates, amounts and payees."
- Settings, no code · easy Kids' pocket-money budgets "Give each of my two kids an envelope with weekly pocket money and a savings goal they can see."
- Extend: themes, plugins, API · moderate Monthly money summary "On the 1st of each month, send me a short summary of how we did against the budget and the top 3 overspends."
- Extend: themes, plugins, API · easy Your own calm colour theme "Make a soft, low-contrast theme with green for money in and grey (not red) for overspending."
Can I trust it?
- Licence: MIT. Free to use, change and share, even commercially. Keep the original copyright notice.
- Source: github.com/actualbudget/actual
- Your data: Stores personal data, on your own device or server. Budget files stored locally in the browser or desktop app; the sync server keeps an encrypted-capable copy in /data.
- Other services: Bank sync (GoCardless, SimpleFIN, Enable Banking, Pluggy, Akahu, depending on country) (optional, varies by provider and country (some free tiers)); Hosting (PikaPods or Fly.io) (optional, about $1.50–$2 per month)
- Turn on end-to-end encryption before syncing through a server you don't fully control.
- Bank-sync credentials and API passwords must never be pasted into an AI chat or committed to a repo.
- Pinned version:
27290a8. Every handoff uses exactly this code.
How easy is it to adapt?
Moderate
The core is a large TypeScript monorepo, but most personal adaptations use settings, custom themes, rules, or small scripts with the official @actual-app/api package. These need no fork.
- No code (settings): Currency symbol, number and date formats, interface language. Strict envelope budgeting or looser tracking. Auto-categorise transactions, rename payees, and handle recurring bills. Connect a supported bank provider for your country.
- Extend (themes, plugins, API): Your own colours via CSS variables, with no fork. Small Node scripts that import bank CSVs, apply custom logic, export reports, or connect other tools.
- Runs on: docker, server, desktop, local-dev
- Built with: typescript
Did it work for people?
No reports yet. Be the first to tell others how it went.
For your AI
Project pack (pinned version, how to run and customise it): https://handoff.bespokeai.software/p/actual-budget/27290a8/pack.md