Bot de Telegram que proporciona acceso completo a las capacidades de OpenCode CLI.
Versión: 0.5.0 - Totalmente funcional
BotClaw permite a los usuarios interactuar con OpenCode desde Telegram como si lo estuvieran usando localmente (español e inglés). Cada usuario tiene su propia sesión y directorio de trabajo.
- Multi-tenant: Cada usuario de Telegram tiene sesión independiente
- Compatible con API de OpenCode v1.14.41+
- Persistencia en SQLite para usuarios y sesiones
- Arquitectura extensible para futuros servidores de IA
- Voz: STT (faster-whisper) + TTS (edge-tts + ffmpeg)
- Creación de proyectos con templates de contexto automáticos
- Multilenguaje: interfaz en español e inglés con conmutación en runtime vía /lang
- Python 3.11+
- OpenCode CLI instalado (
opencode serve) - Token de Bot de Telegram (de @BotFather)
-
Crear entorno virtual:
python3 -m venv .venv source .venv/bin/activate -
Instalar dependencias:
pip install -r requirements.txt
-
Configurar entorno:
cp config/.env.example config/.env # Editar .env con tus credenciales -
Iniciar servidor de OpenCode:
opencode serve --port 4097
-
Ejecutar el bot:
python -m bot.main
| Comando | Descripción |
|---|---|
/start |
Registrarse y obtener mensaje de bienvenida |
/help |
Mostrar lista completa de comandos disponibles |
/init <path> |
Inicializar o cambiar a un proyecto existente. Crea sesión si no existe |
| Comando | Descripción |
|---|---|
/create <name|path> |
Crear nuevo proyecto: directorio, git init, templates de contexto y sesión |
/project |
Mostrar información del proyecto actual (path, sesión, git) |
/projects |
Listar todos los proyectos registrados y sesiones globales |
/clone <url> |
Clonar repositorio git e inicializar automáticamente. Soporta HTTPS y SSH |
| Comando | Descripción |
|---|---|
/new |
Crear una nueva sesión de OpenCode para el proyecto actual |
/sessions [path] |
Listar sesiones disponibles (del proyecto actual o de un path específico) |
/use <id> |
Seleccionar una sesión existente por su ID |
/last |
Usar automáticamente la sesión más reciente del proyecto activo |
/rename <titulo> |
Cambiar el título de la sesión actual |
| Comando | Descripción |
|---|---|
/voice |
Alternar modo de voz on/off |
/voice on |
Activar respuestas de voz (TTS) |
/voice off |
Desactivar respuestas de voz |
/voice status |
Mostrar estado actual del modo de voz |
| Comando | Descripción |
|---|---|
/status |
Mostrar estado completo: proyecto, sesión, modelo, agente, modo, git, voz |
/mode |
Alternar modo del agente entre build y plan |
/mcp |
Listar servidores MCP conectados y su estado |
/skills |
Mostrar skills disponibles en el directorio .agents/skills del proyecto |
/cancel |
Cancelar operación en curso |
/lang <en|es> |
Cambiar idioma entre español e inglés |
Al crear un proyecto con /create, se generan automáticamente los siguientes archivos de contexto:
| Archivo | Propósito |
|---|---|
AGENTS.md |
Instrucciones para el agente + referencia a otros archivos de contexto |
PRODUCT.md |
Visión del producto, reglas de negocio y experiencia de usuario |
ARCHITECTURE.md |
Arquitectura técnica, estructura y estándares de código |
SPEC.md |
Especificación de la tarea actual (dinámico, se limpia tras cada tarea) |
HISTORY.md |
Historial de trabajo completado (acumulativo, nunca se borra) |
Editar config/.env:
TELEGRAM_BOT_TOKEN=tu_token_aqui
OPENCODE_SERVER_URL=http://localhost:4097
OPENCODE_SERVER_PASSWORD=opcional
USERS_ALLOWED=user1,user2
USER_IDS_ALLOWED=123456789,987654321
TTS_VOICE=es-MX-DaliaNeural
PROJECTS_BASE_DIR=~/projects
LOG_LEVEL=INFO
DEFAULT_LANG=en
Usuarios de Telegram → BotClaw → Servidor de OpenCode (HTTP)
↓
SQLite (users + sessions)
.venv/bin/python3 -m pytest tests/ -vMIT
