The whole record of your money, on a server you own.

Kosh keeps your accounts, transactions, budgets, bills, and reports in a database you run yourself. No cloud account holds your ledger, and nothing here sells or studies what you spend.

Good evening, Aditya

You're on steady ground this month.

Local

Net worth

₹18,42,600

+₹42,300

Safe to spend

₹31,400

through 31 Jul

This month

+₹58,200

income − spend

Net worth · 12 months

+14.6%

12 to review

imported from HDFC

Electricity due

BESCOM · in 3 days

Eating out over

₹6,900 of ₹6,000

Most finance apps keep your ledger on their servers. Kosh keeps it on yours — that single difference shapes everything else.

Self-hosted

One Docker command on your own machine. The app and its PostgreSQL database run where you put them, and stay there.

Private by default

No analytics on your spending, no third-party trackers, no data sold on. What you record is read by you and the software you run.

Yours to keep

Plain PostgreSQL underneath, with backups and CSV export you trigger. Leave whenever you like and take everything with you.

The product

A place for every part of your money — composed, not crammed.

01Transactions

Everything that moved, in one honest ledger.

Every account posts into the same tabular record — mono figures, categories, tags, and the account each line came from. Search it, filter it, split it, and reconcile without leaving the page.

KoshTransactions
Local

Monthly salary

Income · HDFC Salary

+₹1,85,000

1 Jul

Skyline Residency

Rent · HDFC Salary

₹32,000

2 Jul

BigBasket

Groceries · Millennia Card

₹3,120

4 Jul

Swiggy

Eating out · Millennia Card

₹480

5 Jul

Index fund SIP

Investments · ICICI Savings

₹15,000

5 Jul

BESCOM electricity

Utilities · HDFC Salary

₹2,340

6 Jul

Netflix

Subscriptions · Millennia Card

₹649

7 Jul

02Accounts & imports

Bring in a statement, keep the mess out.

Add banks, cards, cash, loans, and savings, then import a CSV. Kosh matches what it recognises, suggests a category for the rest, and holds duplicates back for you to confirm.

KoshInbox · Import review
Local

hdfc-jul-2025.csv

38 rows parsed · 34 matched · 3 need a category · 1 duplicate held

THIRD WAVE COFFEE BLR

→ Eating out

Suggested

₹380

RENTPAY SKYLINE

→ Rent

Matched

₹32,000

CROMA RETAIL BANGALORE

→ Shopping

Review

₹8,499

SWIGGY INSTAMART

→ Duplicate of 5 Jul

Duplicate

₹480

KoshAccounts
Local

HDFC Salary

Bank

₹2,14,300

ICICI Savings

Savings

₹8,90,000

HDFC Millennia

Credit card

−₹41,200

SBI Emergency Fund

Savings

₹4,20,000

Car Loan

Loan

−₹3,10,000

KoshBudgets · July
Local
Groceries₹18,420 / ₹22,000
Eating out₹6,900 / ₹6,000
Transport₹4,120 / ₹7,000
Subscriptions₹1,897 / ₹2,500
KoshBills · Upcoming
Local

Jio Fiber

Due tomorrow

₹999

BESCOM electricity

In 3 days

₹2,340

Car loan EMI

In 9 days

₹18,500

Skyline rent

1 Aug

₹32,000

03Budgets & bills

Plan the month; meet every due date.

Set monthly envelopes and watch them fill as you spend. Track recurring bills with their real due dates, so rent, EMIs, and the electricity bill never arrive as a surprise.

04Automations & recurring

Let the repetitive parts run themselves.

Write a rule once — this merchant, that category — and it applies to matching transactions from then on. Recurring income and payments arrive as drafts you confirm, never posted behind your back.

KoshAutomations
Local
Swiggy → Eating out9 matched

When merchant contains “Swiggy”, set category Eating out and tag food.

Recurring draft · Salary+₹1,85,000

Monthly on the 1st · next draft 1 Aug. Kosh prepares it; you confirm before it posts.

KoshGoals
Local
Emergency fund₹4,20,000 / ₹6,00,000

6 months of expenses

Goa trip₹48,000 / ₹80,000

December

New MacBook₹1,10,000 / ₹2,00,000

on track

05Savings goals

Save toward the things you're actually planning.

An emergency fund, a trip, a laptop. Give each goal a target and follow the progress, funded from the accounts you already track — no separate pots to reconcile.

Ownership

You hold the data and the infrastructure.

There is no Kosh account in a datacentre you can't see. The app runs on your hardware, writes to your PostgreSQL, and — when you set an encryption key — protects the sensitive columns with AES-256-GCM before they ever touch disk. Back it up on your schedule; export to CSV whenever you want a copy in hand.

Your server

a VPS, a NAS, a spare box

Your database

PostgreSQL you control

Your keys

encryption key never leaves

For self-hosters

Boring, legible infrastructure.

The Compose stack starts PostgreSQL, runs the migrations, then starts Kosh. Nothing exotic to operate and nothing to phone home.

Terminal
$ cp .env.example .env
$ docker compose up -d
App
Next.js
Database
PostgreSQL 16
Runtime
Node.js 22.13+
Encryption
AES-256-GCM
License
AGPL-3.0
Deploy
Docker Compose

Kosh shows you its own health — the database connection, migrations, backups, and encryption status — so operating it never means guessing.

KoshSettings · Health
Local
DatabasePostgreSQL 16 · connected
MigrationsUp to date
BackupsLast night · 02:00
EncryptionAES-256-GCM · on

Run your own money software.

Stand it up in a few minutes, import a statement, and see where you actually are. It stays on your server for as long as you want it.