An open API service indexing awesome lists of open source software.

https://github.com/312-dev/eclosion

An open source desktop & web app that expands what's possible with Monarch Money. Each tool works independently with your account—enable only what you need.
https://github.com/312-dev/eclosion

budgeting finance flask monarch-money react

Last synced: 4 months ago
JSON representation

An open source desktop & web app that expands what's possible with Monarch Money. Each tool works independently with your account—enable only what you need.

Awesome Lists containing this project

README

          


Eclosion

Eclosion for Monarch


CI
Security
OpenSSF Scorecard
OpenSSF Best Practices
Stable Release
Beta Release
License


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


Dashboard



Recurring Expenses


Recurring Expenses



Settings


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. |

### 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](https://github.com/312-dev/eclosion/releases/latest)** for macOS, Windows, or Linux.

Runs locally with an embedded Python backend. See the [Desktop App wiki](https://github.com/312-dev/eclosion/wiki/Desktop-App) for build instructions.

### Docker

**From registry (recommended):**

```bash
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:**

```bash
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](https://github.com/312-dev/eclosion/wiki/Self-Hosting-Overview) 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](https://github.com/312-dev/eclosion/wiki/Security) for full details.

## Local Development

```bash
# 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](https://github.com/312-dev/eclosion/wiki/Contributing).

- **Bugs**: [GitHub Issues](https://github.com/312-dev/eclosion/issues)
- **Questions**: [GitHub Discussions](https://github.com/312-dev/eclosion/discussions)

## Maintainers

Created by [@GraysonCAdams](https://github.com/GraysonCAdams). Maintained by [312.dev](https://312.dev).

See [contributors](https://github.com/312-dev/eclosion/graphs/contributors) for the full list.

## License

MIT