Files
nanoclaw/.claude/skills/add-slack-v2/SKILL.md
gavrielc 9486d56b01 v2: make v2 the main entry point, move v1 to src/v1/
- Move all v1 files (index, router, container-runner, db, ipc, types,
  logger, channels/registry, and all utilities) to src/v1/ as a
  fully self-contained archive with no shared dependencies
- Rename v2 files to remove -v2 suffix (index-v2.ts → index.ts, etc.)
- Update all imports across v2 source, tests, and setup files
- Migrate shared utilities (config, env, container-runtime, mount-security,
  timezone, group-folder) from pino logger to v2 log module
- Migrate setup/ files from logger to log with argument order swap
- Container agent-runner: move v1 entry to v1/, rename v2 to index.ts
- Update setup skill to offer all 13 v2 channels
- Install all Chat SDK adapter packages
- dist/index.js now runs v2; dist/v1/index.js runs v1

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 11:40:36 +03:00

2.1 KiB

name, description
name description
add-slack-v2 Add Slack channel integration to NanoClaw v2 via Chat SDK.

Add Slack Channel (v2)

This skill adds Slack support to NanoClaw v2 using the Chat SDK bridge.

Phase 1: Pre-flight

Check if src/channels/slack.ts exists and the import is uncommented in src/channels/index.ts. If both are in place, skip to Phase 3.

Phase 2: Apply Code Changes

Install the adapter package

npm install @chat-adapter/slack

Enable the channel

Uncomment the Slack import in src/channels/index.ts:

import './slack.js';

Build

npm run build

Phase 3: Setup

Create Slack App (if needed)

If the user doesn't have a Slack app:

  1. Go to api.slack.com/apps and click Create New App > From scratch
  2. Name it (e.g., "NanoClaw") and select your workspace
  3. Go to OAuth & Permissions and add Bot Token Scopes:
    • chat:write, channels:history, groups:history, im:history, channels:read, groups:read, users:read, reactions:write
  4. Click Install to Workspace and copy the Bot User OAuth Token (xoxb-...)
  5. Go to Basic Information and copy the Signing Secret
  6. Go to Event Subscriptions, enable events, and subscribe to:
    • message.channels, message.groups, message.im, app_mention
  7. Set the Request URL to your webhook endpoint (e.g., https://your-domain/webhook/slack)

Configure environment

Add to .env:

SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_SIGNING_SECRET=your-signing-secret

Sync to container: mkdir -p data/env && cp .env data/env/env

Build and restart

npm run build
launchctl kickstart -k gui/$(id -u)/com.nanoclaw  # macOS
# systemctl --user restart nanoclaw  # Linux

Phase 4: Verify

Add the bot to a Slack channel, then send a message or @mention the bot. The bot should respond within a few seconds.

Removal

  1. Comment out import './slack.js' in src/channels/index.ts
  2. Remove SLACK_BOT_TOKEN and SLACK_SIGNING_SECRET from .env
  3. npm uninstall @chat-adapter/slack
  4. Rebuild and restart