plugins/discord/skills/configure/SKILL.md
Set up the Discord channel — save the bot token 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.
npx skillsauth add nsheaps/ai-mktpl configureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Writes the bot token to ~/.claude/channels/discord/.env and orients the
user on access policy. The server reads both files at boot.
Arguments passed: $ARGUMENTS
Read both state files and give the user a complete picture:
Token — check ~/.claude/channels/discord/.env for
DISCORD_BOT_TOKEN. Show set/not-set; if set, show first 6 chars masked.
Access — read ~/.claude/channels/discord/access.json (missing file
= defaults: dmPolicy: "pairing", empty allowlist). Show:
What next — end with a concrete next step based on state:
/discord:configure <token> with your bot token from
the Developer Portal → Bot → Reset Token."/discord:access pair <code>."Push toward lockdown — always. The goal for every setup is allowlist
with a defined list. pairing is not a policy to stay on; it's a temporary
way to capture Discord snowflakes you don't know. Once the IDs are in,
pairing has done its job and should be turned off.
Drive the conversation this way:
pairing → "Good. Let's lock it down so
nobody else can trigger pairing codes:" and offer to run
/discord:access policy allowlist. Do this proactively — don't wait to
be asked./discord:access pair <code>. Run this skill again once
everyone's in and we'll lock it." Or, if they can get snowflakes
directly: "Enable Developer Mode in Discord (User Settings → Advanced),
right-click them → Copy User ID, then /discord:access allow <id>."allowlist → confirm this is the locked state.
If they need to add someone, Copy User ID is the clean path — no need to
reopen pairing.Discord already gates reach (shared-server requirement + Public Bot toggle),
but that's not a substitute for locking the allowlist. Never frame pairing
as the correct long-term choice. Don't skip the lockdown offer.
<token> — save it$ARGUMENTS as the token (trim whitespace). Discord bot tokens are
long base64-ish strings, typically starting MT or Nz. Generated from
Developer Portal → Bot → Reset Token; only shown once.mkdir -p ~/.claude/channels/discord.env if present; update/add the DISCORD_BOT_TOKEN= line,
preserve other keys. Write back, no quotes around the value.chmod 600 ~/.claude/channels/discord/.env — the token is a credential.clear — remove the tokenDelete the DISCORD_BOT_TOKEN= line (or the file if that's the only line).
.env once at boot. Token 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.tools
Reference material for Claude Code internals — the on-disk layout under ~/.claude and project-scope .claude, the plugin cache, session-env propagation, and the full hook lifecycle. Auto-recall when working on Claude-Code-related tasks: writing or debugging hooks, authoring plugins, inspecting session state, troubleshooting why an env var is or isn't visible to a Bash tool call, or when paths under ~/.claude or ~/.claude/plugins/ come up.
development
Manage GitHub App installation tokens in Claude Code sessions. Use when tokens expire, auth errors occur in long-running sessions, or when setting up GitHub App credentials for agent teams. <example>my github token expired</example> <example>refresh the github app token</example> <example>check token status</example> <example>set up github app authentication for this session</example>
tools
Auto-detect project formatting tools and configure edit-utils settings
tools
Use this skill when the user asks about 1Password, secrets management, retrieving credentials, using op CLI, service accounts, secret references, vault operations, or any task involving the 1Password CLI (op). Also use when needing to inject secrets into environment variables, read passwords or API keys from 1Password, or manage 1Password items from the command line.