Self-hosted · Built for India

The ledger that writes itself.

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.

Demo credentials ↓

No manual entry · No ads · No third-party aggregator

Incoming · SMS · HDFC Bank

Rs.649.00 debited from a/c **3417 on 09-07-26 to VPA netflix.upi@hdfcbank (UPI Ref No 519032417846). Not you? Call 18002586161.

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

SubscriptionsHDFC ••3417 monthly · next due 9 Aug

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

Every rupee, captured and explained.

SMS + email ingestion

Bank SMS alerts and statement emails (Gmail) are parsed automatically the moment they arrive — no manual entry.

Statement parsing, every bank

Upload PDF/CSV/XLSX statements from HDFC, Axis, Kotak, Scapia and more — a parser per bank handles each format and password scheme.

Auto-categorization

Rule engine + an LLM fallback categorize every transaction, looping until nothing's left uncategorized — while your manual overrides are never touched.

Recurring & bills detection

Subscriptions, EMIs and card statements are detected from transaction patterns and tracked to due dates automatically.

Net worth, every asset class

Banks, credit cards, stocks, mutual funds, US stocks, PPF, NPS, EPF and gold — one number, one trend line.

Real reconciliation

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

Every source, one ledger.

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.

Bank statement parsers

A dedicated parser per bank per format — each handles that bank's own password scheme and layout quirks automatically.

HDFC Bank

PDFCSVTXT

Credit card · Savings · Combined statement

Axis Bank

PDFCSVXLSX

Credit card · Savings · Relationship statement

ICICI Bank

PDF

Credit card

Kotak Mahindra Bank

PDF

Savings

State Bank of India

PDF

Savings

UCO Bank

PDF

Savings

Don't see your bank? It still ingests via SMS and email — new parsers ship on request.

Live ingestion

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.

Investments & holdings

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?

The differences that matter.

Multi-source, not single-source

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.

Self-hosted, not ad-funded

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.

Your categorization is sacred

Once you correct a category by hand, automation never overwrites it again — a rule that's enforced in code, not just a UI convention.

Built for India's fragmented stack

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

Where it's headed.

v1

Spend Visibility

Shipped

Ingestion (SMS, email, statements), categorization, transactions, spend analysis, bills.

v2

Net Worth & Investments

Shipped

Holdings across every asset class, valuation trends, net-worth breakdown, bank reconciliation.

v3

FinOS Agents

Planned

Natural-language SQL queries, a spending-leak detector, goal tracking, and a monthly financial-advisor summary.

v4

Mobile — Kotlin Multiplatform

In progress

Native Android is live; a shared Compose Multiplatform core is being extended to iOS.

Try it now

Open the demo passbook.

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