skills/discord/SKILL.md
Use the message tool with channel: "discord". No separate Discord tool.
channels.discord.actions.* gates.guildId, channelId, messageId, userId.accountId when needed.to: "channel:<id>" or to: "user:<id>".<@USER_ID>.components with legacy embeds.Send:
{ "action": "send", "channel": "discord", "to": "channel:123", "message": "hello", "silent": true }
Send media:
{
"action": "send",
"channel": "discord",
"to": "channel:123",
"message": "see attachment",
"media": "file:///tmp/example.png"
}
Components v2:
{
"action": "send",
"channel": "discord",
"to": "channel:123",
"message": "Status",
"components": "[Carbon v2 components]"
}
React:
{ "action": "react", "channel": "discord", "channelId": "123", "messageId": "456", "emoji": "👍" }
Read:
{ "action": "read", "channel": "discord", "to": "channel:123", "limit": 20 }
Edit/delete:
{
"action": "edit",
"channel": "discord",
"channelId": "123",
"messageId": "456",
"message": "fixed typo"
}
{ "action": "delete", "channel": "discord", "channelId": "123", "messageId": "456" }
Poll:
{
"action": "poll",
"channel": "discord",
"to": "channel:123",
"pollQuestion": "Lunch?",
"pollOption": ["Pizza", "Sushi"],
"pollDurationHours": 24
}
Pin:
{ "action": "pin", "channel": "discord", "channelId": "123", "messageId": "456" }
Thread:
{
"action": "thread-create",
"channel": "discord",
"channelId": "123",
"messageId": "456",
"threadName": "bug triage"
}
Search:
{
"action": "search",
"channel": "discord",
"guildId": "999",
"query": "release notes",
"channelIds": ["123"],
"limit": 10
}
Presence, often gated:
{
"action": "set-presence",
"channel": "discord",
"activityType": "playing",
"activityName": "OpenClaw",
"status": "online"
}