Renamed 13 skill folders to drop the -v2 suffix (the v2/v1 distinction isn't load-bearing anymore — there is no v1 runtime). Deleted the four v1 channel skills that occupied the rename target paths (add-discord, add-slack, add-telegram, add-whatsapp); they targeted src/v1 which is reference-only per CLAUDE.md. Skill content still says "v2" in places — that's a follow-up commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.2 KiB
3.2 KiB
name, description
| name | description |
|---|---|
| add-discord-v2 | Add Discord bot channel integration to NanoClaw v2 via Chat SDK. |
Add Discord Channel
Adds Discord bot support to NanoClaw v2. Discord is built in — no adapter package to install.
Install
v2 trunk doesn't ship channels. This skill copies the Discord adapter in from the channels branch.
Pre-flight (idempotent)
Skip to Credentials if all of these are already in place:
src/channels/discord.tsexistssrc/channels/index.tscontainsimport './discord.js';@chat-adapter/discordis listed inpackage.jsondependencies
Otherwise continue. Every step below is safe to re-run.
1. Fetch the channels branch
git fetch origin channels
2. Copy the adapter
git show origin/channels:src/channels/discord.ts > src/channels/discord.ts
3. Append the self-registration import
Append to src/channels/index.ts (skip if the line is already present):
import './discord.js';
4. Install the adapter package (pinned)
pnpm install @chat-adapter/discord@4.26.0
5. Build
pnpm run build
Credentials
Create Discord Bot
- Go to the Discord Developer Portal
- Click New Application and give it a name (e.g., "NanoClaw Assistant")
- From the General Information tab, copy the Application ID and Public Key
- Go to the Bot tab and click Add Bot if needed
- Copy the Bot Token (click Reset Token if you need a new one — you can only see it once)
- Under Privileged Gateway Intents, enable Message Content Intent
- Go to OAuth2 > URL Generator:
- Scopes: select
bot - Bot Permissions: select
Send Messages,Read Message History,Add Reactions,Attach Files,Use Slash Commands
- Scopes: select
- Copy the generated URL and open it in your browser to invite the bot to your server
Configure environment
All three values are required — the adapter will fail to start without DISCORD_PUBLIC_KEY and DISCORD_APPLICATION_ID.
Add to .env:
DISCORD_BOT_TOKEN=your-bot-token
DISCORD_APPLICATION_ID=your-application-id
DISCORD_PUBLIC_KEY=your-public-key
Sync to container: mkdir -p data/env && cp .env data/env/env
Next Steps
If you're in the middle of /setup, return to the setup flow now.
Otherwise, run /manage-channels to wire this channel to an agent group.
Channel Info
- type:
discord - terminology: Discord has "servers" (also called "guilds") containing "channels." Text channels start with #. The bot can also receive direct messages.
- how-to-find-id: Enable Developer Mode in Discord (Settings > App Settings > Advanced > Developer Mode). Then right-click a server and select "Copy Server ID" for the guild ID, and right-click the text channel and select "Copy Channel ID." The platform ID format used in registration is
discord:{guildId}:{channelId}— both IDs are required. - supports-threads: yes
- typical-use: Interactive chat — server channels or direct messages
- default-isolation: Same agent group for your personal server. Separate agent group for servers with different communities or where different members have different information boundaries.