Track your money as fast as sending a text. Clean Expense is a chat-based expense tracker with a private, on-device AI assistant, free Google Drive backup, and beautiful themes — offline-first and free forever.
Most expense apps make you tap through forms. Clean Expense lets you just
type — dinner #food 500 — and you're done. It's fast enough to actually
keep up with, and everything stays on your device unless you choose to
back it up.
- Chat-speed tracking — log an expense, income, or investment in
seconds. Type a note, a
#category, and an amount in any order. - Edit and delete — long-press any bubble to edit or delete it, like a chat.
- On-device AI assistant — ask "Where am I spending most?" or "Show today's transactions" and get answers with charts, from a model that runs 100% on your phone. Optional, free, and your data never leaves the device.
- Free Google Drive backup — back up and sync to your own Google Drive. No account with us, no server, no subscription.
- Insightful stats — category breakdowns and charts by day, week, month, or year.
- Export — branded PDF reports and CSV for Excel or Sheets.
- Six themes — including a true-black AMOLED mode.
- Private and offline-first — works fully offline, no ads, no account required, all data stored locally with Hive.
Flutter · Provider · Hive CE · fl_chart · flutter_gemma (on-device LLM) · googleapis (Drive) · pdf + share_plus (export)
git clone https://github.com/SuTechs/clean_expense.git
cd clean_expense
flutter pub get
dart run build_runner build
flutter runEverything works out of the box — no keys or accounts needed. The only optional feature that needs configuration is Google Drive backup.
No credentials live in this repo. To enable Drive backup in your own build,
create your own free Google OAuth clients — full walkthrough in
docs/google-drive-sync-setup.md — then:
-
Copy
env.example.jsontoenv.json(gitignored), fill in your client IDs, and build with the define file:flutter run --dart-define-from-file=env.json
-
iOS only: copy
ios/Flutter/Secrets.xcconfig.exampletoios/Flutter/Secrets.xcconfig(gitignored) and set your reversed client id. Info.plist picks it up automatically at build time.
Without these files the app builds and runs normally — the backup feature simply shows as "not configured". OAuth client IDs are public identifiers, not secrets; keeping them out of the repo just prevents third-party builds from impersonating the official app's consent screen.
- Edit and delete expenses
- First-launch onboarding with a live typing demo
- Export to PDF and CSV
- Free Google Drive backup and sync
- On-device AI assistant with generated charts
- Conversational follow-ups ("what about last month?")
- Multi-expense entry in one message
- UPI QR scanner with auto-logging
- Custom and shareable chat themes
Watch the build walkthrough on YouTube
Contributions are welcome. Found a bug or have a feature request? Please open an issue. Pull requests are appreciated.
Built by SuTechs. Connect with us on LinkedIn and Instagram.
Huge thanks to Antigravity and Claude Code for the incredible assistance in building this project.
Copyright © 2026 SuTechs. All Rights Reserved.
This project is licensed for personal and educational use only. You are not allowed to redistribute, resell, or upload this app to any app store (Google Play, App Store, etc.) without explicit permission.






