Slack
Add Slack as a messaging channel. Uses Socket Mode — no public URL needed.
What it does
- Connects NanoClaw to Slack via Socket Mode
- No public URL or webhook endpoint required
- Supports public channels, private channels, and DMs
- Works alongside other channels or as a standalone
- Full OAuth scope configuration for reading and writing messages
What you'll need
- NanoClaw installed and running
- A Slack workspace with admin access
- Slack app created at api.slack.com
- Socket Mode enabled with App-Level Token
Install
/add-slack How it works
The /add-slack skill connects NanoClaw to Slack using Socket Mode. This is a WebSocket-based connection that doesn’t require a public URL or webhook endpoint — the bot connects outbound to Slack’s servers. This makes it ideal for running NanoClaw on your local machine or behind a firewall.
The skill applies the SlackChannel class through the skills engine, installs the @slack/bolt dependency, and integrates into the message pipeline. If you already have other channels like WhatsApp or Telegram, Slack is added alongside them.
Setting up the Slack app requires a few steps in the Slack API dashboard. The skill provides detailed instructions (and references a SLACK_SETUP.md guide with screenshots) for each step:
- Create the app at api.slack.com and enable Socket Mode.
- Generate an App-Level Token (
xapp-...) with theconnections:writescope. This is what allows Socket Mode. - Subscribe to bot events:
message.channels,message.groups, andmessage.imso the bot can receive messages from public channels, private channels, and DMs. - Configure OAuth scopes:
chat:write,channels:history,groups:history,im:history,channels:read,groups:read, andusers:read. - Install the app to your workspace to get the Bot Token (
xoxb-...).
You paste both tokens (the App-Level Token and Bot Token) into the skill, and it saves them to your environment.
Registration
After the app is installed, you get the channel ID for the Slack channel where NanoClaw should operate. The easiest way is to right-click the channel name in Slack and select “View channel details” — the channel ID is at the bottom of the detail panel.
The skill registers this channel in the database. You can register multiple channels: one as your main channel and others as trigger-only.
Known limitations
Slack’s integration has a few current limitations to be aware of:
- Threads are flattened — the bot sees threaded replies as regular messages. Thread context is not preserved.
- No typing indicator — Slack’s API doesn’t support a persistent “typing” status the way other platforms do.
- No file or image handling — file attachments in Slack messages are not currently processed by the agent.
- Message splitting is basic — long responses are split at character boundaries rather than at natural paragraph breaks.
These are known and tracked for future improvement.
Tips
- Socket Mode means you never need to expose a port or set up ngrok. The connection is outbound-only, which is simpler and more secure for personal use.
- If the bot stops responding, check that both tokens are valid. App-Level Tokens don’t expire, but Bot Tokens can be revoked if the app is reinstalled.
- Some Slack workspaces have admin policies that restrict which apps can be installed. If you hit a permissions wall, you may need workspace admin approval.
- Invite the bot to the channel before registering it — Slack bots can only read messages in channels they’ve been explicitly added to.