cash-tracker-bot is a lightweight Telegram bot that helps you track your personal expenses with natural language input — directly from Telegram.
Log expenses like “Yesterday I spent 10.50 by card for the taxi” — the bot automatically parses the amount, assigns a category and payment method, and stores the entry, syncing to Google Sheets by default, with optional Supabase integration.
- 📝 Log expenses via Telegram using natural language
- 🔒 Private and secure — works in 1:1 chat
- ☁️ Supports Google Sheets and Supabase for data storage
- 🤖 AI-powered custom export: request data exports with filters and date ranges using natural language (e.g., "Export only groceries from June")
- 📤 Export all logged expenses as CSV via
/export - 🌐 Multi-language support (
/set_lang it,/set_lang en)
- Activate the Google Sheets API via Google Cloud Console
- Activate your Telegram Bot by creating it with @BotFather and get the token
- Activate your OpenAI API key from the OpenAI platform
- (Optional) Activate a Supabase database for persistent storage
- Clone the repository:
git clone https://github.com/LucaMino/cash-tracker-bot.git
- Create
.envfrom .env.example - Update settings.json (Change categories, payment methods...)
- Build container:
docker-compose up -d --build
- Create Google sheet, rename sheet_name and setup it using command
/build_sheet
fly deploy
fly ssh console --app cash-tracker-bot // open an SSH console to your app
docker-compose run script pip list
docker-compose run script pip freeze > requirements.txtDistributed under the MIT License. See LICENSE.txt for more information.