logo
icon

OpenAB Antigravity

Deploy OpenAB with Google Antigravity CLI (agy) as a Discord bot. Uses the agy-acp Rust adapter for reliable ACP stdio communication. Supports multi-turn conversations via --continue session continuity.

template cover
Deployed2 times
PublisherzeaburZeabur
Created2026-05-22
Tags
AIDiscord BotDeveloper Tools

OpenAB Antigravity

One-click deployment of OpenAB with Google Antigravity CLI as the AI agent backend. This template uses the agy-acp Rust adapter for stable stdin/stdout pipe communication.

Important Notes

  • Image tag: This template tracks the beta tag. To pin a specific version, change the image tag in Zeabur Dashboard → Service → Settings.
  • Persistent storage: /home/agent is mounted as a persistent volume. Config, auth tokens, and session data survive restarts.
  • Config location: 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.

Features

  • Lightweight Rust ACP adapter (agy-acp) bridges OpenAB to Google Antigravity CLI
  • Multi-turn conversations via --continue session continuity
  • ~5 second response time per prompt
  • Discord bot with emoji reaction status feedback
  • Slack support via Socket Mode

Setup

1. Create a Discord Bot

  1. Go to Discord Developer Portal
  2. Create a new application and add a Bot
  3. Enable Message Content Intent under Privileged Gateway Intents
  4. Copy the bot token and paste it as DISCORD_BOT_TOKEN
  5. 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
  6. Invite the bot to your server with the generated URL

2. Authenticate Antigravity CLI

After deployment, open the Exec tab in Zeabur Dashboard and run:

agy auth

Complete the device flow in your browser. Auth tokens persist in the volume at ~/.gemini/.

3. Configure Channels (Optional)

Set OPENAB_ALLOWED_CHANNELS to restrict which channels the bot responds in. Leave empty to allow all channels.

Slack Setup (Optional)

  1. Go to https://api.slack.com/apps → Create New App → From scratch
  2. Enable Socket Mode → generate App-Level Token with scope connections:write
  3. Enable Event Subscriptions → add bot events: app_mention, message.channels, message.groups
  4. OAuth & Permissions → add scopes: app_mentions:read, chat:write, channels:history, groups:history, channels:read, groups:read, reactions:write, files:read, users:read
  5. Install App → copy xoxb-... token and xapp-... token

Customization

FileDescription
/home/agent/.config/openab/config.tomlOpenAB config (sessions, reactions, etc.)

To reset config to defaults: rm /home/agent/.config/openab/config.toml and restart.

Limitations

  • No streaming — agy -p returns the full response at once
  • Cancel is a no-op — agy -p runs to completion
  • Session continuity uses --continue (resumes most recent conversation per container)