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

  1. Open Your Slack Apps and Create New AppFrom a manifest. Choose your workspace, select JSON, and paste this manifest:
Slack app 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
  }
}
  1. Review the configuration and click Create and Install.
  2. 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.

  1. Under Basic InformationApp Credentials, reveal and copy the Signing Secret.
  2. 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 Slack

Add 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.py

Start 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 7777

Copy 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/events

Wait 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/interactions

Save 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.