Install the Slack dependencies:
uv pip install 'agno[slack]'Create a Slack App
- Go to api.slack.com/apps and click Create New App
- Choose From scratch, give it a name, and select your workspace
- On the Basic Information page, copy the Signing Secret
Enable Agents & AI Apps
This is required for streaming task cards and suggested prompts.
- In the sidebar, click Agents & AI Apps
- Toggle Agent or Assistant to On
- Under Suggested Prompts, select Dynamic
- Click Save
Enabling this automatically adds the
assistant:write scope.Add OAuth Scopes
- In the sidebar, click OAuth & Permissions
- Under Scopes > Bot Token Scopes, add:
| Scope | Purpose |
|---|---|
app_mentions:read | Receive @mention events |
assistant:write | Streaming (task cards, suggested prompts) |
chat:write | Send messages and stream responses |
im:history | Read DM history for thread context |
files:read | Download files users send to the bot |
files:write | Upload response files (images, docs) |
- Click Install to Workspace and authorize the app
- Copy the Bot User OAuth Token (
xoxb-...)
Set Environment Variables
- Bot User OAuth Token: OAuth & Permissions
- Signing Secret: Basic Information > App Credentials
Subscribe to Events
- In the sidebar, click Event Subscriptions
- Toggle Enable Events to On
-
Set Request URL to your tunnel URL:
Your app must be running for Slack to verify the URL.
- Under Subscribe to bot events, add:
| Event | Purpose |
|---|---|
app_mention | Respond to @mentions in channels |
message.im | Respond to direct messages |
assistant_thread_started | Set suggested prompts on new threads |
- Click Save Changes
- Go to Install App and click Reinstall to Workspace
Enable App Home
- In the sidebar, click App Home
- Under Show Tabs, enable Messages Tab
- Check Allow users to send Slash commands and messages from the messages tab
Start a Tunnel
Slack needs a public HTTPS URL to deliver events:Copy the
https:// forwarding URL and paste it into the Event Subscriptions Request URL (Step 5).