Skip to content
ltoinelPublic

About

Self-hosted household budget app: automatic bank sync (woob), auto-categorization, monthly budgets, trends, iPhone push alerts and a read-only MCP server for AI agents. Logiciel gestion budget familial gratuit

Topics

Resources

Contributing

Security policy

Stars

18 stars

Watchers

0 watching

Forks

Repository files navigation

Carbure

Carbure

English · Français

Your household budget, finally under control.
Bank accounts synced automatically, expenses categorized, budgets tracked day by day —
on the web and on iPhone. Self-hosted, free and open source.

💸 Free, no subscription · 🏠 100% self-hosted · 🙅 No third-party cloud

CI Security Release Docker pulls Coverage PHP MariaDB Docs License: MIT

Watch the Carbure teaser (1 min, in French)

Transactions of the month: income, expenses, search, check-off and categories

Budgets by category, sub-categories adding up to their parent
Budgets — spent, remaining and overspent per category
Money flow of the month
Money flow — where the month's income goes

👉 All the features, with every screen (in French)

Why Carbure?

  • 🔄 No manual entry: transactions arrive on their own from your bank every day, through woob — a direct connection, no third-party aggregator. Or import the statements of your bank (OFX, QIF, CSV, CAMT.053): Carbure spots the duplicates first.
  • 🏷️ Automatic categorization: simple rules ("CARREFOUR → Groceries") sort every transaction. A new one? Pick its category and Carbure suggests the rule.
  • 🎯 Monthly budgets: spent, remaining and overspent, category by category, at a glance. Budget the sub-categories and their parent adds them up — or set its own amount. The monthly flow shows where the money comes from and where it goes: click a category to see its transactions.
  • 📈 Trends: income, spending and savings over 3, 6 or 12 months, compared with the previous period or the same period last year.
  • ✅ Check-off: verify transactions in one click and filter those still to review.
  • 🔁 Recurring transactions: salary, rent, subscriptions and bills are spotted on their own; see at a glance those still expected this month.
  • 🔔 iPhone alerts: a push after each sync, as soon as an expense exceeds the threshold you set, or when a rule you chose matches.
  • 📊 Insights: your own monthly indicators (groceries, fuel, subscriptions…).
  • 👨‍👩‍👧 Built for households: several users, shared accounts and data, each with their own language and devices; an administrator manages accounts, categories, rules, users and the configuration, and copies the ready-made command that schedules the sync.
  • 🤖 Ask your AI agent about your money: a built-in, read-only MCP server — which you can turn off — answers questions like "how much did we spend on restaurants this year?" or "which budgets are we over?". Claude (web, Desktop, mobile) connects from the server URL alone, after your approval in the portal; Claude Code, ChatGPT, Cursor, Copilot and Gemini with an access token.
  • 🔒 Everything stays with you: Carbure runs on your own server (a NAS is enough). No account to create, no aggregator, no cloud: your bank credentials and data stay in your local database. The only outbound connections are to your bank (woob) and, if you enable them, Apple's push notification service.

🌍 Bank coverage: Carbure relies on woob modules, which mainly cover French banks. The portal is available in English and French; amounts are in euros.

📱 iPhone app: the Carbure iOS app will soon be available on the App Store.

How does it compare?

Carbure Firefly III Actual Budget Kresus
Bank connection Direct, via woob Third-party aggregators Third-party aggregators Direct, via woob
Sub-categories adding up to their parent ✅ ➖ ⚠️ ➖
Several users sharing the same data ✅ ⚠️ ✅ ➖
Native iPhone app and push notifications ✅ ➖ ➖ ➖
Built-in MCP server for AI agents ✅ ➖ ➖ ➖
File import (OFX, QIF, CSV, CAMT.053) ✅ ✅ ✅ ⚠️
Several currencies ➖ ✅ ➖ ⚠️

✅ yes · ⚠️ partly · ➖ no — 👉 Full comparison (in French): 23 criteria (hosting, bank data, budget, household and devices, API), with the strengths of each tool.

How it works

flowchart LR
    bank[(Banks)] -->|woob| sync[Sync]
    subgraph Carbure
        sync --> rules[Categorization<br/>rules] --> db[(MariaDB)]
        api[PHP REST API] <--> db
    end
    portal[Web portal] <--> api
    ios[iOS app] <--> api
    ai[AI agent] <-->|MCP| api
    sync -->|APNs| push[iPhone notifications]
Loading

Quick start

With Docker (nginx, PHP and woob included):

git clone https://github.com/ltoinel/Carbure.git && cd Carbure/docker
docker compose up -d

Open http://localhost:8080/: the setup wizard handles everything (database, administrator account, and optional starter categories, rules and insights) in three clicks, with no command to run. Database upgrades are automatic too. On a Synology NAS, follow the tutorial.

👉 Detailed installation, configuration, API reference, data model and security: the documentation (in French).

Contributing

Contributions are welcome: read AGENTS.md (conventions, tests, definition of done) and the open tasks in TODO.md. Found a bug or have an idea? Open an issue. If Carbure is useful to you, a ⭐ helps others find it.

To develop, ./start.sh starts the development environment with Docker: the production image and MariaDB, the code of the repository mounted live and a sample household (http://localhost:8000/portal/, admin / admin-password). The tests (PHPUnit, portal unit tests, Playwright end-to-end tests) are described in the developer documentation (in French).

License

MIT © Ludovic Toinel

Third-party components

The Docker image bundles third-party software, unmodified, under its own license:

Component License Source
woob (bank synchronization) LGPL-3.0-or-later gitlab.com/woob/woob (version set by WOOB_VERSION in docker/Dockerfile)
curl_cffi MIT github.com/lexiforest/curl_cffi
PHP, nginx, Alpine Linux PHP License, BSD-2-Clause, various (BusyBox: GPL-2.0) Official images php:8.3-fpm-alpine
Vue.js, CodeMirror, Roboto, Material Icons (portal) MIT, MIT, OFL-1.1, Apache-2.0 portal/vendor/

Carbure calls woob as a separate program; it can be replaced by another woob version (virtual environment /opt/woob).

The music of the teaser is "Nowhere Land" by Kevin MacLeod (incompetech.com), licensed under Creative Commons: By Attribution 4.0.

About

Self-hosted household budget app: automatic bank sync (woob), auto-categorization, monthly budgets, trends, iPhone push alerts and a read-only MCP server for AI agents. Logiciel gestion budget familial gratuit

Topics

Resources

Contributing

Security policy

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages