A multi-user personal finance dashboard that aggregates accounts across brokerages, banks, and crypto exchanges, and produces specific, actionable investment recommendations — not generic advice.
Deployed at financial-analysis-agent-one.vercel.app.
- Aggregates live data from Schwab (OAuth), Coinbase (CDP), and Finnhub (market data); imports CSVs from Fidelity, Robinhood, Chase, and Citi
- Analyzes net worth, allocation, sector exposure, cash drag, and today's movers
- Recommends specific buys (
/investClaude Code command) and answers questions in-app (Gemini assistant) with read/write access to your preferences - Persists everything per-user in Supabase with RLS; multi-user invite-only today
Next.js 16 (App Router) · TypeScript · Tailwind · Supabase (Postgres + Auth + RLS) · Recharts · deployed on Vercel.
npm install
cp .env.example .env.local # fill in Supabase, Schwab, Coinbase, Finnhub, Gemini keys
npm run dev # http://localhost:3000First run creates your account via the sign-up page and walks you through onboarding (profile, preferences, first connection).
| Command | Purpose |
|---|---|
npm run dev |
Dashboard on localhost:3000 |
npm run import |
CSV (non-Schwab) → Supabase. Requires TARGET_USER_ID. |
npm run invest:brief |
Build the /invest data bundle. Requires TARGET_USER_ID. |
npm run test:coinbase |
Smoke test CDP Ed25519 client |
- Schwab — OAuth via
/connections. Requires a Schwab Individual Developer app; see docs/SCHWAB_SETUP.md. - Coinbase — Paste CDP API key + secret (Ed25519) in
/connections. - Finnhub — Free API key for live quotes.
- Fidelity / Robinhood / Chase / Citi — CSV upload. Export instructions: docs/DATA_SOURCES.md.
/invest(Claude Code) — deep reasoning slash command for the owner; reads Supabase + Finnhub, emits actionable buy/rebalance recommendations.- In-app assistant (Gemini) —
/assistantroute + floating chat. Can read your portfolio/preferences and, on confirmation, write back toinvestment_preferencesanduser_profiles.
Both honor the same disclaimers and the same preferences row.
- PRD — product vision, users, feature matrix
- Architecture — system design, data model, security posture
- Roadmap — shipped phases and what's next
- Data sources — CSV export instructions per platform
- Schwab setup — developer-app registration guide
This repo ships a .claude/skills/ directory with slash commands for common workflows: verify, dev, push. They encode the repo-specific patterns (TEST_USER auth, port-3000 recovery, secret scanning) so Claude Code sessions stay consistent.