From sundial-org-awesome-openclaw-skills-4
Controls Discord via Clawdbot bot: send messages, react, upload emojis/stickers, create polls, manage threads, pins, search, and handle moderation in channels and DMs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sundial-org-awesome-openclaw-skills-4:discordThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use `discord` to manage messages, reactions, threads, polls, and moderation. You can disable groups via `discord.actions.*` (defaults to enabled, except roles/moderation). The tool uses the bot token configured for Clawdbot.
Use discord to manage messages, reactions, threads, polls, and moderation. You can disable groups via discord.actions.* (defaults to enabled, except roles/moderation). The tool uses the bot token configured for Clawdbot.
channelId, messageId, and an emoji.to target (channel:<id> or user:<id>). Optional content text.question plus 2–10 answers.mediaUrl with file:///path for local files or https://... for remote.guildId, name, mediaUrl, optional roleIds (limit 256KB, PNG/JPG/GIF).guildId, name, description, tags, mediaUrl (limit 512KB, PNG/APNG/Lottie JSON).Message context lines include discord message id and channel fields you can reuse directly.
Note: sendMessage uses to: "channel:<id>" format, not channelId. Other actions like react, readMessages, editMessage use channelId directly.
{
"action": "react",
"channelId": "123",
"messageId": "456",
"emoji": "✅"
}
{
"action": "reactions",
"channelId": "123",
"messageId": "456",
"limit": 100
}
{
"action": "sticker",
"to": "channel:123",
"stickerIds": ["9876543210"],
"content": "Nice work!"
}
to can be user:<id> for DMs.{
"action": "emojiUpload",
"guildId": "999",
"name": "party_blob",
"mediaUrl": "file:///tmp/party.png",
"roleIds": ["222"]
}
roleIds is optional; omit to make the emoji available to everyone.{
"action": "stickerUpload",
"guildId": "999",
"name": "clawdbot_wave",
"description": "Clawdbot waving hello",
"tags": "👋",
"mediaUrl": "file:///tmp/wave.png"
}
name, description, and tags.{
"action": "poll",
"to": "channel:123",
"question": "Lunch?",
"answers": ["Pizza", "Sushi", "Salad"],
"allowMultiselect": false,
"durationHours": 24,
"content": "Vote now"
}
durationHours defaults to 24; max 32 days (768 hours).{
"action": "permissions",
"channelId": "123"
}
Use discord.actions.* to disable action groups:
reactions (react + reactions list + emojiList)stickers, polls, permissions, messages, threads, pins, searchemojiUploads, stickerUploadsmemberInfo, roleInfo, channelInfo, voiceStatus, eventsroles (role add/remove, default false)moderation (timeout/kick/ban, default false){
"action": "readMessages",
"channelId": "123",
"limit": 20
}
{
"action": "sendMessage",
"to": "channel:123",
"content": "Hello from Clawdbot"
}
With media attachment:
{
"action": "sendMessage",
"to": "channel:123",
"content": "Check out this audio!",
"mediaUrl": "file:///tmp/audio.mp3"
}
to uses format channel:<id> or user:<id> for DMs (not channelId!)mediaUrl supports local files (file:///path/to/file) and remote URLs (https://...)replyTo with a message ID to reply to a specific message{
"action": "editMessage",
"channelId": "123",
"messageId": "456",
"content": "Fixed typo"
}
{
"action": "deleteMessage",
"channelId": "123",
"messageId": "456"
}
{
"action": "threadCreate",
"channelId": "123",
"name": "Bug triage",
"messageId": "456"
}
{
"action": "threadList",
"guildId": "999"
}
{
"action": "threadReply",
"channelId": "777",
"content": "Replying in thread"
}
{
"action": "pinMessage",
"channelId": "123",
"messageId": "456"
}
{
"action": "listPins",
"channelId": "123"
}
{
"action": "searchMessages",
"guildId": "999",
"content": "release notes",
"channelIds": ["123", "456"],
"limit": 10
}
{
"action": "memberInfo",
"guildId": "999",
"userId": "111"
}
{
"action": "roleInfo",
"guildId": "999"
}
{
"action": "emojiList",
"guildId": "999"
}
{
"action": "roleAdd",
"guildId": "999",
"userId": "111",
"roleId": "222"
}
{
"action": "channelInfo",
"channelId": "123"
}
{
"action": "channelList",
"guildId": "999"
}
{
"action": "voiceStatus",
"guildId": "999",
"userId": "111"
}
{
"action": "eventList",
"guildId": "999"
}
{
"action": "timeout",
"guildId": "999",
"userId": "111",
"durationMinutes": 10
}
Keep it conversational! Discord is a chat platform, not documentation.
| text |)## Headers for casual chat (use bold or CAPS for emphasis)code for technical termsquotes for referencing
<> to suppress embeds❌ Bad:
I'd be happy to help with that! Here's a comprehensive overview of the versioning strategies available:
## Semantic Versioning
Semver uses MAJOR.MINOR.PATCH format where...
## Calendar Versioning
CalVer uses date-based versions like...
✅ Good:
versioning options: semver (1.2.3), calver (2026.01.04), or yolo (`latest` forever). what fits your release cadence?
npx claudepluginhub sundial-org/awesome-openclaw-skillsSends messages, rich embeds, and marketing content to Discord channels via webhooks or the Bot API. Handles community engagement, announcements, and automated posting.
Sends, replies, searches, reads, reacts to, edits, and deletes messages in Discord channels. Useful for communicating with Discord or checking channel activity.
Enables Claude Code to interact with Discord servers: send messages, read channels, manage reactions, list servers, and switch servers. Uses automatic token extraction or QR code sign-in.