Web & Frontend DevelopmentDocumentedScanned

discord

Use when you need to control Discord from Clawdbot via the discord tool: send messages, react.

Share:

Installation

npx clawhub@latest install discord

View the full skill documentation and source below.

Documentation

Discord Actions

Overview

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.

Inputs to collect

  • For reactions: channelId, messageId, and an emoji.
  • For stickers/polls/sendMessage: a to target (channel: or user:). Optional content text.
  • Polls also need a question plus 2–10 answers.
  • For media: mediaUrl with file:///path for local files or for remote. - For emoji uploads: guildId, name, mediaUrl, optional roleIds (limit 256KB, PNG/JPG/GIF). - For sticker uploads: 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:" format, not channelId. Other actions like react, readMessages, editMessage use channelId directly. ## Actions ### React to a message __CODE_BLOCK_0__ ### List reactions + users __CODE_BLOCK_1__ ### Send a sticker __CODE_BLOCK_2__ - Up to 3 sticker IDs per message. - to can be user: for DMs. ### Upload a custom emoji __CODE_BLOCK_3__ - Emoji images must be PNG/JPG/GIF and <= 256KB. - roleIds is optional; omit to make the emoji available to everyone. ### Upload a sticker __CODE_BLOCK_4__ - Stickers require name, description, and tags. - Uploads must be PNG/APNG/Lottie JSON and <= 512KB. ### Create a poll __CODE_BLOCK_5__ - durationHours defaults to 24; max 32 days (768 hours). ### Check bot permissions for a channel __CODE_BLOCK_6__ ## Ideas to try - React with ✅/⚠️ to mark status updates. - Post a quick poll for release decisions or meeting times. - Send celebratory stickers after successful deploys. - Upload new emojis/stickers for release moments. - Run weekly “priority check” polls in team channels. - DM stickers as acknowledgements when a user’s request is completed. ## Action gating Use discord.actions.* to disable action groups: - reactions (react + reactions list + emojiList) - stickers, polls, permissions, messages, threads, pins, search - emojiUploads, stickerUploads - memberInfo, roleInfo, channelInfo, voiceStatus, events - roles (role add/remove, default false) - moderation (timeout/kick/ban, default false) ### Read recent messages __CODE_BLOCK_7__ ### Send/edit/delete a message __CODE_BLOCK_8__ **With media attachment:** __CODE_BLOCK_9__ - to uses format channel: or user: for DMs (not channelId!) - mediaUrl supports local files (file:///path/to/file) and remote URLs ()
  • Optional 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"
}

Threads

{
  "action": "threadCreate",
  "channelId": "123",
  "name": "Bug triage",
  "messageId": "456"
}
{
  "action": "threadList",
  "guildId": "999"
}
{
  "action": "threadReply",
  "channelId": "777",
  "content": "Replying in thread"
}

Pins

{
  "action": "pinMessage",
  "channelId": "123",
  "messageId": "456"
}
{
  "action": "listPins",
  "channelId": "123"
}

Search messages

{
  "action": "searchMessages",
  "guildId": "999",
  "content": "release notes",
  "channelIds": ["123", "456"],
  "limit": 10
}

Member + role info

{
  "action": "memberInfo",
  "guildId": "999",
  "userId": "111"
}
{
  "action": "roleInfo",
  "guildId": "999"
}

List available custom emojis

{
  "action": "emojiList",
  "guildId": "999"
}

Role changes (disabled by default)

{
  "action": "roleAdd",
  "guildId": "999",
  "userId": "111",
  "roleId": "222"
}

Channel info

{
  "action": "channelInfo",
  "channelId": "123"
}
{
  "action": "channelList",
  "guildId": "999"
}

Voice status

{
  "action": "voiceStatus",
  "guildId": "999",
  "userId": "111"
}

Scheduled events

{
  "action": "eventList",
  "guildId": "999"
}

Moderation (disabled by default)

{
  "action": "timeout",
  "guildId": "999",
  "userId": "111",
  "durationMinutes": 10
}

Discord Writing Style Guide

Keep it conversational! Discord is a chat platform, not documentation.

Do

  • Short, punchy messages (1-3 sentences ideal)
  • Multiple quick replies > one wall of text
  • Use emoji for tone/emphasis 🦞
  • Lowercase casual style is fine
  • Break up info into digestible chunks
  • Match the energy of the conversation

Don't

  • No markdown tables (Discord renders them as ugly raw | text |)
  • No ## Headers for casual chat (use bold or CAPS for emphasis)
  • Avoid multi-paragraph essays
  • Don't over-explain simple things
  • Skip the "I'd be happy to help!" fluff

Formatting that works

  • bold for emphasis
  • code for technical terms
  • Lists for multiple items
  • > quotes for referencing
  • Wrap multiple links in <> to suppress embeds

Example transformations

❌ 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?