Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
Track UPI, card, and cash spending. Auto-ingests bank emails. Built for Indian banking.
FinanceTypeScript · CSSGitHub @Swiftzz22OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A personal finance tracker built for Indian banking. It auto-logs your spending by reading bank, UPI, and credit-card notification emails from Gmail, parses them with an LLM, and lets you ask questions about your money in plain English. Designed mobile-first as an installable PWA.
Built for real use — it ingests live HDFC / HSBC / UPI emails and bank statements, not toy data.
{amount, merchant, payment mode, date, debit/credit} from each notification — turning your inbox into a ledger with no manual entry..xls) or a multi-cardholder HSBC credit-card statement (.pdf); it extracts your transactions (the HSBC PDFs are image-based, so they're parsed via Gemini's multimodal API) and de-duplicates against what email ingestion already captured.queryTransactions, aggregateByCategory, aggregateByMerchant, monthlyTotals). Ask "compare my May spend to April" or "top 5 merchants since Jan" and it plans tool calls, reads the results, and answers — with a collapsible trace of exactly which tools it ran.@google/genai) for email extraction, statement OCR, and the chat agent's tool-calling loopgoogleapis) for ingestion and loginSession table, httpOnly cookie) — no auth framework dependencyMAX_STEPS, and a rate-limited API with an eval suite (scripts/agent-evals.ts)./api/cron/sync) for serverless production.npm install
cp .env.example .env # then fill in the values (see below)
npx prisma db push # apply schema to a fresh SQLite db
npm run db:seed # seed default categories + payment modes
npm run dev # http://localhost:3000
You'll need a Google OAuth client (for login + Gmail), a Gemini API key (free tier), and a generated TOKEN_ENCRYPTION_KEY. See .env.example for every variable, and the Google setup walkthrough below.
| Command | What it does |
|---|---|
npm run dev | Start the dev server |
npm run build | Production build |
npm run db:seed | Seed default categories / payment modes |
npm run db:studio | Browse the database in Prisma Studio |
npx tsx scripts/agent-evals.ts | Run the chat-agent eval suite |
The app uses one OAuth client for both login and Gmail ingestion.
http://localhost:3000/api/auth/google/callback
.env, plus a Gemini key from aistudio.google.com/apikey.Workspace (school/company) accounts may be blocked by admin policy — use a personal Gmail.
Actively built and used. Single-currency (INR) by design. Deployment to Vercel + Turso and a Capacitor mobile wrapper are in progress.
This is a personal project. No financial data is committed to the repo — the local database (*.db) and all secrets (.env) are gitignored.