betterbot/README.md
Andre K eb8f283e44
Some checks failed
Deploy BetterBot / deploy (push) Failing after 2s
Deploy BetterBot / notify (push) Successful in 3s
fix: update README for deployment instructions and improve code formatting
2026-04-19 08:57:58 +08:00

1.9 KiB

BetterBot

A Telegram bot for editing the Better Life SG website and Memoraiz app frontend. Fork of CodeAnywhere — 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

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