Open source
An open-source expense tracker you can read, fork, or self-host
Hisaab is MIT-licensed, hosted publicly, and small enough to read end to end in an afternoon. Here's what's in the repo and how to run your own copy.
Free tier · 20 messages and 2 questions per day
Most personal-finance apps are closed source. That's not a moral failing — it's just the default. But for a tool that touches your spending data, there's a real value in being able to read every line of code that runs.
Hisaab is open source under the MIT licence. The full repository lives at github.com/NoobAIDeveloper/hisaab. If you'd rather run your own bot against your own database, the README walks through it in about 20 minutes.
What's in the repository
app/— Python source: the FastAPI webhook, expense parser, SQL analytics handler, household commands.migrations/— Schema migrations. The multi-tenant migration is documented.public/— This marketing site. You're reading one of its pages now.scripts/— Build helpers, including the OG-image generator and the pSEO renderer.vercel.json— Deployment config; the webhook is one Vercel serverless function.
Why self-host
Reasons people self-host Hisaab:
- Higher rate limits. The hosted bot caps daily messages and questions; your own instance has whatever limits you set.
- Different LLM. The default uses Anthropic Claude Haiku via fal.ai; you can swap to any model with a chat-completion interface.
- Different database region. Run Postgres anywhere — your home server, your VPS, your AWS account in Mumbai.
- Audit trail. Your data flows through your infrastructure end to end.
What you'll need to run it
The README has the full recipe; the rough version is:
- A Telegram bot token from @BotFather.
- A Postgres database (Neon free tier works; so does any local Postgres).
- An LLM API key (fal.ai, OpenRouter, Anthropic direct, etc.).
- A Vercel account (or any host that runs Python serverless functions).
Most users have it running in under an hour.
Contributing
PRs welcome on the GitHub repo. The codebase is intentionally small — the entire bot is a few thousand lines of Python — so it's a reasonable place to learn how a Telegram bot, a Postgres schema, and an LLM-backed query interface fit together.