
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 Claude variant (openab-claude) which uses claude-agent-acp as the agent backend.
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 credentials survive restarts.node user (uid 1000). If you encounter permission issues on the persistent volume, restart the service.bot → check permissions: Send Messages, Send Messages in Threads, Create Public Threads, Read Message History, Add Reactions, Manage Messages| Method | How to get it |
|---|---|
| Anthropic API Key | Go to console.anthropic.com/settings/keys → Create Key → copy the sk-ant-api... key |
| Zeabur AI Hub Token | Go to Zeabur AI Hub → API Keys → Create → copy the token |
| Claude OAuth Token | Run claude setup-token in your terminal (requires Claude Pro/Max/Team/Enterprise subscription) → visit the URL it shows → authorize → paste the code back → copy the sk-ant-oat... token it outputs |
123456789012345678,234567890123456789Fill in the variables and click deploy. The service connects to Discord and/or Slack automatically.
OpenAB supports Slack via Socket Mode — no public URL needed.
connections:write → copy the xapp-... token (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-... token (SLACK_BOT_TOKEN)/invite @YourAppNameSet SLACK_BOT_TOKEN and SLACK_APP_TOKEN in the template variables before deploying. Both Discord and Slack can run simultaneously.
The agent can use gh (GitHub CLI) to review PRs, create issues, comment, merge, etc. Since the container is headless, authentication uses device flow:
https://github.com/login/device)gh is now authenticated for this sessionSee gh-auth-device-flow.md for technical details.
| File | Description |
|---|---|
/home/node/CLAUDE.md | Agent instructions — Claude reads this on every session |
/home/node/.config/openab/config.toml | OpenAB config (sessions, reactions, STT, etc.) |
/etc/claude-code/managed-settings.json | Claude Code permission mode |
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.
Leave Discord Bot Token empty. The service sleeps instead of crashing.