
Handles Discord operations through Claude's unified message tool rather than a bespoke integration. You send messages, react, pin, create threads, search history, and run polls by setting channel to "discord" and passing action-specific parameters. The skill pushes you toward Discord's v2 component system for rich UI instead of legacy embeds, which is the right call if you're building anything interactive. Gating is built in for sensitive operations like role management and presence updates. If you're wiring Claude into a Discord community or ops workflow, this gives you the primitives without fighting a custom API wrapper.
$ npx -y skills add steipete/clawdis --skill discord --agent claude-codeInstalls into .claude/skills of the current project.
Use the message tool with channel: "discord". The tool schema lists the actions enabled by the current account's channels.discord.actions.* gates; do not assume unavailable actions.
guildId, channelId, messageId, and userId values from context. Pass accountId when more than one Discord account could apply.components must be a structured object or native component array, never a placeholder string. Do not combine components v2 with legacy embeds.
{
"action": "send",
"channel": "discord",
"to": "channel:123",
"message": "Choose an option",
"components": {
"blocks": [
{
"type": "actions",
"buttons": [
{ "label": "Approve", "style": "success", "callbackData": "approve" },
{ "label": "Decline", "style": "danger", "callbackData": "decline" }
]
}
]
}
}
Discord mention syntax, component availability, and form hints are injected automatically. Follow the current hints and tool schema rather than a duplicated action catalog.
Sponsors