betterbot/README.md
Andre K e68c84424f
Some checks failed
Deploy BetterBot / deploy (push) Failing after 3s
Deploy BetterBot / notify (push) Successful in 3s
feat: fork from CodeAnywhere framework
Replace standalone Telegram bot with full CodeAnywhere framework fork.
BetterBot shares all framework code and customizes only:
- instance.py: BetterBot identity, system prompt, feature flags
- tools/site_editing/: list_files, read_file, write_file with auto git push
- .env: model defaults and site directory paths
- compose/: Docker setup with betterlifesg + memoraiz mounts
- deploy script: RackNerd with Infisical secrets
2026-04-19 08:01:27 +08:00

53 lines
1.8 KiB
Markdown

# 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 |
To sync upstream changes, copy updated framework files from `code_anywhere/`.
## Deployment
```bash
ssh racknerd bash /opt/src/betterbot/scripts/deploy-betterbot.sh
```
## Commands
- `/start` — Introduction and examples
- `/reset` — Clear conversation history
- `/model <name>` — Switch LLM model
- `/current` — Show current model