Free Software

Best Open Source Personal Finance Apps That Keep Your Data Local

Most budgeting apps keep your transactions on a company's servers. A newer group of projects keeps them on your own computer instead. This guide compares four: FlyBudget, Aurelio, Vyra and Pulse...

Most budgeting apps keep your transactions on a company's servers. A newer group of projects keeps them on your own computer instead. This guide compares four: FlyBudget, Aurelio, Vyra and Pulse Local. For each we read the project's own pages: install, data location, backups, how data gets in and what leaves your machine. All four are young, and where a project does not document something, we say so.

This is not financial advice. It describes software, not what you should do with your money. Test any app with sample data first.

Quick answer: FlyBudget is the best documented option for monthly budgeting. Aurelio and Vyra aim at net worth, debt and long-term planning, and Vyra's README says little about data handling. Pulse Local is a Mac app with an on-device chat.

Checked against the source on November 5, 2026. The GitHub pages for FlyBudget (AGPL-3.0-only), Aurelio (MIT) and Vyra (MIT) match the licences in the table below, and pulseos.finance states no licence. None of the three repositories listed a release.

  • FlyBudget: Windows 10 or 11 (64-bit), macOS 12 or later, Linux (.deb and .AppImage) and Docker (amd64, arm64).
  • Aurelio: needs Git, Node.js 22 or later and uv; its README gives Claude Opus 5.5 as the default AI model at $4 and $20 per million tokens.
  • Vyra: README badges show Python 3.10+ and Django 6.0; the repository showed 7 commits.
  • Pulse Local: Apple Silicon Macs only, Windows listed as next with no date; $0 or an optional $20, $40 or custom payment.

How to choose

  • Monthly budget with bank sync or CSV import: FlyBudget.
  • Investments and net worth: Aurelio, or Vyra for debt and FIRE simulators.
  • Apple Silicon Mac and AI that stays local: Pulse Local. For background, see run large language models on a laptop.

FlyBudget: monthly budgeting with rules

What it is: a plan-first budget with planned, actual and remaining amounts per category, plain-language rules and optional bank sync. The licence is AGPL-3.0, so it is free software but not a permissive licence. The site says there is no account, subscription or tracking.

Setup: choose a desktop app (Windows, macOS, Linux) or a Docker server; the browser demo does not save changes. The repository's Docker steps are:

curl -O https://raw.githubusercontent.com/dtymoszenko/FlyBudget/main/docker-compose.yml
openssl rand -base64 32 > flybudget_data_key.txt
sudo chown 1000:1000 flybudget_data_key.txt && sudo chmod 400 flybudget_data_key.txt
docker compose up -d
docker logs flybudget

The last command prints a one-time setup code for creating your password. The server listens on port 3001.

Data and backups: data sits in a Docker volume at /data, in one SQLite file, budget.db. The docs say not to copy it while the app runs. Instead run docker exec flybudget node backup.cjs and docker cp flybudget:/data/backups ./flybudget-backups. The key file protects stored bank credentials; keep a copy apart from your backups, the docs say. Settings, Data also offers Download Backup, one JSON file with accounts, transactions, budgets, rules and goals. It excludes bank credentials, so you reconnect banks after a restore. Restoring replaces all current data, and the app saves your old database as budget-before-restore-<date>.db. Updates: back up, then docker compose pull and docker compose up -d.

Reverse proxy: plain HTTP is acceptable on a home network, say the docs, but use HTTPS before exposing it to the internet. They suggest binding 127.0.0.1:3001:3001 when the proxy is on the same machine, plus FLYBUDGET_TRUST_PROXY=1 and FLYBUDGET_ALLOWED_HOSTS.

Limits: its security page says the project is young with limited code review, and the desktop installers are not yet signed by Microsoft or notarized by Apple. On desktop, the budget file relies on your operating system account, not separate encryption. YNAB import is only on the roadmap.

Aurelio: net worth, portfolio and an optional AI chat

What it is: a local app for wealth, portfolio, debts and cash flow, with an optional chat called Ask Aurelio. Correction: the repository shows an MIT licence, with copyright held by LosaLosSantos in 2026. Our earlier article saw a blank licence heading.

Setup: you need Git, Node.js 22 or later and uv.

git clone https://github.com/LosaLosSantos/aurelio-finance.git
cd aurelio-finance
./start.sh --demo

On Windows use ./start.ps1 -Demo in PowerShell. If scripts are blocked, the README gives powershell -ExecutionPolicy Bypass -File .\start.ps1 -Demo. The demo opens at http://localhost:8000 with invented data in a separate file; drop the flag for your own data.

Data and backups: records are in backend/data.db. Before an update changes the database format, the app saves a copy next to it. The README documents no export or restore command, so back up by copying that file while the app is stopped (our suggestion).

AI and cost: the AI part is optional and uses OpenRouter. Copy backend/.env.example to backend/.env and set OPENROUTER_API_KEY. Our earlier article, citing the project page, reported a default of Claude Opus 5.5 at $4 per million input tokens and $20 per million output tokens. Requests go through OpenRouter, an outside service, so treat chat as the point where your data may leave your machine; the project page does not detail what is sent.

Limits: the README documents no CSV import and does not label the project's maturity.

Vyra: a wealth hub built on Django

What it is: a self-described Wealth Operating System with multi-currency accounts, portfolios, debt payoff and FIRE simulators and an AI coach. The README confirms the MIT licence.

Setup: the README gives a Docker route:

git clone https://github.com/Arjumaan/Vyra.git
cd Vyra
docker-compose up --build

The app opens at http://localhost:8000. The non-Docker route uses a Python virtual environment, requirements.txt, then python manage.py migrate, createsuperuser and runserver. Badges show Python 3.10+ and Django 6.0.

Data and backups: the README does not say which database is used, where data is stored, or how to back up or export it. It does not mention CSV import or name the AI coach's provider, so you cannot tell from it whether coach prompts stay local. The repository had no releases and only 7 commits when we looked.

Who it suits: developers who want to read and extend the code. With storage, backup and AI handling undocumented, we would not enter real balances yet.

Pulse Local: a private chat about your budget

What it is: a budgeting app whose chat runs on your Mac. The maker says the ledger, the models and your questions stay on the machine, and that questions, analytics and crash logs are never sent.

Setup: Apple Silicon Macs only for now; Intel Macs are unsupported and Windows has no date. On first start it downloads about 830 MB of AI files from Hugging Face (434 MB with the "Better understanding" option off). After setup, Local mode works offline. Update checks, which the maker says send no version or financial data, can be turned off in Settings.

Data and backups: Settings, Data & export saves transactions as CSV, which you can re-import. A full backup (budgets, rules, goals) is explained on the maker's Getting started page, which we could not load. Before an update, the app saves a copy in a backups folder, which can still hold rows you later deleted. Start fresh deletes your data.

Import: it reads CSV, Excel, OFX, QFX, QIF, MT940, CAMT.053, Norma 43 and CODA, finds columns in any order and shows a preview before saving. PDF statements are in beta.

Price and licence: a one-time payment of $0, $20, $40 or a custom amount, with every feature at every price. The page states no licence, so do not assume it is open source. Our earlier article called the release a beta; the page we read labels only PDF import as beta.

How bank sync works, and what it means for your data

Sync is optional in FlyBudget and Pulse Local, and it is the feature that sends data to outside companies.

  • SimpleFIN: an open protocol for read-only sharing of financial data, per simplefin.org. SimpleFIN Bridge costs $1.50 plus tax per month or $15 plus tax per year, for up to 25 institutions and 25 apps. FlyBudget exchanges your one-time setup token for a private access link, stored encrypted. FlyBudget's security page says SimpleFIN does not support revoking access, so also remove the app in your Bridge account.
  • Plaid: after you verify account ownership, Plaid says it retrieves the account information you permit and, when requested, shares it with the app. Through the Plaid Portal (my.plaid.com) you can view what you shared and control access, and there is a delete-my-data form. In FlyBudget you use your own Plaid developer account, request Production access (minutes to a few days) and enter your client ID and secret. FlyBudget lists US and Canada.
  • Enable Banking: FlyBudget's European option. It needs an HTTPS address.
  • Pulse Local's Sync Pass: uses Plaid for US banks. Per the maker, new transactions pass through its server without being stored. The pass costs $29 a year for three banks, plus $8 a year per extra bank, up to 25.

FlyBudget says bank tokens never leave its server, are encrypted at rest and are left out of backups. What Plaid or SimpleFIN keep on their own servers follows their policies, not the budgeting app's.

Moving from a spreadsheet or another app

Only FlyBudget and Pulse Local document import, and neither has a spreadsheet migration guide, so these steps build on their import tools.

  1. Export your spreadsheet as CSV with at least a date and an amount column.
  2. FlyBudget: create an account with today's balance, open it, choose Import CSV and map columns: Date, Payee, Amount, or Inflow and Outflow, Direction, Notes. It detects the separator, skips rows above the header, accepts up to 100,000 rows and asks when dates or decimal marks are ambiguous.
  3. Check the preview. Duplicates are marked and unticked, so overlapping files are safe, but manual entries are not matched against imports.
  4. Credit cards: if purchases appear as positive numbers, map them to Outflow. Refunds then need manual correction.
  5. Add rules so categories apply to imported rows; FlyBudget rules can match the bank's original text.
  6. Run both for a month or two before retiring the spreadsheet (our suggestion).

Comparison

App Licence Runs on Data Import AI
FlyBudget AGPL-3.0 Desktop or Docker budget.db CSV, CAMT.053, SimpleFIN, Plaid None
Aurelio MIT Local, Node and uv backend/data.db None documented Optional, OpenRouter
Vyra MIT Docker or Python Not documented None documented Coach, provider unnamed
Pulse Local Not stated Apple Silicon Mac Not specified Many bank formats On device

Checklist before real data

  1. Try demo or sample data first.
  2. Back up on a schedule, with a copy off the machine and keys stored separately.
  3. List what leaves your device: AI keys, bank sync providers, update checks.
  4. Add up recurring costs: OpenRouter credit, SimpleFIN or Sync Pass fees.
  5. Confirm the licence yourself, especially if you plan to modify or host it for others.

Who should skip it

  • Anyone who needs one budget on several devices. FlyBudget's roadmap lists syncing one budget between devices as an idea "we're considering (not promises)", and its installers are not yet signed with a paid Windows or Apple certificate.
  • Anyone who needs documented data handling. Vyra's README does not name a database, document backups or name the AI coach's provider.
  • Intel Mac or Windows users who want Pulse Local. Its page says Intel Macs are not supported and gives no Windows date.

Alternatives worth a look

  • Actual Budget describes itself as a local app built around envelope budgeting that syncs in the background; you can self-host it or use the PikaPods hosted option. Its homepage states no licence.
  • Firefly III is a free, open-source (AGPL v3) personal finance manager that is fully self-hosted and, per its README, "will never contact external servers until you explicitly tell it to".

Frequently asked questions

Are these apps free? The software is free or pay-what-you-choose, but Aurelio's AI needs paid OpenRouter credit and bank sync has fees.

Is local storage safer than a hosted service? You gain control and take on backups and updates. FlyBudget's security page notes that anyone who can sign in to your computer as you can see the budget.

Can I connect my bank? FlyBudget supports SimpleFIN, Plaid and Enable Banking, plus CSV import. Pulse Local uses Plaid for US banks.

Which is least risky to try first? Aurelio's demo mode or FlyBudget's browser demo, since neither needs your real data.

Nothing here is financial advice. Details come from each project's pages, and maker claims are attributed to the maker. We did not install or test the apps.

Sources

Comments (0)