skills/discord/SKILL.md
Build and automate Discord integrations (bots, webhooks, slash commands, and REST API workflows). Use when the user mentions Discord, a Discord server/guild, channels, webhooks, bot tokens, slash commands/application commands, discord.js, or discord.py.
npx skillsauth add openhands/skills discordInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when implementing or automating Discord integrations.
Incoming webhooks (best for one-way posting)
Bot token + REST API (two-way / richer automation)
https://discord.com/api/v10Authorization: Bot <token>.Interactions / slash commands (user-invoked commands)
DISCORD_WEBHOOK_URL for incoming webhooksDISCORD_BOT_TOKEN for bot REST API callsallowed_mentions to something strict (these examples use {"parse": []}) to avoid accidentally pinging @everyone / roles.retry_after/Retry-After, and don’t retry forever.Discord requires at least one of content, embeds, components, file, or poll.
curl -sS -X POST \
-H 'Content-Type: application/json' \
-d '{"content":"Hello from OpenHands","allowed_mentions":{"parse":[]}}' \
"$DISCORD_WEBHOOK_URL"
Endpoint: POST /channels/{channel_id}/messages (Create Message)
CHANNEL_ID="..."
curl -sS -X POST "https://discord.com/api/v10/channels/${CHANNEL_ID}/messages" \
-H "Authorization: Bot $DISCORD_BOT_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"content":"Hello from my bot","allowed_mentions":{"parse":[]}}'
Docs: https://discord.com/developers/docs/resources/channel#create-message
These scripts are self-contained and only use the Python standard library.
Post to a webhook:
python3 -m skills.discord.scripts.post_webhook --content "Build finished" --wait
Post to a channel using a bot token:
python3 -m skills.discord.scripts.send_message --channel-id "$CHANNEL_ID" --content "Hello"
Retry-After / retry_after and rate-limit headers when present.Docs: https://discord.com/developers/docs/topics/rate-limits
Docs: https://discord.com/developers/docs/interactions/application-commands
For more details (OAuth2 flows, command registration endpoints, troubleshooting), see:
tools
Create an automation that generates an async standup digest from Slack. Searches selected channels for messages since the previous workday, groups updates by project, highlights blockers and decisions, and posts a summary to a target channel.
tools
Create an automation that writes a recurring research brief. Uses Tavily MCP for web research and Notion MCP to publish the final brief with executive summary, implications, and source citations.
tools
Create an automation that triages new Linear issues. Inspects the issue title, description, team, customer, priority, and recent related issues via Linear MCP. Suggests labels, priority, likely owner, duplicates, and posts a clarifying comment.
tools
Create an automation that drafts incident retrospectives. Gathers incident-channel messages from Slack, collects linked tickets and follow-ups from Linear, and publishes a retrospective draft to Notion with a timeline, impact summary, root-cause hypotheses, and action items.