opencode_tg — Bot de Telegram para OpenCode (VPS)
Bot que permite usar OpenCode desde el móvil vía Telegram. Corre en el VPS
Contabo junto a opencode serve (headless). Sin librerías extra (solo
requests), long-polling, whitelist por chat_id.
Despliegue
- Código:
/opt/opencode-tg/opencode_bot.py .env:/opt/opencode-tg/.env- Repo activo del serve:
/etc/opencode-tg/repo.env(REPO_DIR=...) - Servicios systemd:
opencode-serve.service→opencode serve --hostname 127.0.0.1 --port 4097dentro de$REPO_DIR(credenciales OPENCODE_SERVER_USERNAME/PASSWORD).opencode-tg.service→ el bot.
Para cambiar de repo el bot reinicia opencode-serve (escribe repo.env).
Cada chat conserva su sesión y modelo en estado.json.
Comandos del bot
/start /ayuda ayuda
/nueva [texto] sesión nueva (olvida el contexto)
/proyecto elegir repo de /home/Github (inline)
/modelo elegir modelo (inline)
/estado repo, sesión y modelo actuales
cualquier texto → lo ejecuta OpenCode en la sesión del chat
Entrega: texto como HTML (bloques ``` en
), ficheros creados/editados como documentos adjuntos (se leen destate.metadata.filesdel historial).PENDIENTE (único paso manual)
- Crear el bot con @BotFather y copiar el token.
- Rellenar en
/opt/opencode-tg/.env:(TELEGRAM_BOT_TOKEN=<token> TELEGRAM_CHAT_ID=<tu chat_id>TELEGRAM_CHAT_IDpuede ser una lista separada por comas.)- Arrancar:
systemctl enable --now opencode-tgAPI comprobada contra opencode 1.17.15: POST /session, POST /session/:id/message (body
parts+modelconproviderID/modelID), GET /session/:id/message, GET /config/providers, GET /global/health, GET /project.