# 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 4097` dentro 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 de `state.metadata.files` del historial). ## PENDIENTE (único paso manual) 1. Crear el bot con @BotFather y copiar el token. 2. Rellenar en `/opt/opencode-tg/.env`: ``` TELEGRAM_BOT_TOKEN=TELEGRAM_CHAT_ID= ``` (`TELEGRAM_CHAT_ID` puede ser una lista separada por comas.) 3. Arrancar: ``` systemctl enable --now opencode-tg ``` API comprobada contra opencode 1.17.15: POST /session, POST /session/:id/message (body `parts` + `model` con `providerID`/`modelID`), GET /session/:id/message, GET /config/providers, GET /global/health, GET /project.