Discord (Via message)

SkillSearch

Lets your agent send, read, edit, delete, and search Discord messages, reactions, polls, pins, and threads.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Discord (Via message) skill

About this capability

Send, read, edit, delete, and search Discord messages, reactions, polls, pins, and threads via the message tool. Use when interacting with Discord channels, sending media or embeds, creating polls or threads, managing presence, or moderating messages.

What this skill tells your AI

The instructions your AI receives, as published by bitterbot-ai/bitterbot-desktop in skills/discord/SKILL.md and read by ahel’s review.

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:

{
  "action": "send",
  "channel": "discord",
  "to": "channel:123",
  "message": "hello",
  "silent": true
}

Send with media:

{
  "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):

{
  "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):

{
  "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:

{
  "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", "Salad"],
  "pollMulti": false,
  "pollDurationHours": 24
}

Pins:

{
  "action": "pin",
  "channel": "discord",
  "channelId": "123",
  "messageId": "456"
}

Threads:

{
  "action": "thread-create",
  "channel": "discord",
  "channelId": "123",
  "messageId": "456",
  "threadName": "bug triage"
}

Search:

{
  "action": "search",
  "channel": "discord",
  "guildId": "999",
  "query": "release notes",
  "channelIds": ["123", "456"],
  "limit": 10
}

Presence (often gated):

{
  "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>.

Signals

GitHub stars
2k
Forks
417
Last commit
Sep 2026
Hacker News mentions
20

ahel review

  • S4info
    community integration — published by bitterbot-ai, not discord

Automated review, not a security audit. Ruleset v1.

Advanced
Catalog kind
skill
Gateway key
discord-bitterbot-ai
Source
github.com/bitterbot-ai/bitterbot-desktop