sbusso/claudeclaw/add-discord
Claude Code and agent skill by sbusso/claudeclaw
- community
Checking that the SKILL.md file is still in the repository.
Add Discord bot channel integration to ClaudeClaw.
Install
npx vskill@latest install sbusso/claudeclaw/add-discordSKILL.md
Add Discord Channel
This skill adds Discord support to ClaudeClaw, then walks through interactive setup.
Phase 1: Pre-flight
Check if already applied
Check if src/channels/discord.ts exists. If it does, skip to Phase 3 (Setup). The code changes are already in place.
Ask the user
Use AskUserQuestion to collect configuration:
AskUserQuestion: Do you have a Discord bot token, or do you need to create one?
If they have one, collect it now. If not, we'll create one in Phase 3.
Phase 2: Apply Code Changes
Ensure channel remote
If discord is missing, add it:
Merge the skill branch
This merges in:
src/channels/discord.ts(DiscordChannel class with self-registration viaregisterChannel)src/channels/discord.test.ts(unit tests with discord.js mock)import './discord.js'appended to the channel barrel filesrc/channels/index.tsdiscord.jsnpm dependency inpackage.jsonDISCORD_BOT_TOKENin.env.example
If the merge reports conflicts, resolve them by reading the conflicted files and understanding the intent of both sides.
Validate code changes
All tests must pass (including the new Discord tests) and build must be clean before proceeding.
Phase 3: Setup
Create Discord Bot (if needed)
If the user doesn't have a bot token, tell them:
I need you to create a Discord bot:1. Go to the Discord Developer Portal2. Click New Application and give it a name (e.g., "Andy Assistant")3. Go to the Bot tab on the left sidebar4. Click Reset Token to generate a new bot token — copy it immediately (you can only see it once)5. Under Privileged Gateway Intents, enable:- Message Content Intent (required to read message text)- Server Members Intent (optional, for member display names)6. Go to OAuth2 > URL Generator:- Scopes: selectbot- Bot Permissions: selectSend Messages,Read Message History,View Channels- Copy the generated URL and open it in your browser to invite the bot to your server
Wait for the user to provide the token.
Configure environment
Add to .env:
Channels auto-enable when their credentials are present — no extra configuration needed.
Sync to container environment:
The container reads environment from data/env/env, not .env directly.
Service name: Derived from the directory name:com.claudeclaw.<dirname>(macOS) /claudeclaw-<dirname>(Linux). For example, if cwd ismy-assistant, the service iscom.claudeclaw.my-assistant. Determine the correct service name before running service commands below.
Build and restart
Phase 4: Registration
Get Channel ID
Tell the user:
To get the channel ID for registration:1. In Discord, go to User Settings > Advanced > Enable Developer Mode2. Right-click the text channel you want the bot to respond in3. Click Copy Channel IDThe channel ID will be a long number like1234567890123456.
Wait for the user to provide the channel ID (format: dc:1234567890123456).
Register the channel
The channel ID, name, and folder name are needed. Use npx tsx setup/index.ts --step register with the appropriate flags.
For a main channel (responds to all messages):
For additional channels (trigger-only):
Phase 5: Verify
Test the connection
Tell the user:
Send a message in your registered Discord channel:- For main channel: Any message works- For non-main: @mention the bot in DiscordThe bot should respond within a few seconds.
Check logs if needed
Troubleshooting
Bot not responding
- Check
DISCORD_BOT_TOKENis set in.envAND synced todata/env/env - Check channel is registered:
sqlite3 store/messages.db "SELECT * FROM registered_groups WHERE jid LIKE 'dc:%'" - For non-main channels: message must include trigger pattern (@mention the bot)
- Service is running:
launchctl list | grep claudeclaw - Verify the bot has been invited to the server (check OAuth2 URL was used)
Bot only responds to @mentions
This is the default behavior for non-main channels (requiresTrigger: true). To change:
- Update the registered group's
requiresTriggertofalse - Or register the channel as the main channel
Message Content Intent not enabled
If the bot connects but can't read messages, ensure:
- Go to Discord Developer Portal
- Select your application > Bot tab
- Under Privileged Gateway Intents, enable Message Content Intent
- Restart ClaudeClaw
Getting Channel ID
If you can't copy the channel ID:
- Ensure Developer Mode is enabled: User Settings > Advanced > Developer Mode
- Right-click the channel name in the server sidebar > Copy Channel ID
After Setup
The Discord bot supports:
- Text messages in registered channels
- Attachment descriptions (images, videos, files shown as placeholders)
- Reply context (shows who the user is replying to)
- @mention translation (Discord
<@botId>→ ClaudeClaw trigger format) - Message splitting for responses over 2000 characters
- Typing indicators while the agent processes
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/add-discord/SKILL.md
Popularity
- Repository stars
- 173
- Repository forks
- 56
- 7-day trend score
- 26
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/sbusso/claudeclaw/add-discord)