Deploy OpenAB with the native Rust coding agent (openab-agent) as a Discord/Slack bot. Single static binary, no Node.js or Python runtime, ~50ms cold start. Supports Anthropic API key or OpenAI Codex (ChatGPT Plus/Pro) subscription via OAuth device flow. Source: https://github.com/openabdev/openab

One-click deployment of OpenAB with openab-agent — a native Rust coding agent built into OpenAB itself. No Node.js, no Python, no adapter layer.
| openab-native | Other agent templates | |
|---|---|---|
| Runtime | None (single Rust binary) | Node.js / Python |
| Cold start | ~50ms | 1–3s |
| Image size | ~20MB layer | 300–800MB |
| Adapter layer | None (ACP built in) | Required (codex-acp / pi-acp / agy-acp) |
| Tools | 4 only: read / write / edit / bash | Varies per CLI |
Designed for fast, deterministic agent loops without the supply-chain surface of npm/pip.
beta tag. To pin a specific version, change the image tag in Zeabur Dashboard → Service → Settings./home/agent is mounted as a persistent volume. Config and auth tokens (~/.openab/agent/auth.json) survive restarts.config.toml is generated at /home/agent/.config/openab/config.toml on first boot. Edit it directly after that — env vars are only used for initial setup.DISCORD_BOT_TOKENbot → check permissions: Send Messages, Send Messages in Threads, Create Public Threads, Read Message History, Add Reactions, Manage MessagesOption A — Anthropic API key (simplest):
Paste your Anthropic API key into ANTHROPIC_API_KEY. The agent defaults to claude-sonnet-4-20250514. Done.
Option B — OpenAI Codex subscription (ChatGPT Plus/Pro):
Leave ANTHROPIC_API_KEY empty. After deployment, open the Exec tab in Zeabur Dashboard and run:
openab-agent auth codex-device
Follow the URL + code shown in your browser to authorize. Tokens persist at ~/.openab/agent/auth.json.
Verify with:
openab-agent auth status
Set OPENAB_ALLOWED_CHANNELS to restrict which channels the bot responds in. Leave empty to allow all channels.
connections:writeapp_mention, message.channels, message.groupsapp_mentions:read, chat:write, channels:history, groups:history, channels:read, groups:read, reactions:write, files:read, users:readxoxb-... token and xapp-... tokenAdd env vars in Zeabur Dashboard → Service → Variables:
| Variable | Default | Notes |
|---|---|---|
OPENAB_AGENT_PROVIDER | auto-detect | anthropic or codex to force one |
OPENAB_AGENT_MODEL | claude-sonnet-4-20250514 (Anthropic) | Any Anthropic model ID |
OPENAB_AGENT_OPENAI_MODEL | gpt-4.1-nano (Codex) | Used when provider is codex |
OPENAB_AGENT_MAX_TOKENS | 8192 | Output max tokens |
Auto-detect order: tries ANTHROPIC_API_KEY first, then OAuth token store.
| File | Description |
|---|---|
/home/agent/.config/openab/config.toml | OpenAB config (sessions, reactions, etc.) |
/home/agent/.openab/agent/auth.json | OAuth tokens (Codex flow only) |
To reset config to defaults: rm /home/agent/.config/openab/config.toml and restart.
The native agent's bash tool filters environment variables by default — ANTHROPIC_API_KEY, *_TOKEN, *_SECRET, etc. are stripped from child processes to prevent prompt-injection exfiltration. Add safe vars to OPENAB_AGENT_BASH_ENV_ALLOW (comma-separated) if needed.