🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Discord

by @fresh3

Control Discord via Clawdbot to send messages, react, post stickers/emojis, run polls, manage threads/pins/search, fetch info, and moderate channels or DMs.

Versionv1.0.2
Downloads650
Stars⭐ 1
TERMINAL
clawhub install taizi-discord

πŸ“– About This Skill


name: discord description: Use when you need to control Discord from Clawdbot via the discord tool: send messages, react, post or upload stickers, upload emojis, run polls, manage threads/pins/search, fetch permissions or member/role/channel info, or handle moderation actions in Discord DMs or channels.

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 https://... 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

    {
      "action": "react",
      "channelId": "123",
      "messageId": "456",
      "emoji": "βœ…"
    }
    

    List reactions + users

    {
      "action": "reactions",
      "channelId": "123",
      "messageId": "456",
      "limit": 100
    }
    

    Send a sticker

    {
      "action": "sticker",
      "to": "channel:123",
      "stickerIds": ["9876543210"],
      "content": "Nice work!"
    }
    

  • Up to 3 sticker IDs per message.
  • to can be user: for DMs.
  • Upload a custom emoji

    {
      "action": "emojiUpload",
      "guildId": "999",
      "name": "party_blob",
      "mediaUrl": "file:///tmp/party.png",
      "roleIds": ["222"]
    }
    

  • Emoji images must be PNG/JPG/GIF and <= 256KB.
  • roleIds is optional; omit to make the emoji available to everyone.
  • Upload a sticker

    {
      "action": "stickerUpload",
      "guildId": "999",
      "name": "clawdbot_wave",
      "description": "Clawdbot waving hello",
      "tags": "πŸ‘‹",
      "mediaUrl": "file:///tmp/wave.png"
    }
    

  • Stickers require name, description, and tags.
  • Uploads must be PNG/APNG/Lottie JSON and <= 512KB.
  • Create a poll

    {
      "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).
  • Check bot permissions for a channel

    {
      "action": "permissions",
      "channelId": "123"
    }
    

    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

    {
      "action": "readMessages",
      "channelId": "123",
      "limit": 20
    }
    

    Send/edit/delete a message

    {
      "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: or user: for DMs (not channelId!)
  • mediaUrl supports local files (file:///path/to/file) and remote URLs (https://...)
  • 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?