Open Agent Broker — un arnés ligero en Rust que conecta Discord y Slack con cualquier CLI de coding compatible con ACP (Claude Code, Codex, Gemini, Kiro) a través de stdio JSON-RPC. Fuente: https://github.com/openabdev/openab

OpenAB es un arnés ligero de código abierto en Rust que conecta Discord con cualquier CLI de coding compatible con Agent Client Protocol a través de stdio JSON-RPC.
Esta plantilla despliega la variante Claude (openab-claude), que utiliza claude-agent-acp como backend de agente.
0.8.3-beta.4). Para actualizar, cambie la etiqueta de imagen en Zeabur Dashboard → Servicio → Configuración. Etiquetas disponibles: GitHub Packages./home/node está montado como volumen persistente. Plugins, configuración y credenciales se conservan entre reinicios.bot → marcar permisos: Send Messages, Send Messages in Threads, Create Public Threads, Read Message History, Add Reactions, Manage Messages| Método | Cómo usarlo |
|---|---|
| Anthropic API Key | Ir a console.anthropic.com/settings/keys → Create Key → pegar la clave sk-ant-api... en OPENAB_AUTH_TOKEN |
| Zeabur AI Hub Token | Ir a Zeabur AI Hub → API Keys → Create → pegar el token en OPENAB_AUTH_TOKEN |
| Claude OAuth Token | Ejecutar claude setup-token en la terminal (requiere suscripción Claude Pro/Max/Team/Enterprise) → abrir la URL mostrada → autorizar → pegar el código → pegar el token sk-ant-oat... en OPENAB_AUTH_TOKEN |
| Login dentro del contenedor | Dejar OPENAB_AUTH_TOKEN vacío. Tras el despliegue, ir a Zeabur Dashboard → Servicio → Exec y ejecutar runuser -u node -- claude auth login (o claude setup-token). Las credenciales se guardan en /home/node/.claude/ en el volumen persistente y se conservan tras reinicios. |
Conectar tokens al agente: openab lanza el agente con
env_clear(), por lo que para los métodos 1–3 hay que editar/home/node/.config/openab/config.tomltras el primer arranque y añadir un allowlist de env (o un mapa env explícito) bajo[agent]:[agent] inherit_env = ["ANTHROPIC_API_KEY", "CLAUDE_CODE_OAUTH_TOKEN", "ANTHROPIC_BASE_URL", "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS"]El método 4 no requiere edición — las credenciales se leen de
~/.claude/.credentials.json.
123456789012345678,234567890123456789Completar las variables y hacer clic en desplegar. El servicio se conecta a Discord y/o Slack automáticamente.
OpenAB soporta Slack mediante Socket Mode — no se necesita URL pública.
connections:write → copiar el token xapp-... (SLACK_APP_TOKEN)app_mention, message.channels, message.groupsapp_mentions:read, chat:write, channels:history, groups:history, channels:read, groups:read, reactions:write, files:read, users:readxoxb-... (SLACK_BOT_TOKEN)/invite @YourAppNameRellena SLACK_BOT_TOKEN y SLACK_APP_TOKEN antes de desplegar. Discord y Slack pueden funcionar simultáneamente.
Para conectar Telegram, LINE, Feishu/Lark, Google Chat o MS Teams, despliega la plantilla OpenAB Gateway en el mismo proyecto Zeabur. Luego añade estas variables de entorno a este servicio:
GATEWAY_URL = ws://openab-gateway:8080/wsGATEWAY_PLATFORM = uno de telegram, line, feishu, googlechat, teamsReinicia el servicio. El script de arranque inyecta automáticamente el bloque [gateway] en config.toml.
El agente puede usar gh (GitHub CLI) para revisar PRs, crear issues, comentar, fusionar, etc. Como el contenedor no tiene navegador, la autenticación usa device flow:
https://github.com/login/device)gh está autenticado para esta sesiónVer gh-auth-device-flow.md para detalles técnicos.
| Archivo | Descripción |
|---|---|
/home/node/CLAUDE.md | Instrucciones del agente — Claude lo lee en cada sesión |
/home/node/.config/openab/config.toml | Configuración de OpenAB (sessions, reactions, STT, etc.) |
/etc/claude-code/managed-settings.json | Modo de permisos de Claude Code |
config.toml se crea a partir de una plantilla integrada en el primer arranque. Después, edite el archivo directamente — las variables de entorno solo se usan para la configuración inicial. Para restablecer los valores predeterminados, elimine y reinicie: rm /home/node/.config/openab/config.toml
Para opciones de configuración, consulte la documentación de OpenAB.
Dejar Discord Bot Token vacío al desplegar. El servicio entrará en modo sleep sin fallar.