Talk to your agent in Slack
Connect your personal agent to Slack using an AgentOS interface.
The AgentOS UI is your control plane for testing and managing agents. For everyday use, connect your agents to Slack, embed them in your product, or use them through AI apps like Claude and ChatGPT.
Let's connect the personal agent we built on the previous page to Slack. You'll need a Slack workspace and ngrok to give your local AgentOS a public URL that Slack can reach.
Create your Slack app
- Open Your Slack Apps and Create New App → From a manifest. Choose your workspace, select JSON, and paste this manifest:
{
"display_information": {
"name": "Pip",
"description": "Keep track of your projects, tasks, and decisions."
},
"features": {
"bot_user": {
"display_name": "Pip",
"always_online": true
},
"app_home": {
"home_tab_enabled": false,
"messages_tab_enabled": true,
"messages_tab_read_only_enabled": false
},
"assistant_view": {
"assistant_description": "Keep track of your projects, tasks, and decisions.",
"suggested_prompts": []
}
},
"oauth_config": {
"scopes": {
"bot": [
"app_mentions:read",
"assistant:write",
"channels:history",
"channels:read",
"chat:write",
"files:read",
"files:write",
"groups:history",
"groups:read",
"im:history",
"users:read",
"users:read.email"
]
}
},
"settings": {
"event_subscriptions": {
"request_url": "https://your-domain.ngrok.app/slack/events",
"bot_events": [
"app_mention",
"assistant_thread_started",
"message.im"
]
},
"interactivity": {
"is_enabled": true,
"request_url": "https://your-domain.ngrok.app/slack/interactions"
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}- Review the configuration and click Create and Install.
- After you install the app, click Go to App Settings. Keep this page open, we'll come back later for the bot token and signing secret.
Configure your local service
Stop your AgentOS server with Ctrl+C. From your project directory, add the Slack dependencies:
uv add "agno[os,sqlite,slack]"Grab the bot token and signing secret from the Slack app settings page.
- Under Basic Information → App Credentials, reveal and copy the Signing Secret.
- Under Install App, copy the Bot User OAuth Token, which starts with
xoxb-.
Set the following variables:
export SLACK_TOKEN="xoxb-your-bot-token"
export SLACK_SIGNING_SECRET="your-slack-signing-secret"Add these imports to personal_agent.py:
from os import environ
from agno.os.interfaces.slack import SlackAdd the Slack interface, update agent_os = AgentOS(...) to:
agent_os = AgentOS(
agents=[agent],
db=db,
interfaces=[
Slack(
agent=agent,
token=environ["SLACK_TOKEN"],
signing_secret=environ["SLACK_SIGNING_SECRET"],
resolve_user_identity=True,
)
],
tracing=True,
)Keep the rest of the file, including app = agent_os.get_app() and the __main__ block. Restart your AgentOS server:
uv run personal_agent.pyStart your ngrok tunnel
After starting your AgentOS server, install ngrok using the instructions for your operating system.
Next, open a second terminal and connect it to your account:
ngrok http 7777Copy the HTTPS forwarding URL printed by ngrok, such as https://your-domain.ngrok.app. Keep both the Python server and ngrok running.
Tell Slack where to send messages
Return to your app's configuration at Your Apps.
Enable event delivery
Open Event Subscriptions and make sure Enable Events is on. Replace the placeholder Request URL with your ngrok URL followed by /slack/events:
https://your-domain.ngrok.app/slack/eventsWait for Verified. The running Slack interface validates Slack's signature and answers its URL verification request.
Save your changes. If Slack asks you to reinstall the app, complete that step.
Configure interactions
Open Interactivity & Shortcuts, make sure interactivity is on, and replace its placeholder Request URL with:
https://your-domain.ngrok.app/slack/interactionsSave the change. This connects Slack's interactive actions to AgentOS.
Update to the new Agent's experience
Slack is introducing a new agentic app experience. The app manifest above uses the assistant view. Find the Go to Agents button in the banner and click it.
Update the app to the new experience.
Message your agent
In Slack, find Pip under Apps and open its messages. Send:
Do I have any open projects?resolve_user_identity=True will use your email instead of your Slack user ID. If you used the same email in the AgentOS UI and Slack, the agent should be able to continue the conversation.
Next: take it to production
Your agent is running locally on your computer. Next, deploy it to Railway so it stays available when you close your laptop.