A desktop budgeting app inspired by the Japanese kakeibo (家計簿), a method of tracking household spending by category and reflecting on it each month, here implemented with an envelope-budgeting model. You give every yen a job by dividing your income across labelled envelopes, import your real bank transactions, and watch each envelope fill up or drain over the month.
Written in C++20 with Qt 6. The interface is bilingual (French / 日本語).
The figures in this screenshot are fictional sample data created for illustration. They do not represent any real account or transaction.
This is a personal tool, built for my own use and shared publicly as a portfolio piece rather than a product. I made it to manage one household's budget across two currencies, euros and yen, using the kakeibo approach.
Because it only ever needed to fit one person, the scope is intentionally narrow:
- Single-user desktop app. All data is stored locally, with no accounts and no backend.
- Built and tested on macOS only.
- The interface is French and Japanese only.
- The statement importers handle just the banks I use (Rakuten Bank, Rakuten Card, Mitsubishi UFJ).
You're welcome to read, fork, or adapt it, but it isn't meant to work out-of-the-box for a different setup.
- Envelope budgeting. Create envelopes with a monthly goal and a ceiling, mark some as savings, and track how full each one is at a glance.
- Bank statement import. Paste a raw statement and it is parsed automatically. Supported formats: Rakuten Bank, Rakuten Card (credit), and Mitsubishi UFJ. Full-width Japanese digits are normalised to ASCII.
- Automatic categorisation. Expenses are matched to envelopes by remembered description types. Unknown ones prompt you once and are then remembered.
- Dispatch page. Distribute your income across envelopes, evenly or to each goal, with per-envelope locking and full undo/redo before you apply.
- History and statistics. Filter expenses by envelope and date range, and see per-month and per-year averages.
- EUR / JPY conversion. Every amount is shown in yen and euros using live European Central Bank reference rates (no API key required).
- Backups and cloud snapshot. Daily local backups (30 kept) and an optional image snapshot of selected envelopes written to a sync folder.
Requires CMake 3.16 or newer and Qt 6 (Core, Gui, Widgets, Network, Concurrent).
cmake -S . -B build
cmake --build build
./build/KakeiboOr use the helper:
./scripts/run.shThe bank-statement parser has unit tests (pure logic, no Qt required):
cmake --build build
ctest --test-dir build --output-on-failure./scripts/bundle.sh # produces Kakeibo.app (requires macdeployqt on PATH)State is stored as JSON under $XDG_DATA_HOME/kakeibo (or
~/.local/share/kakeibo): enveloppes.json, specialEnveloppes.json, and the
backup and cloud path config.
include/core data model, parsing, persistence, backups, cloud sync
include/ui the Qt views (envelopes, history, stats, dispatch, import, etc.)
include/uiElements small reusable widgets
src/ implementations mirroring include/
external/json nlohmann/json (single header)
scripts/ run, bundle and formatting helpers
MIT. See LICENSE.
