MyAgens
MyAgens
Slack

Connect MyAgens to Slack

György
Reviewed by
György
Updated Jul 27, 2026 7 min

Slack is one of the three ways into MyAgens, alongside Telegram and the web panel. Connect it and Atlas answers you in a direct message in your own workspace: replies stream as they are written, tool approvals arrive as buttons you can click, and background alerts land in the same DM. This guide sets it up from scratch.

Slack is optional and additive. You can run panel-only, panel plus Telegram, panel plus Slack, or all three. Adding Slack later never means reinstalling anything.

Direct messages only. The Slack surface answers DMs from the member IDs on your allow-list, and nothing else. Inviting the app to a channel does not give that channel a way in, on purpose: a channel invite must never become access to the machine MyAgens runs on.

What you need

  • MyAgens already installed and running. If you have not got that far, start with Set up MyAgens in five minutes.
  • A Slack workspace where you are allowed to install apps. On many workspaces installing an app needs an admin's approval, so if the install button asks you to request permission, that is your workspace policy, not MyAgens.
  • Two minutes at api.slack.com/apps.

1. Start from the panel, not from a text editor

Open the panel and go to Settings → Slack. The first-run wizard has the same step if you are still in initial setup, with a Skip button if you would rather add Slack later.

Doing it here rather than by hand in .env matters, because this is the worst part of Slack to set up blind: there are two tokens that look alike and live on different pages of the Slack admin, plus a member ID most people have never had to look up. The panel checks each token against Slack before it saves anything, so a swapped bot and app token is caught immediately instead of at the next restart. Tokens saved here go into the encrypted vault and take effect straight away, with no restart.

2. Create the Slack app from the manifest

At api.slack.com/apps, choose Create New App → From an app manifest, select your workspace, pick JSON, and paste the manifest. The panel shows you the exact one to copy; it looks like this:

{
  "display_information": { "name": "MyAgens Atlas" },
  "features": {
    "app_home": {
      "home_tab_enabled": false,
      "messages_tab_enabled": true,
      "messages_tab_read_only_enabled": false
    }
  },
  "oauth_config": {
    "scopes": {
      "bot": ["chat:write", "files:read", "files:write", "im:history",
              "im:read", "im:write", "search:read", "users:read"]
    }
  },
  "settings": {
    "event_subscriptions": { "bot_events": ["message.im"] },
    "interactivity": { "is_enabled": true },
    "socket_mode_enabled": true
  }
}

The manifest is doing three jobs worth knowing about:

  • messages_tab_enabled is what gives the app a DM tab you can actually type in.
  • socket_mode_enabled means Slack connects out to MyAgens over a WebSocket. You do not need a public URL, a tunnel, or an open port for Slack to work.
  • interactivity is what makes the Approve, Deny, and question buttons reach the bot. Leave it on unless you have a reason not to; see If your buttons do nothing below.

3. Generate the app-level token

Still in your new app, go to Basic Information → App-Level Tokens and click Generate Token and Scopes.

  • Name it something recognizable, for example myagens-socket.
  • Add the connections:write scope. That single scope is what Socket Mode runs on.
  • Copy the token. It starts with xapp-.

4. Install the app and copy the bot token

Go to OAuth & Permissions and click Install to Workspace, then approve the scopes. Slack gives you a Bot User OAuth Token starting with xoxb-.

The two tokens are easy to mix up. xapp- is the app token from Basic Information, xoxb- is the bot token from OAuth & Permissions. Paste each into its own field in the panel and it will tell you immediately if they are the wrong way round, along with which workspace the bot token actually belongs to.

5. Prove it is you

MyAgens only answers the Slack member IDs on its allow-list and silently ignores everyone else, exactly like the Telegram user ID allow-list.

You do not have to go hunting for yours. With both tokens verified, the panel waits for a direct message: open Slack, find your new app under Apps, and send it anything. The panel picks up your member ID from that message and fills it in. The bot's own ID is excluded, so it cannot nominate itself.

If you would rather find it manually, open your Slack profile, click the ... menu, and choose Copy member ID. It starts with U.

6. Say hello

Save, and Slack connects without a restart. Send Atlas a message in the DM and you should get a streamed reply. Try !ping first if you want the smallest possible test.

Commands use !, not /

Slack never delivers a /command that an app has not declared, so the Slack surface uses a ! prefix instead. These work with no extra Slack configuration at all:

Command What it does
!help List the available commands
!ping Confirm the surface is alive
!status Current agent, working directory, autonomy, and usage
!new Start a fresh conversation
!stop Abort the running turn, and cancel a pending question or approval
!pwd / !cd Show or change the working directory
!mode Read or set the autonomy level
!lang Set the reply language
!allow / !disallow / !allowed Manage always-allow tool presets
!usage Token and cost usage

If you prefer the / form, declare the same commands under Slash Commands on your Slack app. The handlers are already registered for both, so they start working as soon as Slack knows about them.

If your buttons do nothing

Approval and question buttons only reach the bot when your Slack app has Interactivity turned on. If it is off, or your workspace strips it, everything still works by typing:

  • Answer a question with its option number, its option text, or your own words.
  • Answer an approval with yes, no, or always. Add all to settle a whole batch at once.
  • !stop cancels a pending question or approval as well as aborting the turn.

The Slack surface is not the Slack connector

These are two separate features and it is worth keeping them straight:

  • The Slack surface (this guide) is how you talk to Atlas: a DM, on your account, with your allow-list.
  • The Slack connector is how your agents talk to Slack: listing channels, reading history, posting messages, replying in threads, searching, and uploading files, using a credential you attach in the panel's Connectors view.

You can run either without the other. Turning on the surface does not give agents the ability to post in your channels, and adding the connector does not give you a DM with Atlas.

Using .env instead

If you would rather configure Slack in the environment file, the three variables still work and are used whenever nothing is set in the panel:

SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
SLACK_ALLOWED_USER_IDS=U0123456789

SLACK_ALLOWED_USER_IDS takes a comma-separated list. Leaving the line out entirely, or leaving it empty, means "Slack not configured" and MyAgens starts normally without it.

Turning it off

Clear the tokens in Settings → Slack (or remove the SLACK_* lines from .env) and the surface stops. MyAgens keeps running as long as you still have one way in: the panel, Telegram, or Slack. It only refuses to start if nothing is configured, or if one surface is half configured, such as a token with no allow-list.

To remove it from Slack's side as well, delete the app at api.slack.com/apps, which revokes both tokens.

Get MyAgens

Self-hosted and open source. Install it on macOS, Linux, or Windows, then command your fleet of AI agents from Telegram or Slack.