Open Agent Broker — a lightweight Rust harness that bridges Discord to any ACP-compatible coding CLI (Claude Code, Codex, Gemini, Kiro, Copilot) over stdio JSON-RPC. Source: https://github.com/openabdev/openab

ZeaburOpenAB is a lightweight, open-source Rust harness that bridges Discord to any Agent Client Protocol-compatible coding CLI over stdio JSON-RPC.
This template deploys the Copilot variant (openab-copilot) which uses GitHub Copilot CLI as the agent backend.
gh auth login inside the container after the first deploy (see below).0.8.0). To upgrade, change the image tag in Zeabur Dashboard → Service → Settings. Available tags: GitHub Packages./home/node is mounted as a persistent volume. Plugins, settings, config, and GitHub OAuth credentials (~/.config/gh/) survive restarts.node user (uid 1000) before running openab. If you encounter permission issues, restart the service — ownership is fixed automatically on boot.bot → check permissions: Send Messages, Send Messages in Threads, Create Public Threads, Read Message History, Add Reactions, Manage MessagesFill in the Discord bot token and (optional) channel IDs, then click deploy. The container will start in sleep mode until Copilot is authenticated.
After the service starts, open Zeabur Dashboard → Service → Exec and run:
runuser -u node -- gh auth login --hostname github.com --git-protocol https -p https -w
Follow the device-code URL in your browser to authorize. The OAuth token is stored under /home/node/.config/gh/ and persisted across restarts.
Verify with:
runuser -u node -- gh auth status
Then restart the service so openab picks up the new credentials.
123456789012345678,234567890123456789/model and are not controllable in ACP mode| File | Description |
|---|---|
/home/node/.config/openab/config.toml | OpenAB config (sessions, reactions, STT, etc.) |
/home/node/.config/gh/ | GitHub OAuth credentials (from gh auth login) |
config.toml is created from a built-in template on first boot. After that, edit the file directly — environment variables are only used for initial setup. To reset to defaults, delete the file and restart: rm /home/node/.config/openab/config.toml
For config options, see the OpenAB documentation and the Copilot agent guide.
By default, openab ignores messages from other bots and webhooks. To allow webhook-triggered messages (e.g. automated testing or CI pipelines), add the following to your config.toml:
[discord]
allow_bot_messages = "mentions"
With this setting, openab responds to any bot or webhook message that @mentions it. To restrict to a specific webhook, also add:
trusted_bot_ids = ["YOUR_WEBHOOK_USER_ID"]
The webhook user ID is the numeric ID in the webhook URL: https://discord.com/api/webhooks/<ID>/...
Leave Discord Bot Token empty. The service sleeps instead of crashing.
Zeabur