Discord (Via message)
SkillCommunicationDiscord ops via the message tool (channel=discord).
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Discord (Via message) skill
What this skill tells your AI
The instructions your AI receives, as published by openaeon/openaeon 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 legacyembedsonly when you must.
Targets
- Send-like actions:
to: "channel:<id>"orto: "user:<id>". - Message-specific actions:
channelId: "<id>"(orto) +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: trueto 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]"
}
componentsexpects Carbon component instances (Container, TextDisplay, etc.) from JS/TS integrations.- Do not combine
componentswithembeds(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." }]
}
embedsare 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
- 87
- Forks
- 20
- Last commit
- Jul 2026
- Hacker News mentions
- 20
ahel review
S4info
community integration — published by openaeon, not discord
Automated review, not a security audit. Ruleset v1.
ahel recommends instead
Advanced
- Catalog kind
- skill
- Gateway key
discord-openaeon- Source
- github.com/openaeon/openaeon