From discord
Set up the Discord channel — create sessions, save bot tokens, and review access policy. Use when the user pastes a Discord bot token, asks to configure Discord, asks "how do I set this up" or "who can reach me," or wants to check channel status.
How this skill is triggered — by the user, by Claude, or both
Slash command
/discord:configureThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Each Discord bot runs as a named **session**. Sessions are tracked in
Each Discord bot runs as a named session. Sessions are tracked in
~/.claude/channels/discord/sessions.json and each session's state lives in
~/.claude/channels/discord/sessions/<name>/.
Arguments passed: $ARGUMENTS
~/.claude/channels/discord/sessions.json (missing file = no sessions).~/.claude/channels/discord/sessions/<name>/.env for
DISCORD_BOT_TOKEN. Show set/not-set; if set, show first 6 chars masked.~/.claude/channels/discord/sessions/<name>/access.json (missing =
defaults). Show: DM policy, allowed senders count, pending pairings count,
guild channels opted in./discord:configure <name> <token> to create one — pick any short name
like personal or work."<name> (one arg, not a token) — show status for that session<name> exists in sessions.json. If not, tell the user:
"Session '' not found. Available sessions: …" and stop..env and access.json from
~/.claude/channels/discord/sessions/<name>/./discord:configure <name> <token> with your bot token."/discord:access <name> pair <code>."allowlist once all
IDs are captured).<name> <token> — create or update a session<name> is the first arg (short name, alphanumeric + hyphens).
<token> is the second arg (Discord bot token — long base64-ish string).mkdir -p ~/.claude/channels/discord/sessions/<name>.env in that dir if present; update/add DISCORD_BOT_TOKEN=
line, preserve other keys. Write back, no quotes.chmod 600 ~/.claude/channels/discord/sessions/<name>/.env~/.claude/channels/discord/sessions.json (or [] if missing).
Add { "name": "<name>", "stateDir": "<absolute path>" } if not already
present (match on name). Write back (pretty JSON)./reload-plugins for the new bot to
connect."<name> clear — remove a sessionsessions.json, remove the entry matching <name>.sessions.json.~/.claude/channels/discord/sessions/<name>/ still exists (don't delete
it automatically — may contain access.json the user wants to keep)./reload-plugins to disconnect."sessions.json at boot. Session changes need a session
restart or /reload-plugins. Say so after saving.access.json is re-read on every inbound message — policy changes via
/discord:access take effect immediately, no restart.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub stayblue/claude-discord-plugin --plugin discord