Labsco
firecrawl logo

discord

✓ Official3

by firecrawl · part of firecrawl/openclaw

Discord ops via the message tool (channel=discord).

🔥🔥🔥✓ VerifiedFreeQuick setup
🧰 Not standalone. This skill ships with firecrawl/openclaw and only works together with that tool — install the tool first, then add this skill.

Discord ops via the message tool (channel=discord).

Inspect the full instructions your agent will receiveExpand

This is the exact playbook injected into your agent when the skill activates — shown here so you can audit it before installing. You don't need to read it to use the skill.

by firecrawl

Discord ops via the message tool (channel=discord). npx skills add https://github.com/firecrawl/openclaw --skill discord Download ZIPGitHub3

Discord (Via message)

Use the message tool. No provider-specific discord tool exposed to the agent.

Musts

  • Always: channel: "discord".

  • Respect gating: channels.discord.actions.* (some default off: roles, moderation, presence, channels).

  • Prefer explicit ids: guildId, channelId, messageId, userId.

  • Multi-account: optional accountId.

Guidelines

  • Avoid Markdown tables in outbound Discord messages.

  • Mention users as <@USER_ID>.

  • Prefer Discord components v2 (components) for rich UI; use legacy embeds only when you must.

Targets

  • Send-like actions: to: "channel:<id>" or to: "user:<id>".

  • Message-specific actions: channelId: "<id>" (or to) + messageId: "<id>".

Common Actions (Examples)

Send message:

Copy & paste — that's it
{
 "action": "send",
 "channel": "discord",
 "to": "channel:123",
 "message": "hello",
 "silent": true
}

Send with media:

Copy & paste — that's it
{
 "action": "send",
 "channel": "discord",
 "to": "channel:123",
 "message": "see attachment",
 "media": "file:///tmp/example.png"
}
  • Optional silent: true to suppress Discord notifications.

Send with components v2 (recommended for rich UI):

Copy & paste — that's it
{
 "action": "send",
 "channel": "discord",
 "to": "channel:123",
 "message": "Status update",
 "components": "[Carbon v2 components]"
}
  • components expects Carbon component instances (Container, TextDisplay, etc.) from JS/TS integrations.

  • Do not combine components with embeds (Discord rejects v2 + embeds).

Legacy embeds (not recommended):

Copy & paste — that's it
{
 "action": "send",
 "channel": "discord",
 "to": "channel:123",
 "message": "Status update",
 "embeds": [{ "title": "Legacy", "description": "Embeds are legacy." }]
}
  • embeds are ignored when components v2 are present.

React:

Copy & paste — that's it
{
 "action": "react",
 "channel": "discord",
 "channelId": "123",
 "messageId": "456",
 "emoji": "✅"
}

Read:

Copy & paste — that's it
{
 "action": "read",
 "channel": "discord",
 "to": "channel:123",
 "limit": 20
}

Edit / delete:

Copy & paste — that's it
{
 "action": "edit",
 "channel": "discord",
 "channelId": "123",
 "messageId": "456",
 "message": "fixed typo"
}
Copy & paste — that's it
{
 "action": "delete",
 "channel": "discord",
 "channelId": "123",
 "messageId": "456"
}

Poll:

Copy & paste — that's it
{
 "action": "poll",
 "channel": "discord",
 "to": "channel:123",
 "pollQuestion": "Lunch?",
 "pollOption": ["Pizza", "Sushi", "Salad"],
 "pollMulti": false,
 "pollDurationHours": 24
}

Pins:

Copy & paste — that's it
{
 "action": "pin",
 "channel": "discord",
 "channelId": "123",
 "messageId": "456"
}

Threads:

Copy & paste — that's it
{
 "action": "thread-create",
 "channel": "discord",
 "channelId": "123",
 "messageId": "456",
 "threadName": "bug triage"
}

Search:

Copy & paste — that's it
{
 "action": "search",
 "channel": "discord",
 "guildId": "999",
 "query": "release notes",
 "channelIds": ["123", "456"],
 "limit": 10
}

Presence (often gated):

Copy & paste — that's it
{
 "action": "set-presence",
 "channel": "discord",
 "activityType": "playing",
 "activityName": "with fire",
 "status": "online"
}

Writing Style (Discord)

  • Short, conversational, low ceremony.

  • No markdown tables.

  • Mention users as <@USER_ID>.