Personal finance, on WhatsApp

Snap a receipt.
Koi keeps the books.

Koi is a self-hosted finance tracker that lives inside WhatsApp. Photograph a receipt and it gets read, sorted, and saved. Split a bill or jot down income the same way. Everything stays on a machine you run.

Runs on your own machine No ads or tracking You keep your data
Koi dashboard showing the monthly overview, cash-flow chart and category breakdown
01 On privacy

Nobody sees your books but you

Koi runs on a machine you control. There's no account to create and no cloud quietly keeping a copy of your spending. When you scan a receipt, its photo goes to a vision service so the text can be read. That is the only thing that ever leaves your machine.

🏠 It lives on your hardware

Install it on a spare PC, a home server, or a NAS. The database and every receipt belong to you.

🚫 Nobody is selling your habits

No ad trackers or data brokers sit in the middle. What you spend stays between you and your own records.

🔑 You hold the keys

Add a password if you want one. The defaults are already sensible, and the code is yours to read.

A small house with a protected server glowing inside it
02 Everything in one chat

Bookkeeping that feels like texting

Here's what you get once it's set up.

📸

Scan any receipt

Snap a photo. Koi reads each line and sorts it using over 1,700 built-in rules, plus any you add.

🧾

Split bills in seconds

Send a receipt and get a link to share. Everyone ticks what they had, then tax and service get split to match.

🏷️

Know who owes you

Mark an expense as something the office or a family member should pay back, then watch the balance even when it comes in pieces.

🏖️

Trip budgets, automatically

Start a trip and anything you spend during those dates gets grouped under it for you.

💰

Log income in a tap

Type something like "income salary 5m" and it lands in your books, already categorized. No receipt needed.

📈

Watch prices over time

See how the price of the things you buy often shifts from month to month and shop to shop.

📊

A dashboard you'll open

A monthly overview, spending by category, and cash-flow trends, all in English or Bahasa Indonesia.

🌐

Make it yours

Teach it new keyword rules straight from the dashboard. Nothing to edit in the code, nothing to restart.

🧩

Multi-photo receipts

Got a long receipt? Send the photos together with "merge" and Koi joins them into one.

03 A closer look

Made for the way you actually spend

A phone photographing a receipt that turns into tidy category tags
Scan

Photograph it, then forget it

Point your camera at a receipt and hit send. Koi pulls out the store, the date, and every item, then files each one under the right category and replies with a tidy summary.

A receipt dividing into shares for several friends
Split

Settle up without the awkward maths

Share a bill as a link and let everyone choose what they ordered. Koi works out each person's share, tax and service included, so the table doesn't have to.

A suitcase with receipts and a map pin
Travel

Keep a holiday in its own column

Tell Koi you're away and it tags everything you spend until you're back. When the trip ends, you have the full total without sorting through a month of expenses.

A hand placing a category tag onto a receipt line
Tune

It learns your shorthand

If a certain item keeps landing in the wrong place, add a keyword rule for it in the dashboard. From then on Koi files it the way you want.

04 Straight from the chat

All of it runs inside WhatsApp

There's no separate app to open. Snap a photo, type a line, or forward a receipt, and Koi replies right there. These are real conversations with it.

05 See it in action

Real screens from the actual app

These are screenshots straight from the dashboard. Have a look around before you buy.

06 Up and running in minutes

Three steps, then it just works

STEP 01

Link WhatsApp

Scan a QR code once to connect Koi to your number. That's the whole setup.

STEP 02

Send a receipt

Send a photo or type a quick line. Koi reads it, saves it, and sends a reply to confirm.

STEP 03

Review anytime

Open your private dashboard to see exactly where your money went.

07 Under the hood

Honest about the tech

If you're the one who'll run it, here's exactly what you're getting.

Python 3.11 · Flask SQLite Node 20 · Baileys Vanilla JS · Chart.js Docker
Architecture: WhatsApp to a local bridge, scanner, SQLite database and dashboard, with only the receipt photo sent out to a vision model. YOUR MACHINE Vision model OpenRouter WhatsApp your number Bridge Node · Baileys Scanner Python SQLite your data Dashboard Flask You browser receipt photo only
The whole pipeline runs on one machine. The only thing that ever leaves is the receipt photo, sent to a vision model to read the text.
📦

One-command deploy

A multi-stage Docker image bundles Python 3.11 and Node 20. docker compose up -d starts the WhatsApp bridge, the dashboard, and the scanner together.

💾

Your data on your disk

The SQLite database, receipt images, WhatsApp session, and your rules all live in one ./data folder. Back it all up by copying that folder. No accounts, no cloud.

🛰️

One thing leaves the box

The only outbound call is the receipt photo, sent to a vision model to read the text. No telemetry, no analytics, nothing else syncs anywhere.

🔌

Pick your vision model

Point the OCR at any OpenRouter vision model with one setting (Qwen3-VL by default). The full source ships with it, so you can rewire that part if you'd rather.

🔐

Sensible defaults, hardened

An optional password gate with constant-time checks, the WhatsApp bridge kept on localhost, a fresh key per install, and the public split page escapes everything it shows.

🧰

Yours to read and tune

Readable Python and JavaScript, 1,700+ built-in categorization keywords plus your own from the dashboard, and around fifteen environment settings (language, timezone, currency, chat scope).

08 Why Koi

Built for people who want control

🔒

Real privacy

Your finances aren't handed to anyone. You host the whole thing yourself.

🧭

Full control

You decide where it runs and how it behaves, and most of it is configurable without going near the code.

🪙

One-time purchase

Pay once and it's yours to run. There's no subscription waiting around the corner.

🌍

English & Indonesian

The dashboard and the chat replies both speak English and Bahasa Indonesia.

09 Get Koi

Take your books back

Buy it once and run it on your own machine for as long as you like.

You'll need somewhere to host it and a WhatsApp number. With Docker, setup takes a few minutes.

10 Good to know

A few common questions

Is my financial data sent anywhere?

No. Everything sits on your own server. The one exception is the receipt photo, which goes to a vision service so the text can be read. Nothing else is sent off your machine.

Do I need to be technical?

If you can run a single Docker command, you can run Koi. The included guide walks you through linking WhatsApp and opening the dashboard.

What do I need to run it?

Something that stays on, like a PC, a home server, a NAS, or a small VPS. You'll also want a WhatsApp number and an OpenRouter key for the receipt scanning.

Can I use my personal WhatsApp?

Yes. By default Koi only reads your own "Message Yourself" chat, so it stays out of your other conversations. You can also point it at a dedicated group.

Does it speak my language?

Yes. It works in both English and Bahasa Indonesia, in the dashboard and in its WhatsApp replies.

Can I modify it or sell it?

You're free to modify it for your own use, including pointing it at a local or offline AI model. The only thing the licence rules out is reselling it or passing it on to other people. One purchase is for one person's own use.

Why buy this when AI could build something similar?

Honestly, you could try. The hard part is the distance between a weekend prototype and something you would trust with a whole year of your own money: reading messy real-world receipts reliably, getting Indonesian number formatting and tax and service splits exactly right, handling several people submitting a split at once, the WhatsApp connection, the categorization rules, and the hundred small fixes that only surface after months of daily use. Koi is already past all of that, it runs lean on tokens, and the core bookkeeping keeps working with no AI involved at all. Rebuilding it to the same polish and stability is a real chunk of time, and, only half joking, probably about half of your weekly Claude Code limit. Buying it once skips you straight to the version that already works.