Slack Bot Development
Run your own instance of the GAIA Slack bot. The bot uses Socket Mode, so no public URL or port forwarding is required.Looking to use GAIA in Slack as a user? See Using GAIA in Slack.
Prerequisites
- Node.js 18+ and pnpm
- A Slack workspace where you have admin access
- GAIA API running (see Self-Hosting Guide)
Step 1: Create a Slack App
- Go to api.slack.com/apps
- Click Create New App → From scratch
- Give your app a name and select your workspace
Step 2: Enable Socket Mode
- In the sidebar, go to Socket Mode
- Toggle Enable Socket Mode on
- Generate an App-Level Token with the
connections:writescope - Copy the token, it starts with
xapp-
Step 3: Configure Bot Permissions
- Go to OAuth & Permissions
- Under Bot Token Scopes, add:
chat:writecommandsim:historyim:readim:write
- Under User Token Scopes, add:
identity.basic
- Under Redirect URLs, add:
- Click Install App to Workspace (or Reinstall if already installed)
- Copy the Bot User OAuth Token (starts with
xoxb-) - Copy the Client ID and Client Secret from Basic Information
- Copy the Signing Secret from Basic Information
Step 4: Register Slash Commands
Go to Slash Commands and create each command listed in the Commands Reference. Request URL can be left blank in Socket Mode.Step 5: Configure Environment Variables
Create a.env file in apps/bots/slack/:
apps/api/.env:
Step 6: Start the Bot
Troubleshooting
| Problem | Solution |
|---|---|
| Bot doesn’t respond | Check Socket Mode is enabled and all tokens are correct |
| Command not found | Verify slash commands are created in the Slack app dashboard, then reinstall the app |
| Authentication fails | Ensure GAIA_BOT_API_KEY matches the API config |

