← ClaudeAtlas

discordlisted

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.
AceDataCloud/Skills · ★ 13 · AI & Automation · score 73
Install: claude install-skill AceDataCloud/Skills
# 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://auth.acedata.cloud/user/connections"; 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 `auth.acedata.cloud/user/connections`. 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** `