# BetterBot A Telegram bot for editing the Better Life SG website and Memoraiz app frontend. Fork of [CodeAnywhere](https://github.com/andrekamarudin/code_anywhere) — shares the core Copilot SDK framework and only customises `instance.py` and `tools/site_editing/`. ## How it works 1. User sends a message to the Telegram bot (e.g. "Change the phone number to 91234567") 2. BetterBot uses the CodeAnywhere Copilot SDK framework with site-editing tools 3. Tools list / read / write files and automatically commit + push to git ## Projects | Key | What it manages | Mount path | |-----|----------------|------------| | `betterlifesg` | Static HTML site (Tailwind CSS via CDN) | `/repo/betterlifesg/site` | | `memoraiz` | React 19 + Vite 6 frontend | `/repo/memoraiz/frontend` | ## Stack - Python 3.12 + CodeAnywhere framework (Copilot SDK, python-telegram-bot) - Runs on RackNerd - Forgejo repo: `andre/betterbot` ## Fork relationship BetterBot shares all framework files with CodeAnywhere. The only betterbot-specific files are: | File | Purpose | |------|---------| | `instance.py` | Bot identity, system prompt, feature flags, tool registration | | `tools/site_editing/` | list_files / read_file / write_file with auto git push | | `.env` | Non-secret config (model defaults, site paths) | | `compose/` | Docker compose for RackNerd with site-dir mounts | | `scripts/deploy-betterbot.sh` | Deploy script targeting RackNerd + Infisical | Deploys on RackNerd pull from the BetterBot Forgejo repo only. They do not pull directly from CodeAnywhere during deploy. If CodeAnywhere framework files change, sync those changes into this repo first, commit them here, and then deploy BetterBot from its own `master` branch. ## Deployment ```bash ssh racknerd bash /opt/src/betterbot/scripts/deploy-betterbot.sh ``` ## Commands - `/start` — Introduction and examples - `/reset` — Clear conversation history - `/model ` — Switch LLM model - `/current` — Show current model