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.
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 '<name>' 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.