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
- 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_roomandadd_to_roomactions, plus the extendedcreate_agenttool
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:
Before you start
You need:- A working NanoClaw install
- Permission to install apps in the target Slack workspace
~/.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
- Managed setup
- Manual app
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
Theslack-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.
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_roomcreates one shared room with several agents.add_to_roomadds another agent to an existing room.
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 theSLACK_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_TOKENis 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 withxapp-. - 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.