Your finances, on your machine. No subscriptions. No account linking. No cloud. Ever.
Libertas is a self-hosted personal finance dashboard built for people who want the power of tools like Copilot Money or Fey — without handing your financial information to a company.
✦ Onyx (left) · Retro (right) — live market tape with drag-to-scroll, throw momentum, and NASDAQ-style neon ticker on Onyx ✦
- 📊 Net worth dashboard — history, range controls, 30-day delta, account drill-in
- 📰 Live market tape — NASDAQ-style neon ticker on Onyx; drag to scroll, throw to fling with momentum
- 🏦 Full account coverage — brokerages, banks, crypto, real estate, debt, retirement
- 🧠 Insights engine — 15 deterministic rules, runs 100% offline, no AI required
- 🔥 Retirement planner — 5 FIRE types, projections, contribution tracking
- 🧮 Tax estimates + debt payoff — built-in calculators
- 🔐 At-rest encryption — AES-256-GCM on all sensitive fields in SQLite
- ⌨️ Keyboard-driven —
/command palette, chord nav (g ddashboard,g aaccounts,g rreal estate,g ssettings) - 🎨 Two themes — Onyx (terminal black + amber) and Retro (deep navy + blue glow)
- 🤖 Optional AI chat — Claude API key unlocks portfolio Q&A and guided insights
- 🔗 Optional sync — Plaid and Google Sheets CSV feeds, fully opt-in
Most finance apps are built around your data leaving your machine. Libertas is built around the opposite.
| What others do | What Libertas does |
|---|---|
| OAuth into your bank | You import a CSV — no credentials, ever |
| Store your data in the cloud | Everything lives in a local SQLite file |
| Sell or train on your transactions | Data never leaves localhost |
| Require a subscription to access your own data | Open source, self-hosted, yours to keep |
At-rest encryption (AES-256-GCM) protects account names, balances, and all sensitive fields in the local database — even if someone gets physical access to your machine.
All optional integrations (Claude API, Plaid, News API) are explicitly opt-in. Nothing is enabled by default. No telemetry. No analytics. No crash reporting home.
You need: Python 3.11+, uv, bun
git clone https://github.com/adeebahmed/Libertas.git
cd Libertas
./start.shOpen http://127.0.0.1:5173 — import a CSV or add an account manually and you're in.
Drop a CSV from any of these into the Import page — Libertas auto-detects the format:
Fidelity · Schwab · Robinhood · Coinbase · Chase · Vanguard
Or drag any CSV and map columns once. Subsequent imports use saved mappings.
Prefer hands-off? Drop files into /data/watch/ and the watcher picks them up automatically.
Set everything in Settings inside the app — stored locally in SQLite, never sent anywhere.
| Key | What it unlocks |
|---|---|
| Claude API | 🤖 AI insights chat, guided portfolio analysis |
| News API | 📰 Live market news (falls back to RSS without it) |
| Plaid | 🏦 Optional direct bank sync |
FastAPI + SQLAlchemy + SQLite · React 18 + TypeScript + Vite · yfinance + CoinGecko · VitePress docs
Full user guide, API key setup, and architecture decisions at the GitHub Pages site.
./start-docs.sh # preview docs locally