logo
icon

OpenAB Codex

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

template cover
Deployed6 times
PublisherzeaburZeabur
Created2026-04-19
Minimum2 Cores4 GB
Recommended4 Cores8 GB
Tags
AIDeveloper ToolsDiscordSlack

OpenAB Codex

OpenAB 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 Codex variant (openab-codex) which uses codex-acp as the agent backend.

Important Notes

  • Image tag: This template uses a pinned version (0.8.1-beta.5). To upgrade, change the image tag in Zeabur Dashboard → Service → Settings. Available tags: GitHub Packages.
  • Persistent storage: /home/node is mounted as a persistent volume. Plugins, settings, config, and credentials survive restarts.
  • Config ownership: The container runs directly as node user (uid 1000). If you encounter permission issues on the persistent volume, restart the service.

Setup

1. Get a Discord Bot Token

  1. Go to https://discord.com/developers/applications and click New Application
  2. Navigate to Bot tab → click Reset Token → copy the token
  3. On the same page, scroll down and enable Message Content Intent under Privileged Gateway Intents
  4. Go to OAuth2 → URL Generator → check scope bot → check permissions: Send Messages, Send Messages in Threads, Create Public Threads, Read Message History, Add Reactions, Manage Messages
  5. Copy the generated URL and open it in your browser to invite the bot to your server

2. Authentication (choose one)

Option A: OpenAI API Key (billed per token — see pricing)

  1. Go to platform.openai.com/api-keys
  2. Click Create new secret key → copy the key
  3. Fill in the OpenAI API Key variable when deploying
  4. The service automatically runs codex login --with-api-key on first boot — no manual steps needed

Option B: ChatGPT Subscription (Plus/Pro/Business — usage included in plan)

  1. Leave OpenAI API Key empty when deploying
  2. After the service starts, go to Zeabur Dashboard → Service → Exec
  3. The Exec terminal opens as root. Run with the correct HOME so credentials are saved to the right path:
    HOME=/home/node codex login --device-auth
    
  4. Open the URL shown in the terminal, authorize with your ChatGPT account
  5. Restart the service from the dashboard
  6. Credentials are saved to /home/node/.codex/auth.json on the persistent volume and auto-refreshed — this step is only needed once

3. Get Discord Channel IDs

  1. Open Discord → go to User Settings (gear icon) → Advanced → enable Developer Mode
  2. Right-click the channel where you want the bot to respond → Copy Channel ID
  3. For multiple channels, separate IDs with commas: 123456789012345678,234567890123456789

4. Deploy

Fill in the variables and click deploy. The service connects to Discord and/or Slack automatically.

Slack Setup (Optional)

OpenAB supports Slack via Socket Mode — no public URL needed.

  1. Go to https://api.slack.com/appsCreate New AppFrom scratch
  2. Socket Mode → Enable → generate an App-Level Token with scope connections:write → copy the xapp-... token (SLACK_APP_TOKEN)
  3. Event Subscriptions → Enable Events → add bot events: app_mention, message.channels, message.groups
  4. OAuth & Permissions → Bot Token Scopes → add: app_mentions:read, chat:write, channels:history, groups:history, channels:read, groups:read, reactions:write, files:read, users:read
  5. Install App → Install to Workspace → copy the xoxb-... token (SLACK_BOT_TOKEN)
  6. In each Slack channel you want the bot in, run /invite @YourAppName

Set SLACK_BOT_TOKEN and SLACK_APP_TOKEN in the template variables before deploying. Both Discord and Slack can run simultaneously.

Usage

  • @mention the bot in an allowed channel or Slack channel to start a conversation
  • OpenAB creates a thread for multi-turn conversations — no @mention needed for follow-ups
  • Each thread maps to a persistent Codex session (24h TTL)

Customization

FileDescription
/home/node/.config/openab/config.tomlOpenAB 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/node/.config/openab/config.toml

For config options, see the OpenAB documentation.

Disabling

Leave Discord Bot Token and Slack Bot Token empty. The service sleeps instead of crashing.