Skip to main content
slack_bot.py
Install the dependency: uv pip install 'agno[slack]'

Setup

1

Create a Slack App

  1. Go to api.slack.com/apps and click Create New App
  2. Choose From scratch, give it a name, and select your workspace
  3. On the Basic Information page, copy the Signing Secret
2

Enable Agents & AI Apps

This is required for streaming task cards and suggested prompts.
  1. In the sidebar, click Agents & AI Apps
  2. Toggle Agent or Assistant to On
  3. Under Suggested Prompts, select Dynamic
  4. Click Save
Enabling this automatically adds the assistant:write scope.
3

Add OAuth Scopes

  1. In the sidebar, click OAuth & Permissions
  2. Under Scopes > Bot Token Scopes, add:
These are the minimum scopes for streaming. Add channels:history, groups:history, users:read, or search:read if your agent uses SlackTools for channel history, user lookup, or message search.
  1. Click Install to Workspace and authorize the app
  2. Copy the Bot User OAuth Token (xoxb-...)
4

Set Environment Variables

Find these in your Slack App settings:
  • Bot User OAuth Token: OAuth & Permissions
  • Signing Secret: Basic Information > App Credentials
5

Subscribe to Events

  1. In the sidebar, click Event Subscriptions
  2. Toggle Enable Events to On
  3. Set Request URL to your tunnel URL:
    Your app must be running for Slack to verify the URL.
  4. Under Subscribe to bot events, add:
Add message.channels and message.groups if you set reply_to_mentions_only=False and want the bot to respond to all channel messages.
  1. Click Save Changes
  2. Go to Install App and click Reinstall to Workspace
6

Enable App Home

  1. In the sidebar, click App Home
  2. Under Show Tabs, enable Messages Tab
  3. Check Allow users to send Slash commands and messages from the messages tab
7

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). The free ngrok tier gives you a random subdomain that changes on restart.
8

Run the App

DM the bot or @mention it in a channel to test.
ngrok is for local development only. For production, see the deployment templates.

Scopes Reference

Add scopes based on the features your bot uses.

Minimum (streaming bot that responds to mentions and DMs)

File handling

SlackTools methods

Other features

Event subscriptions

Developer Resources

Slack Interface

Streaming, sessions, file handling, and behavior details.

Interface Reference

All parameters, endpoints, and event handling.

SlackTools

Give agents outbound Slack actions: messaging, search, files.

Deployment Templates

Production deployment guides for AWS, GCP, and Docker.