Eclosion for Monarch
Open source desktop & web app that extends Monarch Money with additional budgeting tools.
Runs locally or self-hosted. Each feature is modular; enable only what you need.
Try the Demo · Documentation · Wiki
Dashboard |
Recurring Expenses |
Settings |
Overview
- Local-first: Credentials encrypted locally with Fernet (AES-128-CBC + HMAC-SHA256); server never sees your passphrase
- Monarch sync: Reads and writes directly to your Monarch account via their GraphQL API
- Modular: Each feature operates independently; enable/disable as needed
Features
Available
| Feature | Description |
|---|---|
| Recurring Expenses | Monthly savings targets for non-monthly expenses (annual, quarterly, semi-annual). Calculates targets, tracks progress, syncs to Monarch. Supports rollup categories for aggregating subscriptions. |
| Monthly Notes | Persistent notes for Monarch categories/groups. Auto-carry-forward, revision history, inline math evaluation. |
| Stashes | Visual dashboard for savings goals. Set target amounts and dates, track progress with status badges, organize with drag/drop. Optional browser bookmark sync. |
| Refunds | Track purchases awaiting refunds or reimbursements. Tag transactions in Monarch, organize with saved views, match refund transactions when they arrive. Progress tally shows pending vs. matched amounts. |
Coming Soon
| Feature | Description |
|---|---|
| IFTTT Integration | Connect Eclosion to 900+ apps via IFTTT. Trigger automations when goals are funded, budgets exceeded, or sync completes. (Awaiting IFTTT review approval — expected within 2 weeks) |
Planned
| Feature | Description |
|---|---|
| Joint Goals | Shared goal tracking between two Monarch accounts. Share progress without exposing transactions/balances. |
| Leaderboard | Category spending competition with P2P encrypted score sharing. Income-adjusted scoring, multiple timeframes. |
| Inbox Sync | Email integration for receipt itemization. Parses receipts from Walmart, Costco, Uber, DoorDash, etc. |
| Shared Budget | Expense splitting and settlement tracking. Configurable split ratios with per-transaction overrides. |
| Allowance | Habit-based allowance accumulation. Define habits with reward values, track completions. |
Quick Start
Desktop App
Download the latest release for macOS, Windows, or Linux.
Runs locally with an embedded Python backend. See the Desktop App wiki for build instructions.
Docker
From registry (recommended):
export INSTANCE_SECRET=$(openssl rand -hex 16)
docker run -d \
-p 5001:5001 \
-v eclosion-data:/app/data \
-e INSTANCE_SECRET=$INSTANCE_SECRET \
ghcr.io/312-dev/eclosion:stable
# Access at http://localhost:5001?secret=YOUR_SECRET
From source:
git clone https://github.com/312-dev/eclosion.git && cd eclosion
export INSTANCE_SECRET=$(openssl rand -hex 16)
docker compose up -d
See the Self-Hosting wiki for reverse proxy setup and environment variables.
Security
Credentials are encrypted with Fernet (AES-128-CBC + HMAC-SHA256) using PBKDF2 key derivation (480,000 iterations).
| Desktop | Server/Docker | |
|---|---|---|
| Data location | Local machine only | Server filesystem |
| Access control | None needed (localhost) | Instance secret required |
| Encryption key | OS keychain (Touch ID / Keychain) | User-entered passphrase |
| Network exposure | None | Requires HTTPS in production |
See the Security wiki for full details.
Local Development
# Backend
pip install -r requirements.txt && python app.py
# Frontend (separate terminal)
cd frontend && npm install && npm run dev
# Or run everything with Docker
docker compose up --build
Architecture
| Layer | Stack |
|---|---|
| Frontend | React 19, TypeScript 5, Vite 7, Tailwind CSS 4 |
| Backend | Python 3.11+, Flask, APScheduler |
| Desktop | Electron, PyInstaller (embedded Python) |
| State | SQLite (SQLAlchemy ORM) |
| CI/CD | GitHub Actions, Docker (GHCR), Cloudflare Pages |
Contributing
See the Contributing guide.
- Bugs: GitHub Issues
- Questions: GitHub Discussions
Maintainers
Created by @GraysonCAdams. Maintained by 312.dev.
See contributors for the full list.
License
MIT