# Send Discord to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "discord",
    "name": "Discord",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/steipete/discord",
    "canonicalUrl": "https://clawhub.ai/steipete/discord",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/discord",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=discord",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "discord",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-02T14:27:06.809Z",
      "expiresAt": "2026-05-09T14:27:06.809Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=discord",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=discord",
        "contentDisposition": "attachment; filename=\"discord-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "discord"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/discord"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/discord",
    "downloadUrl": "https://openagent3.xyz/downloads/discord",
    "agentUrl": "https://openagent3.xyz/skills/discord/agent",
    "manifestUrl": "https://openagent3.xyz/skills/discord/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/discord/agent.md"
  }
}
```
## Documentation

### 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:<id> or user:<id>). 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:<id>" format, not channelId. Other actions like react, readMessages, editMessage use channelId directly.

### 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:<id> 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:<id> or user:<id> 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?
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: steipete
- Version: 1.0.1
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-02T14:27:06.809Z
- Expires at: 2026-05-09T14:27:06.809Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/discord)
- [Send to Agent page](https://openagent3.xyz/skills/discord/agent)
- [JSON manifest](https://openagent3.xyz/skills/discord/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/discord/agent.md)
- [Download page](https://openagent3.xyz/downloads/discord)