logo
icon

OpenAB Cursor

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

template cover
Implementado3 veces
EditorzeaburZeabur
Creado2026-04-20
Mínimo2 Núcleos4 GB
Recomendado4 Núcleos8 GB
Etiquetas
AIDeveloper ToolsDiscord

OpenAB Cursor

Esta plantilla despliega la variante Cursor de OpenAB, usando cursor-agent como backend de agente.

Notas Importantes

  • Suscripción de pago requerida: Cursor Agent CLI requiere una suscripción de pago de Cursor (Pro o Business).
  • Autenticación después del despliegue: No hay variable de API key. Debe ejecutar cursor-agent login dentro del contenedor tras el primer despliegue.
  • Etiqueta de imagen: Esta plantilla usa una versión fijada (0.8.3-beta.4). Para actualizar, cambie la etiqueta en Zeabur Dashboard → Servicio → Configuración. Tags disponibles: GitHub Packages.
  • Almacenamiento persistente: /home/agent está montado como volumen persistente e incluye las credenciales de autenticación (~/.cursor/).

Configuración

1. Obtener Discord Bot Token

  1. Crear una aplicación en https://discord.com/developers/applications
  2. BotReset Token → copiar el token
  3. Habilitar Message Content Intent
  4. OAuth2 → URL Generator → scope bot → invitar el bot al servidor

2. Desplegar

Introducir el Discord Bot Token y hacer clic en desplegar.

3. Autenticar Cursor (elija una)

El script de arranque no impone ninguna variable de entorno de autenticación. Use el método que prefiera:

Opción A: Device flow (interactivo, sin variable de entorno)

Tras iniciar el servicio, ir a Zeabur Dashboard → Servicio → Exec y ejecutar:

runuser -u agent -- cursor-agent login

ℹ️ runuser -u agent ejecuta el login como el usuario agent, por lo que HOME se establece automáticamente en /home/agent y las credenciales pertenecen a agent desde el inicio — sin chown ni reinicio necesarios.

Completar la autorización en el navegador. Las nuevas conversaciones recogerán la auth en la próxima sesión — solo reinicie si necesita invalidar las sesiones existentes en memoria.

Opción B: variable CURSOR_API_KEY (sin terminal)

  1. En Cursor Dashboard → Settings → Account, crear una API key
  2. En Zeabur Dashboard → Servicio → Variables, añadir CURSOR_API_KEY con ese valor
  3. Reiniciar el servicio. cursor-agent lee la variable directamente — no necesita ejecutar cursor-agent login

Añadir plataformas de mensajería (Telegram / LINE / Feishu / Google Chat / MS Teams)

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/ws
  • GATEWAY_PLATFORM = uno de telegram, line, feishu, googlechat, teams

Reinicia el servicio. El script de arranque inyecta automáticamente el bloque [gateway] en config.toml.

Uso

  • @mencionar al bot en un canal permitido para iniciar una conversación
  • OpenAB crea un thread para conversaciones multi-turno
  • Cada thread mapea a una sesión de Cursor persistente (TTL de 24 horas)

Personalización

ArchivoDescripción
/home/agent/.config/openab/config.tomlConfiguración de OpenAB (sessions, reactions, STT, etc.)

config.toml se crea a partir de una plantilla integrada en el primer arranque. Después, edite el archivo directamente. Para restablecer los valores predeterminados: rm /home/agent/.config/openab/config.toml

Webhook / Bot Integration

Por defecto, openab ignora los mensajes de otros bots y webhooks. Para permitir mensajes activados por webhook (por ejemplo, pruebas automatizadas o pipelines de CI), añada lo siguiente a su config.toml:

[discord]
allow_bot_messages = "mentions"

Con esta configuración, openab responde a cualquier bot o webhook que lo @mencione. Para restringir a un webhook específico, añada también:

trusted_bot_ids = ["YOUR_WEBHOOK_USER_ID"]

El ID de usuario del webhook es el ID numérico en la URL del webhook: https://discord.com/api/webhooks/<ID>/...

Desactivar

Deje Discord Bot Token vacío. El servicio entra en modo sleep sin fallar.

Enlaces