
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 Kiro variant using the base openab image with kiro-cli as the agent backend.
0.8.0). To upgrade, change the image tag in Zeabur Dashboard → Service → Settings. Available tags: GitHub Packages./home/agent is mounted as a persistent volume. Plugins, settings, config, and credentials survive restarts.agent 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 Messages123456789012345678,234567890123456789If you have a paid Kiro subscription, go to kiro.dev → Settings → API Keys → create a key and paste it into the KIRO_API_KEY variable. This lets the bot authenticate automatically — no post-deploy steps needed.
Free tier users can leave KIRO_API_KEY empty and authenticate after deployment (see step 5).
Fill in the variables and click deploy. The service connects to Discord automatically.
Skip this step if you set KIRO_API_KEY in step 3.
After the service is running, open the service terminal in Zeabur Dashboard and run:
HOME=/home/agent kiro-cli login --use-device-flow
⚠️ Must run as
agent. Running asrootwrites credentials to/root/which is not persisted; they will be lost on restart.
Follow the on-screen URL and code to complete device flow authorization in your browser. Restart the service after login completes.
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/agent/.config/openab/config.toml | OpenAB config (sessions, reactions, STT, etc.) |
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/agent/.config/openab/config.toml
For config options, see the OpenAB documentation.
Leave Discord Bot Token empty. The service sleeps instead of crashing.