Skip to main content
Give each NanoClaw agent its own identity in Slack. You can talk to an agent in a direct message, bring several agents into one shared room, and use a room canvas as shared working context. Setup asks how you want to create the Slack app. Create it for me is the default: NanoClaw builds the manifest, chooses the scopes, installs the app, and stores the tokens. I will create it myself is the advanced alternative, for operators who create the app themselves at api.slack.com/apps. Setup also falls back to the manual walkthrough on its own. It does that when you do not complete the NanoClaw sign-in, when Slack rejects the app creation, or when the managed Slack service cannot be reached.

What you get

/add-slack installs the base Slack channel:
  • One Slack app and one bot identity
  • Direct messages with per-thread agent sessions for newly created wirings
  • Public channels, private channels, and threaded conversations
  • File delivery, reactions, interactive questions, and Slack-native formatting
The agents feature adds per-agent identities, rooms, and canvases:
  • A separate Slack identity for each agent you create
  • Shared group-DM rooms where a human and several agents can work together
  • A canvas in each room for plans, decisions, and shared context
  • Direct-message onboarding prompts and the Slack section of the welcome tour
  • The create_room and add_to_room actions, plus the extended create_agent tool
Two things gate the agents feature. First, the feature skills. Setup applies the in-tree slack-a2a-rooms and then slack-agent-flow skills after /add-slack. You can also apply both skills on top of an existing /add-slack install. If either skill is missing from the checkout, setup warns and skips that capability. Second, a provisioning credential. Signing in with a NanoClaw account is enough, and the managed path is the common case. SLACK_MANAGER_TOKEN is the operator-supplied alternative. Without either one, agent creation still succeeds, but the Slack leg reports no-credentials and prints a finish command. A manually created app can run the agents feature. Add these Bot Token Scopes to it, because the manual checklist below does not include them:
Without those scopes, room creation and canvases fail. Also subscribe the app to these Bot Events:
Without those events, the app cannot receive room messages or track room membership changes.

Before you start

You need:
  • A working NanoClaw install
  • Permission to install apps in the target Slack workspace
Managed setup also needs a NanoClaw account. Setup prompts you to sign in, then stores the install token at ~/.config/nanoclaw/account.json. You never create or paste that token yourself. The manual app path needs no account. Slack workspace policy still applies. A workspace that turns on Slack’s Admin Approved Apps policy refuses the automatic install, and a workspace admin has to approve the app before you can finish setup.

Set up the first agent

1

Start setup

Run the installer:
2

Choose Slack

Select Slack when the setup wizard asks for a channel. When it asks how to create the app, select Create it for me.
3

Connect your workspace

Sign in with your NanoClaw account if prompted. Approve the Slack workspace connection in your browser, then return to the terminal.If more than one workspace is connected, select the workspace where the agent should live.
4

Let NanoClaw create the app

NanoClaw creates a Socket Mode app, installs it, and stores the derived bot and app tokens in .env. The host never receives the workspace-level manager credential when provisioning runs through the managed service.If the workspace requires admin approval, managed setup opens the app’s install link and waits up to five minutes for approval. When the managed service returns the bot token, setup continues without token pasting.If approval takes longer, the provisioning module is older, or you use a manager token directly, setup falls back to Finish installing in Slack. After approval, install the app, open OAuth & Permissions, and paste the xoxb-… Bot User OAuth Token at the next prompt. The app-level token is already stored.
5

Open the agent DM

Setup resolves your Slack member ID, wires the direct message to the first agent group, restarts the service, and sends the welcome message. Reply in Slack to verify the connection.
The manual checklist matches the base /add-slack app. A managed app is created with the full scope and event set for group-DM agent rooms, canvases, onboarding, and membership updates. To run the agents feature on a manually created app, add the extra scopes and events listed under “What you get” above.

Create agents from Slack

The slack-agent-flow skill extends create_agent for sessions that start in Slack. Ask an existing Slack agent in plain language:
Create an agent called Research to compare the three deployment options.
1

Resolve the operator

NanoClaw identifies the Slack user making the request. That user needs a slack:U… identity in user_roles. Grant one with ncl roles grant if the flow reports operator-identity.
2

Verify the current bot

NanoClaw checks the originating bot’s token against Slack before it provisions anything.
3

Provision the new Slack app

NanoClaw creates a Slack app for the new agent, then writes its bot and app tokens to .env under the SLACK_INSTANCES key scheme.
4

Start the new adapter

NanoClaw registers the slack-<slug> adapter and starts it in the running host. No restart is needed.
5

Open the operator DM

The new bot opens a direct message with the operator and wires it to the new agent group.
6

Open the shared room

The new bot opens a group DM holding the operator, the originating bot, and itself. NanoClaw allowlists that room for agent-to-agent messages and creates the room canvas.
A canvas failure never blocks the flow. If another step fails, the agent group still exists and stays reachable through NanoClaw’s agent-to-agent messaging, and the error carries an idempotent finish command:
Agent-enabled Slack apps do not work for workspace guests. Ask for guest access when creating the agent to provision a plain Slack app instead.

Build a team in one room

For a team of agents, create each agent without an individual room. Then create one room for the whole team:
Create Research and QA as separate agents without rooms. Then create one room with both of them.
The slack-agent-flow skill adds two room actions:
  • create_room creates one shared room with several agents.
  • add_to_room adds another agent to an existing room.
In rooms created by the agents feature, each agent responds only when mentioned. Other room messages accumulate as context for its next mentioned turn. Bot-to-bot turns are mention-driven, and NanoClaw stops further bot-authored turns after six consecutive hops by default. A human message resets the counter.

Slack behavior

Conversations and threads

New Slack DM and channel wirings use per-thread sessions. Each Slack thread gets its own agent session, while the channel timeline provides surrounding context. Existing wirings keep the session behavior they were created with. The bot responds automatically in a direct message. In channels and shared rooms, mention the bot to start or resume its participation in that thread.

Rooms and membership

The agents feature adds room membership handling. When a Slack user invites an agent bot into a room, NanoClaw can adopt the room and create the required messaging group. The current Chat SDK does not dispatch bot-departure events, so removing a bot does not reliably update its NanoClaw wiring automatically. Shared agent rooms admit bot-authored messages only when the room is on the SLACK_A2A_ROOMS allowlist; bot messages remain blocked everywhere else.

Canvases

Agent rooms use a Slack canvas as shared, durable context. Agents can create, read, and edit canvas sections through the bot identity attached to the current session. Use the canvas for plans and decisions that should remain visible outside the message stream. The canvas tool and its container skill install with /slack-agent-flow.

Files and formatting

Agents can receive files, send generated files, and add reactions. Slack uses mrkdwn, not standard Markdown. The base /add-slack payload installs the slack-formatting container skill, so formatting guidance reaches agent containers without the agents feature. Pasted Slack tables are recovered from the platform payload as readable text for the agent.

Configuration reference

After editing instance tokens by hand, restart NanoClaw so the adapter registers the new identity. Programmatically created agents are hot-started and do not need that restart.

Troubleshooting

  • Slack asks for admin approval — ask a workspace admin to approve the app through the install link. Managed setup waits for the token automatically; if it falls back to manual completion, install the app and paste the new xoxb-… token. Provisioning does not bypass the workspace policy.
  • The welcome DM arrives, but replies disappear — for Socket Mode, confirm SLACK_APP_TOKEN is set, Socket Mode is enabled, and the four bot events are subscribed. For webhook mode, confirm the public URL is reachable and uses the matching Signing Secret.
  • The token is rejected — use the Bot User OAuth Token from OAuth & Permissions, not a user token. A bot token starts with xoxb-; an App-Level Token starts with xapp-.
  • A new agent exists but has no Slack bot — follow the finish command in the failure message. The agent group remains usable while the Slack provisioning leg is retried.
  • Agents do not answer each other in a room — confirm the room ID is in SLACK_A2A_ROOMS, mention the next bot explicitly, and verify that the sender is permitted by the room’s access policy.
  • A manually added instance does not connect — verify its name is present in SLACK_INSTANCES, check the matching suffixed token keys, then restart the service.
For service logs, restarts, and wiring checks, see Troubleshooting. For the general agent collaboration model, see Multi-agent swarm.
Last modified on September 4, 2026