The landscape

Plain text and local-first

Actual Budget

A local-first, open-source envelope budgeting app. Every device holds the full budget, and an optional self-hosted server syncs changes between devices.

actualbudget.org · founded Created by James Long as a paid app in the late 2010s. Open-sourced in 2022. The hosted subscription was shut down in 2024. · No headquarters; a distributed open-source community · researched 2026-10-10

Scope
Personal envelope budgeting, accounts and net worth, transactions with splits and linked transfers, rules, schedules, custom reports, and import from QIF, OFX, QFX, CAMT.053, CSV and YNAB. Bank sync runs through SimpleFIN (US/Canada), GoCardless and Enable Banking (Europe), Pluggy.ai (Brazil) and Akahu (New Zealand). It is not double-entry accounting and does not handle business books, invoicing or documents.
Backing
No company or venture funding now. It is funded by donations through Open Collective and GitHub Sponsors, and by a share of PikaPods hosting fees: PikaPods gives 20% of fees to the project, and over 8,000 PikaPods users were counted in December 2025. The monthly contributor pool rose from $1,000 to $2,000 in January 2026.
Serves
consumer
Covers
personal, bank, reporting
To ownpurse
Kin. The closest local-first kin. Each device holds the whole record in SQLite, changes travel as messages through a server you run, and the server cannot read them. It is a budget, though, not books beside a ledger. It keeps the merged transaction, not the source's raw report, and its history is for sync, not something you can query.

What it is

Actual Budget is a free, open-source, local-first envelope budgeting app. You budget only money you already have, keep every account in one place, and see net worth and cash flow. It is MIT-licensed, has 29.4k GitHub stars (10 October 2026), and ships monthly. 26.10.0 came out on 2 October 2026. It is a budget, not double-entry books, and it does not handle business accounting, invoicing or documents.

How it works

Each device runs the whole engine against its own SQLite copy (see the architecture notes), so it works offline. An optional sync server, which you host yourself or rent on PikaPods from about $2.00 a month, relays changes between devices. Per the sync docs, the budget file stores every change and grows over time. With end-to-end encryption on, the server cannot read budget contents. James Long described the design, CRDT-style messages with ordered timestamps, in his 2019 talk ‘CRDTs for Mortals’.

Import takes CSV, QIF, OFX, QFX and CAMT, plus YNAB files with their history. It dedupes by the file’s transaction id first, then fuzzy-matches on a similar date, the same amount and a similar payee. When an imported line matches a manual entry, the import wins and the existing date is changed to the bank’s. Bank sync runs through SimpleFIN (North America), GoCardless (no longer taking new accounts) and Enable Banking (Europe), Pluggy.ai (Brazil) and Akahu (New Zealand). You bring your own keys for each.

Data and access

The API is a Node package, not an HTTP service. It downloads the budget, runs the engine locally and syncs changes back. Amounts are integer cents. Since 26.7.0 (2 July 2026) a stable CLI reads and writes accounts, budgets, transactions, rules and schedules, runs ActualQL queries and triggers bank sync. It outputs JSON by default, writes errors to stderr, exits non-zero on failure and supports –dry-run for imports. Authentication is the server password or a session token. There are no per-app scopes. Export is the budget file from Settings. The backup docs note that ‘Reset Sync’ compresses the stored change history into one file.

Agents

The product has no AI features. The project uses AI to write code but closes contributions with no human oversight (November 2025). Agents reach it through the API and CLI, and community MCP servers are popular: s-stefanov/actual-mcp has 254 stars, and one adds confirmation before deletes. Actual itself has no approval gate. Whoever holds the password can write.

Customers

Its users are individuals and households, often coming from YNAB, Monarch or Simplifi to avoid a subscription. On AlternativeTo it rates 4.0/5 from 5 ratings. People praise its speed, clean design, offline use and sync. They complain about the lack of a native mobile app, weak categorization of CSV imports and the work of handling irregular bills.

History

James Long built Actual as a paid product with a hosted subscription. It was open-sourced in 2022, community releases began that October, and the project moved to actualbudget.org in June 2023. The hosted subscription shut down in 2024. The community now funds itself with donations and a PikaPods revenue share: over 8,000 PikaPods users per the 2026 roadmap, and a contributor pool raised to $2,000 a month in January 2026. The roadmap’s main item is plugins, starting with bank sync providers.

For ownpurse

Actual is the nearest local-first kin, and it shows the model can win users without venture money: a full copy everywhere, a server that only relays, encryption the host cannot read. It also survived its creator stepping back because the data was already on users’ machines. That contrasts with Bench or Maybe, where the books lived in the vendor’s cloud. ownpurse differs in three ways. It keeps what each source reported, not just the merged transaction. Its history is the queryable record, not a sync log that can be compacted. A fuzzy match becomes a proposed link a person accepts, not an overwrite of their entry. Actual’s CLI is worth comparing directly: JSON by default, exit codes and –dry-run are close to AXI. ownpurse adds counts, help hints and sealed, approved writes.

Data and access

Public API
Yes. @actual-app/api, a Node.js package. It downloads the budget, runs the same engine locally, and syncs changes back. There is an experimental browser build (WASM SQLite in a Web Worker) and ActualQL queries. Actual has no HTTP or REST endpoints. Since July 2026 the @actual-app/cli also reads and writes from the terminal.
Auth
The sync server's password or a session token, plus the budget's sync id and, for end-to-end encrypted budgets, an encryption password. There are no per-app tokens or scopes.
Limits
No documented rate limits. The CLI docs warn that each call opens a new server connection, so rapid calls can be rate limited or fail authentication.
What access costs
Free. Bank sync providers charge on their own terms (for example, SimpleFIN Bridge charges users $1.50 a month or $15 a year as of 2026-10-10). GoCardless no longer accepts new accounts.
Export
Settings > Export Data downloads the budget file. The API and CLI expose accounts, transactions, payees, rules and schedules as JSON or CSV. YNAB imports keep history.
Notes
importTransactions dedupes by imported id first, then fuzzy-matches on a similar date, the same amount and a similar payee. addTransactions skips that reconciliation.

Price

Model
Free, open source. Third parties sell managed hosting of the sync server.
Entry
$0 self-hosted. PikaPods from about $2.00 a month (2026-10-10).
Top
$0 for the software.
Notes
The earlier paid hosted subscription was shut down in 2024.

Agents

MCP
community
AI features
None in the product. The project uses AI to write code, but since November 2025 it closes pull requests that look '100% AI-generated with no sign of human oversight'.
Agent writes
Yes. The Node API and the CLI can create, update and delete accounts, categories, payees, rules, schedules and transactions, set budget amounts, and trigger bank sync. Community MCP servers include s-stefanov/actual-mcp (254 stars) and others. One adds confirmation before deletes.
Approval
None in Actual. Whoever holds the server password can write. The CLI's --dry-run for imports is the only rehearsal.
Notes
With JSON output by default, non-zero exit codes and stderr errors, the CLI is close to an agent-first interface, though the project does not market it that way.

Integration and customers

Connects to
Bank sync: SimpleFIN Bridge (US/Canada), GoCardless BankAccountData and Enable Banking (Europe), Pluggy.ai (Brazil) and Akahu (New Zealand; experimental in July 2026). Files: CSV, QIF, OFX, QFX, CAMT.053, YNAB4 and nYNAB. API and CLI for custom importers. Plugins are on the 2026 roadmap, starting with moving the bank sync providers into plugins.
Notes
You sign up with each bank provider and bring your own API keys. Bank sync tokens are stored on the server separately and are not covered by end-to-end encryption.
Scale
29.4k GitHub stars and 3.1k forks (2026-10-10). Over 8,000 PikaPods users (December 2025). Monthly releases, the latest 26.10.0 on 2026-10-02.
Ratings
AlternativeTo: 4.0/5 from 5 ratings, 36 likes (2026-10-10). No confirmed G2, Capterra or Trustpilot listing with meaningful volume.
What customers say
Users praise speed, a clean design, offline use, sync across devices, privacy, being free instead of paying for YNAB, Monarch or Simplifi, and a responsive community. Complaints: no native mobile app (the PWA is the mobile client), weak auto-categorization for CSV imports, manual work for irregular bills, and the effort of self-hosting the server.

Timeline

  1. 2019-12

    James Long presents 'CRDTs for Mortals' at dotJS, describing the sync design behind Actual.

  2. 2022

    Actual open-sourced under the MIT licence. The community takes over development, and the first community releases ship (22.10.x).

  3. 2023-06-13

    The open-source project moves its site, docs and demo to actualbudget.org.

  4. 2024

    The original paid hosted subscription shuts down.

  5. 2025

    Small stipends for core maintainers begin, based on points for maintenance work.

  6. 2025-11-15

    'Fighting AI Slop' policy on contributions with no human oversight.

  7. 2025-12-20

    2026 roadmap: plugins (bank sync first), a goals UI, mobile parity, a transaction table rewrite, debt accounts.

  8. 2026-01-17

    Contributor funding pool raised from $1,000 to $2,000 a month.

  9. 2026-07-02

    26.7.0: the Actual CLI becomes stable, and Akahu bank sync arrives (experimental).

  10. 2026-10-02

    26.10.0 released.

Borrow and avoid

Borrow
A full copy on every device, with sync as messages that a server only relays, and optional end-to-end encryption. Import that tries the source id first, then fuzzy-matches date, amount and payee, keeps the bank's date, and lets you choose whether to reimport deleted lines. A CLI with JSON by default, exit codes and --dry-run. Bring-your-own-key bank providers, moving into plugins. Funding maintainers from hosting revenue share and donations.
Avoid
Letting the imported line silently overwrite a person's manual entry (it rewrites the existing transaction's date). A mutation history that 'reset sync' compacts away. Integer cents with no decimal type at the boundary. Writes with a shared server password and no scoped tokens or approval.

Sources

  1. Actual Budget home page
  2. Actual on GitHub
  3. Actual releases
  4. Actual docs: API
  5. Actual docs: CLI
  6. Actual docs: bank sync
  7. Actual docs: importing transactions
  8. Actual docs: sync
  9. Actual docs: architecture
  10. Actual docs: backup and export
  11. Actual docs: FAQ (hosted service shut down in 2024)
  12. Release 26.7.0
  13. Roadmap for 2026
  14. Next steps for funding contributors
  15. Fighting AI slop
  16. Welcome to Actual Budget open source
  17. James Long's archived blog (Actual sync engine posts)
  18. PikaPods app prices
  19. SimpleFIN Bridge pricing
  20. GitHub search: actual budget mcp
  21. Actual Budget on AlternativeTo

Not confirmed against a primary source

  • The exact open-sourcing date in 2022 (believed April 2022), and the original subscription price (believed about $4 a month). James Long's announcement could not be fetched.
  • The year Actual first launched as a paid product, and the legal entity behind it (believed Shift Reset LLC).
  • The exact CRDT details (hybrid logical clocks, merkle trie). They come from James Long's 2019 talk and code, not from the current docs, which do not mention CRDTs.
  • Whether the exported budget is a zip of db.sqlite and metadata.json. The docs do not say.
  • G2, Capterra, Trustpilot and Reddit sentiment. Those sites blocked automated access.

ownpurse is not affiliated with Actual Budget or any company named here. Names are their owners' trademarks. Figures come from the company's own pages and the press, as linked, as of 2026-10-10; scores are our reading of them against the definitions in the landscape. This is not legal or financial advice.