Agent skill

Discord

by OpenHands in OpenHands/extensions

Build and automate Discord integrations (bots, webhooks, slash commands, and REST API workflows).

MITAuto-check passedBackend & APIs

Install Discord

skills CLI
$ npx skills add OpenHands/extensions --skill discord -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install OpenHands/extensions discord --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/OpenHands/extensions.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/discord .claude/skills/discord && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
discord
GitHub stars
157
Token cost
~1.1k tokens
SKILL.md length
392 words
Files
11 (incl. scripts, references)
Skills in repo
78
Repo updated
First seen
Licence
MIT

At a glance

Build and automate Discord integrations (bots, webhooks, slash commands, and REST API workflows).

  • Works in 3 steps: Incoming webhooks (best for one-way… → Bot token + REST API (two-way / richer… → Interactions / slash commands…
  • The user mentions Discord
  • SKILL.md covers Pick the right approach, Secrets & safety, Footguns / safety notes (read… and Quick recipes, plus 4 more sections
  • Runs Python scripts from its folder; calls curl and python3; reaches discord.com; needs DISCORD_BOT_TOKEN

What it does

Discord is an agent skill from OpenHands/extensions. 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.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including scripts and reference files (for example `.plugin/plugin.json`, `README.md` and `__init__.py`).

It sits in Backend & APIs, covering Webhooks, Hooks and plugins and REST APIs. It works with Discord. The repository describes itself as: Public registry for OpenHands extensions. The licence is MIT.

When your agent uses it

  • The user mentions Discord
  • A Discord server/guild
  • Slash commands/application commands

Example prompts

  • “/discord”

Requirements

  • Python 3
  • A credential in DISCORD_BOT_TOKEN

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Incoming webhooks (best for one-way posting)
  2. Bot token + REST API (two-way / richer automation)
  3. Interactions / slash commands (user-invoked commands)

What it can do on your machine

Read from SKILL.md and the folder at commit d008b81. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 4 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • curl
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • discord.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • DISCORD_BOT_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Discord loads about 1.1k tokens when it runs, and up to ~1.8k if it reads all its reference files. Until then it costs about 65 tokens; SKILL.md has 392 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from OpenHands/extensions at commit d008b81, republished under its MIT licence (© OpenHands). 392 words, ~1,085 tokens.

Download SKILL.mdSave it as .claude/skills/discord/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.
name
discord
description
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.
triggers
discord, discord api, discord bot, discord webhook, discord.js, discord.py

Discord

Use this skill when implementing or automating Discord integrations.

Pick the right approach

  1. Incoming webhooks (best for one-way posting)

  2. Bot token + REST API (two-way / richer automation)

    • Use when you need to post as a bot, manage channels, read history, moderate, etc.
    • REST API base: https://discord.com/api/v10
    • Most REST calls use Authorization: Bot <token>.
  3. Interactions / slash commands (user-invoked commands)

    • Use application commands and interaction webhooks.
    • Typically requires running a web server to receive interactions and respond quickly.

Secrets & safety

  • Never hard-code tokens. Use environment variables:
    • DISCORD_WEBHOOK_URL for incoming webhooks
    • DISCORD_BOT_TOKEN for bot REST API calls
  • Treat webhook URLs as secrets (they include a token).
  • Do not automate normal user accounts (“self-bots”). Use official bot/OAuth flows.

Footguns / safety notes (read this)

  • Webhook URLs are secrets (the token is embedded in the URL). Don’t paste them into issues, logs, CI output, or chat.
  • Mentions are dangerous by default: always set allowed_mentions to something strict (these examples use {"parse": []}) to avoid accidentally pinging @everyone / roles.
  • Watch for accidental secret logging:
    • If you build your own scripts, avoid including full webhook URLs in exception messages.
    • The bundled scripts sanitize webhook URLs in error output, but you should still avoid printing the URL yourself.
  • Rate limits: handle HTTP 429 with retry_after/Retry-After, and don’t retry forever.

Quick recipes

The shell snippets below use POSIX-style environment variables and line continuations. On Windows PowerShell, use curl.exe for the shown flags and $env:DISCORD_WEBHOOK_URL / $env:DISCORD_BOT_TOKEN for environment variables, or translate the request to Invoke-RestMethod.

Show full SKILL.md (148 more words)Show less
Post a message via an incoming webhook (recommended)

Discord requires at least one of content, embeds, components, file, or poll.

bash
curl -sS -X POST \
  -H 'Content-Type: application/json' \
  -d '{"content":"Hello from OpenHands","allowed_mentions":{"parse":[]}}' \
  "$DISCORD_WEBHOOK_URL"
Post a message to a channel with a bot token

Endpoint: POST /channels/{channel_id}/messages (Create Message)

bash
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

Automation scripts (bundled)

These scripts are self-contained and only use the Python standard library.

  • Post to a webhook:

    bash
    python3 -m skills.discord.scripts.post_webhook --content "Build finished" --wait
  • Post to a channel using a bot token:

    bash
    python3 -m skills.discord.scripts.send_message --channel-id "$CHANNEL_ID" --content "Hello"

Rate limits

  • Don’t hard-code limits. Use Discord’s Retry-After / retry_after and rate-limit headers when present.
  • On HTTP 429, wait for the provided delay (clamp to a sane maximum, add small jitter), then retry.

Docs: https://discord.com/developers/docs/topics/rate-limits

Slash commands / application commands

  • Use guild commands for fast iteration (instant updates).
  • Use global commands when ready; propagation can take longer.

Docs: https://discord.com/developers/docs/interactions/application-commands

Reference

For more details (OAuth2 flows, command registration endpoints, troubleshooting), see:

© OpenHands, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 10 other files (scripts, references) in skills/discord of OpenHands/extensions.

  • SKILL.md
  • .claude-plugin
  • .codex-plugin
  • .plugin/plugin.json
  • README.md
  • __init__.py
  • references/REFERENCE.md
  • scripts/__init__.py
  • scripts/_http.py
  • scripts/post_webhook.py
  • scripts/send_message.py

Open the folder on GitHubat commit d008b81

Compare with similar skills

Discord next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Discord compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Discord this skillOpenHands/extensions157—~1.1kAutomated safety check: PassMIT
Chat SDKdatabuddy-analytics/Databuddy1.2k—~2.6kAutomated safety check: PassAGPL-3.0
API Patternsdilolabs/nosia2131 repos~2.5kAutomated safety check: PassMIT
Discord Php Bot Securitydiscord-php/DiscordPHP1.1k—~1.2kAutomated safety check: NotesMIT
Loops APIopeninary/openinary412—~1.1kAutomated safety check: PassAGPL-3.0
Verifygregluffy/HomeLabInfo102—~424Automated safety check: PassGPL-3.0

Similar skills

  • Chat SDK

    databuddy-analytics/Databuddy

    Build multi-platform chat bots with Chat SDK (chat npm package).

    1.2k GitHub stars~2.6k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • API Patterns

    dilolabs/nosia

    Builds REST APIs using respondto blocks with Jbuilder templates following the 37signals same-controllers-different-formats philosophy.

    213 GitHub starsUsed in 1 repo~2.5k tokens
    Backend & APIsAuto-check passed
  • Discord Php Bot Security

    discord-php/DiscordPHP

    Audit checklist for DiscordPHP bots and API libraries — stop the bot token leaking to third-party APIs or logs, keep secrets out of customids and exception messages, use constant-time comparison and…

    1.1k GitHub stars~1.2k tokensUpdated yesterday
    Backend & APIsAuto-check: notes
  • Loops API

    openinary/openinary

    A skill your agent uses whenever the user wants to integrate Loops from application code, backend services, webhook handlers, or server-side automation.

    412 GitHub stars~1.1k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • Verify

    gregluffy/HomeLabInfo

    Build, run, and drive the HomeLabInfo backend to verify changes at its real surfaces (REST API, UDP DHCP listener, outgoing webhooks).

    102 GitHub stars~424 tokensUpdated 2 mo ago
    Backend & APIsAuto-check passed
  • Frappe Core API

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when building ERPNext/Frappe API integrations (v14/v15/v16) including REST API, RPC API, authentication, webhooks, and rate limiting.

    187 GitHub starsUsed in 1 repo~3.2k tokens
    Backend & APIsAuto-check passed

More from OpenHands/extensions

All 78 skills in this repo
  • Agent Readiness Report

    OpenHands/extensions

    Evaluate how well a codebase supports autonomous AI-assisted development.

    157 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • GitHub

    OpenHands/extensions

    Interact with GitHub repositories, pull requests, issues, and workflows using the GITHUBTOKEN environment variable and GitHub CLI.

    157 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • GitHub Issue To PR

    OpenHands/extensions

    Create an automation that implements GitHub issues when a configurable trigger label is applied.

    157 GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • GitHub Repo Monitor

    OpenHands/extensions

    This skill should be used when the user asks to "monitor a GitHub repository", "watch GitHub for issues or PRs", "respond to @OpenHands mentions on GitHub", "set up an OpenHands GitHub integration"…

    157 GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • GitLab Issue To Mr

    OpenHands/extensions

    Create an automation that implements GitLab issues when a configurable trigger label is applied.

    157 GitHub stars~4.9k tokensUpdated today
    Auto-check passed
  • Jira Issue To PR

    OpenHands/extensions

    This skill should be used when the user asks to "set up a Jira automation to create pull requests", "poll Jira for create-pr issues", "automatically create GitHub PRs from Jira tickets", "deploy a…

    157 GitHub stars~4.1k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Discord

What does Discord do?

Build and automate Discord integrations (bots, webhooks, slash commands, and REST API workflows). Discord is an agent skill from OpenHands/extensions. Build and automate Discord integrations (bots, webhooks, slash commands, and REST API workflows).

When should I use Discord?

Discord fits situations like: the user mentions Discord; A Discord server/guild; slash commands/application commands.

How do I install Discord in Claude Code?

Run `npx skills add OpenHands/extensions --skill discord -a claude-code`. Or copy the skill folder (skills/discord in OpenHands/extensions) into .claude/skills/discord in your project. Claude Code loads it when a task matches its description.

How do I install Discord in Codex?

Run `npx skills add OpenHands/extensions --skill discord -a codex`. Or copy the skill folder (skills/discord in OpenHands/extensions) into .agents/skills/discord in your project. Codex loads it when a task matches its description.

Can I use Discord in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OpenHands/extensions --skill discord -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/discord, .gemini/skills/discord, .github/skills/discord and .opencode/skills/discord in your project.

What does Discord need to run?

Going by SKILL.md and its folder, Discord needs Python for the scripts in its folder, the command-line tools its instructions call (curl and python3) and credentials named DISCORD_BOT_TOKEN. Our summary lists: Python 3; A credential in DISCORD_BOT_TOKEN.

Does Discord access the network?

SKILL.md names 1 domain. In commands or code: discord.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Discord safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Discord use?

Discord is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Discord use?

About 1.1k tokens (SKILL.md is roughly 4.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 716 tokens, read only when the agent opens those files.

What are the alternatives to Discord?

Skills that share tags, products or a category with Discord: Chat SDK (databuddy-analytics/Databuddy, 1.2k stars), API Patterns (dilolabs/nosia, 213 stars), Discord Php Bot Security (discord-php/DiscordPHP, 1.1k stars) and Loops API (openinary/openinary, 412 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Discord?

OpenHands (a GitHub organization) maintains it in OpenHands/extensions, which has 157 GitHub stars. The repository holds 78 skills in this directory. The repository was last updated on October 6, 2026.

Source: OpenHands/extensions on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.