Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/acedatacloud-discord
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 3
codeload.github.com· found in install commandgithub.com· found in codestudio.acedata.cloud· found in code
Files it touches
~/.claude/skills/discord
What's inside
- Skill name
discord- Description
- Work with the user's Discord account. Two modes, auto-selected by how they connected — OAuth (read-only identity and server list) or User Token / BYOC (full personal-account actions — list channels, read messages, send and reply). Use when the user mentions Discord, asks which servers they are in, or wants to read/post in a channel as themselves.
- License
- Apache-2.0
- Metadata
- author: acedatacloud · version: 2.0
- Instructions
- 104 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions call the network
Files (2)
- SKILL.md
- discord_user.py · scripts/
SKILL.md (first lines)
# discord — work with the user's Discord account
This skill has **two modes**, picked automatically by which credential the
connector injected. Check the environment first and follow the matching section:
- **`$DISCORD_USER_TOKEN` is set** → **User Token (BYOC) mode**: full
personal-account actions via the `scripts/discord_user.py` CLI (list channels, read
messages, send / reply). This acts as the user's **real account**.
- **only `$DISCORD_TOKEN` is set** → **OAuth mode**: read-only identity + server
list via `curl`. Channel messages are **not** available in this mode.
```sh
if [ -n "$DISCORD_USER_TOKEN" ]; then echo "mode: user-token (full)"; \
elif [ -n "$DISCORD_TOKEN" ]; then echo "mode: oauth (read-only)"; \
else echo "no Discord connection — connect at https://studio.acedata.cloud/console/connectors"; fi
```
Both tokens are **secret — full account access. Never echo or print them.** On
`401`, the token expired or was revoked — tell the user to reconnect at
`studio.acedata.cloud/console/connectors`. On `429`, sleep the `retry_after`
seconds, then retry; never parallelize.
---
## User Token (BYOC) mode — full actions
When `$DISCORD_USER_TOKEN` is set, drive the user's real account through
[`discord.py-self`](https://github.com/dolfies/discord.py-self) via the CLI at
`scripts/discord_user.py` (run with `python3`). It logs in with the token only (no
gateway) and prints JSON.
`discord.py-self` is preinstalled in the hosted sandbox (import name `discord`).
Do **not** `pip install` it at runtime; if import fails, report that the sandbox
image is missing the dependency and stop.
**Writes (`send` / `reply`) are gated by a trailing `--confirm`.** Without it
they dry-run and print what they *would* send. **Confirm the exact channel and
content with the user before sending** — it's irreversible and public. Only
append `--confirm` (as the very last argument) once the user approves.
```sh
# identity (always run first)
python3 scripts/discord_user.py whoami
# list the servers (guilds) the account is in
python3 scripts/discord_user.py guilds
# list text channels in a server
python3 scripts/discord_user.py channels --guild GUILD_ID
# read recent messages in a channel
python3 scripts/discord_user.py messages --channel CHANNEL_ID --limit 20
# send — dry-run first, then re-run with a trailing --confirm
python3 scripts/discord_user.py send --channel CHANNEL_ID --text "hello"
python3 scripts/discord_user.py send --channel CHANNEL_ID --text "hello" --confirm
# reply to a specific message
python3 scripts/discord_user.py reply \
--channel CHANNEL_ID --message MESSAGE_ID --text "on it" --confirm
```
`--confirm` is honored ONLY as the final argument (one strip), so a message body
that merely contains the text `--confirm` can never silently trigger a send. IDs
are numeric Discord snowflakes. A proxy can be forced via `DISCORD_PROXY` (falls
back to `HTTPS_PROXY` / `ALL_PROXY`) if the sandbox needs one to reach
`discord.com`.
---
## OAuth mode — read-only
When only `$DISCORD_TOKEN` is set, drive the
[Discord API](https://discord.com/developers/docs/reference) with `curl + jq`.
Auth header is `Authorization: Bearer $DISCORD_TOKEN`; base URL
`https://discord.com/api/v10`.
**Scope is read-only `identify` + `email` + `guilds`.** This mode can ONLY read
the account's identity and its guild list. It CANNOT read/send channel messages,
list a guild's channels or members, or manage anything — `/guilds/{id}/channels`,
`/channels/...`, `/guilds/{id}/members` return 401/403 with an OAuth token. If the
user needs those, they must connect Discord with a **User Token** (the BYOC mode
above), or use a **Discord Bot** (`discordbot` connection) to act as a bot.
```sh
# identity (always run first)
curl -sS -H "Authorization: Bearer $DISCORD_TOKEN" \
"https://discord.com/api/v10/users/@me" \
| jq '{id, username, global_name, email, avatar}'
# the servers (guilds) the user is in (add ?with_counts=true for member counts)
curl -sS -H "Authorization: Bearer $DISCORD_TOKEN" \
"https://discord.com/api/v10/users/@me/guilds?with_counts=true" \
| jq 'map({id, name, owner, members: .approximate_member_count})'
```
---
## Notes
- A "server" in the UI is a "guild" in the API; messages live in channels inside
guilds. In User Token mode: `guilds` → `channels --guild <id>` → act on a
channel id. Don't invent ids.
- In OAuth mode, `owner: true` means the user owns that guild. Guild icon URL
(when `icon` is non-null): `https://cdn.discordapp.com/icons/<guild_id>/<icon>.png`
(use `.gif` if the hash starts with `a_`). The guild list paginates at 200;
paginate with `?after=<last_guild_id>` if you ever hit it.From AceDataCloud/Skills, Apache-2.0.
More from AceDataCloud/Skills
- 0.646score
didi-ride
acedatacloud
通过滴滴出行 MCP 打车、查价、查询订单、取消订单、规划路线(驾车/公交/步行/骑行)和搜索地点。Use when the user mentions 滴滴, 打车, 叫车, 回家/上班要打车, 查一下从 A 到 B 多少钱/怎么走, 查询订单, 司机在哪/多久到, 预约叫车, 路线规划, DiDi…
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
acedatacloud
acedatacloud
Manage your AceDataCloud account through the management API (platform.acedata.cloud).
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
apple-notes
acedatacloud
Manage Apple Notes on macOS — list, search, read, create, append, move, delete, and export notes, and manage folders.
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
cto51
acedatacloud
Read the connected 51CTO 博客 (blog.51cto.com) account and create Markdown article drafts with the user's own login cookies (BYOC).
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
ghost
acedatacloud
Create drafts and publish or update posts on a self-hosted Ghost site through the official Admin API.
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
bilibili
acedatacloud
Read and publish 专栏 articles on Bilibili (bilibili.com) with the user's own login cookies (BYOC) — list their published articles with view/like/comment stats…
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
capability-spotlight-video
acedatacloud
Plan and submit a recurring series of diverse, premium Ace Data Cloud sales films.
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
cnblogs
acedatacloud
Publish, update and read CNBlogs (博客园) posts with a personal access token through the API used by the official vscode-cnb client.
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
bluesky
acedatacloud
Publish (with optional images), delete and read your own posts on Bluesky via the AT Protocol (XRPC).
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
csdn
acedatacloud
Read and publish on CSDN (blog.csdn.net) with the user's own login cookies (BYOC) — list their published articles with view/like/comment stats, inspect one…
SkillAFreshness: A★ 17Claude Code +9 - 0.643score
discordbot
acedatacloud
List channels, read recent messages, send channel messages, and send a single user-initiated DM on Discord using the user's own bot via the Discord REST API.
SkillAFreshness: A★ 17Claude Code +9 - 0.641score
happyhorse
AceDataCloud
Use HappyHorse video tools through an Ace Data Cloud account in Claude Code, including setup and retrieval of the same task.
SkillAFreshness: A★ 17Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 17
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Aug 22, 2026 (2 months ago)
- Last release
- Oct 23, 2026 (4 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 2.0
- License
- Apache-2.0
- Repository
- github.com/AceDataCloud/Skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from acedatacloud
- 0.646score
acedatacloud
acedatacloud
Manage your AceDataCloud account through the management API (platform.acedata.cloud).
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
apple-notes
acedatacloud
Manage Apple Notes on macOS — list, search, read, create, append, move, delete, and export notes, and manage folders.
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
cnblogs
acedatacloud
Publish, update and read CNBlogs (博客园) posts with a personal access token through the API used by the official vscode-cnb client.
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
bilibili
acedatacloud
Read and publish 专栏 articles on Bilibili (bilibili.com) with the user's own login cookies (BYOC) — list their published articles with view/like/comment stats…
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
capability-spotlight-video
acedatacloud
Plan and submit a recurring series of diverse, premium Ace Data Cloud sales films.
SkillAFreshness: A★ 17Claude Code +9 - 0.646score
bluesky
acedatacloud
Publish (with optional images), delete and read your own posts on Bluesky via the AT Protocol (XRPC).
SkillAFreshness: A★ 17Claude Code +9
Cite this page
discord skill. Agent Mart. https://agentmart.dev/skills/acedatacloud-discord (last updated 2026-10-24)