{"id":38243273,"url":"https://github.com/udayj/cash-tracker","last_synced_at":"2026-01-17T01:19:44.594Z","repository":{"id":324681526,"uuid":"1094963753","full_name":"udayj/cash-tracker","owner":"udayj","description":"Telegram \u0026 NLP Based Cash Accounting","archived":false,"fork":false,"pushed_at":"2025-12-12T10:32:28.000Z","size":104,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-13T23:16:40.496Z","etag":null,"topics":["agentic-ai","llm","rust","telegram","utility"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/udayj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-12T12:11:29.000Z","updated_at":"2025-12-12T10:32:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/udayj/cash-tracker","commit_stats":null,"previous_names":["udayj/cash-tracker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/udayj/cash-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udayj%2Fcash-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udayj%2Fcash-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udayj%2Fcash-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udayj%2Fcash-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/udayj","download_url":"https://codeload.github.com/udayj/cash-tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udayj%2Fcash-tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28491392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T00:50:05.742Z","status":"ssl_error","status_checked_at":"2026-01-17T00:43:11.982Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","llm","rust","telegram","utility"],"created_at":"2026-01-17T01:19:43.319Z","updated_at":"2026-01-17T01:19:44.587Z","avatar_url":"https://github.com/udayj.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cash Tracker\n\nA minimalist personal expense tracking bot that uses Telegram as the interface and LLM-powered natural language understanding.\n\n## Features\n\n### Cash Management\n- Add or subtract cash: `add cash 500` or `-200 cash`\n- Specify dates: `add cash 1000 on 12.8.25` (defaults to today)\n- Check balance: `current balance`\n\n### Expense Tracking\n- Add expenses naturally: `500 fruits` or `fruits 500`\n- Automatic categorization via LLM with confirmation\n- Specify dates: `500 batteries on 15.10.25`\n- Modify or delete by replying to any message: `change to 400`, `delete`, or `change category to Food`\n\n### Expense Analysis\n- Time-based breakdowns: `expenses this month` or `expenses from 1 oct to 31 oct`\n- Category-specific queries: `food expenses this month`\n- View all categories: `show categories`\n- Visual charts (pie and bar graphs) - TODO\n\n## Architecture\n\n**Stack:**\n- Rust application\n- Telegram Bot API for messaging\n- LLM with function calling (Groq as inference provider)\n- Remote Turso database (libsql)\n- Chart generation for visualizations - TODO\n\n**Design:**\n- Message-based context tracking (no conversation state)\n- Immediate commits with easy corrections\n- Auto-categorization with user category caching\n- Natural language date parsing\n\n## Setup\n\n### Prerequisites\n- Rust 1.89.0+\n- Telegram bot token (via [@BotFather](https://t.me/botfather))\n- Turso database\n- Groq API key\n\n### Environment Variables\n\nCreate a `.env` file:\n\n```env\nTELEGRAM_BOT_TOKEN=your_bot_token\nERROR_BOT_TOKEN=your_error_bot_token\nTURSO_AUTH_TOKEN=your_turso_token\nGROQ_API_KEY=your_groq_key\nTELEGRAM_ERROR_CHANNEL_ID=your_error_channel_id\n```\n\n### Local Development\n\n```bash\n# Install dependencies\ncargo build\n\n# Run the bot\ncargo run\n```\n\n## Deployment\n\n### Docker\n\nBuild and run:\n\n```bash\ndocker build -t cash-tracker .\ndocker run -d --env-file .env cash-tracker\n```\n\n### Production\n\nThe application is designed to run on any VPS:\n\n```bash\n# Build release binary\ncargo build --release\n\n# Run with environment variables\n./target/release/cash-tracker\n```\n\nEnsure all environment variables are properly configured in your production environment.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fudayj%2Fcash-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fudayj%2Fcash-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fudayj%2Fcash-tracker/lists"}