- A public endpoint for Slack to send events to. In development, use ngrok to forward Slack traffic to your local AgentOS server.
- A Slack app that represents your agent in the workspace. This is what users see under Apps in Slack, with its own name, icon, and permissions.
- Credentials so your agent can talk to Slack and verify incoming requests. You’ll use a bot token for Slack API calls and a signing secret for webhook verification.
Install dependencies first:
uv pip install 'agno[os,slack]' openai1. Expose your local server
Slack needs a public HTTPS URL for event callbacks. For local development, start an ngrok tunnel to your AgentOS server:You now have a public HTTPS endpoint. Copy the forwarding URL, since the app you create next will point at it.
2. Create the Slack app
Create a Slack app for your agent and configure the permissions and events it needs.- Manifest
- Manual
The manifest is the quickest setup path. It pre-configures the scopes, events, and settings needed for DMs, @mentions, and Human-in-the-Loop interactions.
- Download manifest.json and replace
https://YOUR-URLwith your ngrok URL - Go to api.slack.com/apps → Create New App → From a manifest
- Select your workspace, choose JSON, and paste the manifest contents
- Click Next, review the summary, then click Create
Your Slack app now has the required scopes and event subscriptions.
3. Install and collect credentials
The last remaining problem is authentication, and installing the app to your workspace generates both credentials you need.- Click Install App in the sidebar
- Click Install to Workspace, review permissions, then click Allow
- Copy the Bot User OAuth Token (starts with
xoxb-) - Go to Basic Information → App Credentials and copy the Signing Secret
Slack-side setup is complete: the app exists, it points at your URL, and you hold its credentials.
4. Connect your agent
With all three problems solved, the only thing left is to connect the agent itself:app.py
/slack/events, the same path your webhook points at. Events from Slack now reach your agent.
5. Test in Slack
Once the agent is running, verify everything works by sending it a message. The quickest check is a direct message: find your agent under Apps in Slack and say hello. To test in a channel, invite the agent and then mention it:If the agent replies, events are flowing from Slack through AgentOS to your agent. Setup is complete.
Customization
The five steps above cover the standard setup. Two adjustments come up often enough to walk through here.Respond to all channel messages
By default, the agent only responds to @mentions and DMs. To respond to every message in channels it’s in:- In Event Subscriptions, add
message.channelsandmessage.groupsevents - Go to Install App → Reinstall to Workspace
- Update your code:
Add search tools
If your agent usesSlackTools.search_workspace(), the app needs three additional scopes:
search:read.publicsearch:read.filessearch:read.users
Next steps
Once your agent is responding in Slack, continue with the deeper interface guides.Features
Sessions, files, streaming, and more
Human-in-the-Loop
Pause for approval before taking actions
Reference
All parameters, scopes, and events