Self-hosted · Built for India
FinOS is a personal finance tracking application. It automatically imports and categorizes your transactions from bank SMS alerts, statement emails and uploaded statements, then tracks your bills, subscriptions, investments and net worth — reconciled against your actual bank statements, on your own server.
No manual entry · No ads · No third-party aggregator
Incoming · SMS · HDFC Bank
Parsed — amount, account, merchant extracted
Matched — also in the email statement · kept as one entry
Categorized — rules first, LLM only if needed
In your ledger
Netflix
−₹649.00
Verified against 2 sources — no double count
3
ingestion channels
SMS, email, statements
12
asset classes tracked
banks to gold to EPF
5+
bank formats parsed
each with its own quirks
1
honest number
reconciled, not estimated
What it does
Bank SMS alerts and statement emails (Gmail) are parsed automatically the moment they arrive — no manual entry.
Upload PDF/CSV/XLSX statements from HDFC, Axis, Kotak, Scapia and more — a parser per bank handles each format and password scheme.
Rule engine + an LLM fallback categorize every transaction, looping until nothing's left uncategorized — while your manual overrides are never touched.
Subscriptions, EMIs and card statements are detected from transaction patterns and tracked to due dates automatically.
Banks, credit cards, stocks, mutual funds, US stocks, PPF, NPS, EPF and gold — one number, one trend line.
A dedicated tool bridges your tracked numbers against actual bank statements and flags gaps — not just a spend chart that hopes it's right.
Coverage
Three ways data gets in — live SMS/email ingestion, uploaded statements, and investment connectors — cross-checked against each other so nothing's double-counted and nothing's missed.
A dedicated parser per bank per format — each handles that bank's own password scheme and layout quirks automatically.
HDFC Bank
Credit card · Savings · Combined statement
Axis Bank
Credit card · Savings · Relationship statement
ICICI Bank
Credit card
Kotak Mahindra Bank
Savings
State Bank of India
Savings
UCO Bank
Savings
Don't see your bank? It still ingests via SMS and email — new parsers ship on request.
No uploads needed — these flow in automatically the moment they arrive.
SMS
Bank alerts parsed the instant they land — dedicated rule sets for HDFC, Axis and Kotak, generic UPI/debit/credit pattern matching for the rest. Held as provisional until an email or statement confirms it.
Email (Gmail)
Connect once — statement and bill emails are detected, downloaded and parsed automatically. No forwarding, no manual download-then-upload.
Every asset class that isn't a bank account, kept in the same net-worth number.
Groww
Equities & ETFs, synced daily after market close.
MFCentral
Mutual fund holdings via an authenticated session, token-refreshed automatically.
IndMoney
US stocks, NPS and PPF holdings, synced via IndMoney's own MCP integration.
Manual & passbook upload
Gold, EPF and anything with no live feed — plus an HDFC PPF passbook PDF to backfill balance history.
Why not just use a budgeting app?
Most Indian expense apps read SMS only. FinOS merges SMS, email statements, and manual uploads for the same account, deduplicating across all three — so a transaction is never double-counted just because it showed up twice.
It runs on its own VPS, not a shared multi-tenant SaaS. Your bank details never sit in a third party's growth-analytics pipeline.
Once you correct a category by hand, automation never overwrites it again — a rule that's enforced in code, not just a UI convention.
One account can span Axis, HDFC, Kotak, Scapia, Groww, Zerodha, IndMoney, PPF, NPS and EPF. FinOS treats that as the normal case, not an edge case.
Roadmap
Ingestion (SMS, email, statements), categorization, transactions, spend analysis, bills.
Holdings across every asset class, valuation trends, net-worth breakdown, bank reconciliation.
Natural-language SQL queries, a spending-leak detector, goal tracking, and a monthly financial-advisor summary.
Native Android is live; a shared Compose Multiplatform core is being extended to iOS.
Try it now
A sandboxed account seeded with realistic (entirely fake) transactions, bills and investments. Poke at everything — it resets itself every night.
Demo access · resets nightly at 01:30 UTC