Meet NanoCo, maintainers of NanoClaw: we raised $12M to give every member of your team a professional assistant →
Skills
Messaging Official

Slack

Add Slack as a messaging channel. Uses Event Subscriptions webhooks via the Chat SDK bridge — requires a publicly reachable HTTPS endpoint.

What it does

  • Connects NanoClaw to Slack via the Chat SDK bridge
  • Event Subscriptions webhooks delivered to NanoClaw's webhook server
  • Supports public channels, private channels, DMs, and threads
  • 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
  • A publicly reachable HTTPS endpoint (or a tunnel like ngrok or Cloudflare Tunnel)

Install

/add-slack

How it works

The /add-slack skill connects NanoClaw to Slack via the Chat SDK bridge. Slack delivers events to NanoClaw’s shared webhook server (port 3000 by default, configurable via WEBHOOK_PORT) at /webhook/slack. That endpoint must be publicly reachable from the internet for Slack to deliver events — if you’re running NanoClaw on a local machine, a tunnel like ngrok or Cloudflare Tunnel provides the public URL.

The skill copies the Slack adapter (src/channels/slack.ts) in from the channels branch, appends a self-registration import to src/channels/index.ts, and installs the pinned @chat-adapter/slack package. 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 for each step:

  1. Create the app at api.slack.com (“From scratch”) and select your workspace.
  2. Configure Bot Token scopes: chat:write, im:write, channels:history, groups:history, im:history, channels:read, groups:read, users:read, reactions:write, files:read, and files:write.
  3. Install the app to your workspace to get the Bot Token (xoxb-...), and copy the Signing Secret from Basic Information.
  4. Enable the Messages Tab in App Home so users can DM the bot.
  5. Enable Event Subscriptions with the Request URL set to https://your-domain/webhook/slack, subscribing to the message.channels, message.groups, message.im, and app_mention bot events.
  6. Turn on Interactivity with the same Request URL, then reinstall the app when Slack prompts you.

You paste both values (the Bot Token and the Signing Secret) into the skill, and it saves them to .env as SLACK_BOT_TOKEN and SLACK_SIGNING_SECRET.

Registration

After the app is installed, the skill validates the change by building the project and running the channel registration test. You then wire Slack channels to agent groups with /manage-channels. To find a channel’s ID, right-click the channel name in Slack and select “View channel details” — the channel ID is at the bottom of the detail panel. Registration uses the platform ID format slack:{channelId} (DM IDs start with D instead of C).

Threads and DMs

Slack threads are supported — the adapter preserves thread context rather than flattening replies. The bot also works in DMs once the Messages Tab is enabled in App Home.

Tips

  • The webhook server must be publicly reachable for Slack to deliver events. For local development, ngrok http 3000 or a Cloudflare Tunnel gives you a public URL to use as the base for the Request URL.
  • If the bot stops responding, check that the Bot Token and Signing Secret in .env are still valid. 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 wiring it — Slack bots can only read messages in channels they’ve been explicitly added to.