skills/discord/SKILL.md
Manage Discord servers, channels, messages and members via Bot API
npx skillsauth add alanalvestech/hitank discordInstall 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.
Connect to Discord to manage servers, send messages, read channels, react, pin, create threads and more. Pure Ruby, zero gems — stdlib only.
scripts/
├── auth.rb # Bot token auth + discord_request helper (required by all scripts)
├── check_setup.rb # Check if token exists (outputs OK or SETUP_NEEDED)
├── save_token.rb # Save and validate a bot token
├── guilds.rb # List servers the bot is in
├── channels.rb # List channels in a server
├── messages.rb # Read messages from a channel
├── send_message.rb # Send a message to a channel
├── edit_message.rb # Edit a message
├── delete_message.rb # Delete a message
├── react.rb # Add a reaction to a message
├── pin.rb # Pin a message
├── members.rb # List members in a server
├── roles.rb # List roles in a server
└── thread_create.rb # Create a thread from a message
ruby ~/.claude/skills/discord/scripts/check_setup.rb
If the output is OK, proceed to the Flow section.
If the output is SETUP_NEEDED, guide the user step by step. Present ONE step at a time, wait for the user to confirm before moving to the next.
Step 1 — Ask the user to create a Discord bot and get the token:
You need a Discord Bot token. Go to the Discord Developer Portal: https://discord.com/developers/applications
- Click New Application, give it a name
- Go to Bot in the left menu
- Click Reset Token and copy the token
- Under Privileged Gateway Intents, enable Server Members Intent and Message Content Intent
- Go to OAuth2 > URL Generator, select scope bot, then select permissions: Read Messages/View Channels, Send Messages, Manage Messages, Read Message History, Add Reactions
- Copy the generated URL and open it to invite the bot to your server
Paste the bot token here.
Step 2 — When the user pastes the token, save it:
ruby ~/.claude/skills/discord/scripts/save_token.rb 'PASTED_TOKEN'
If the script outputs an error, the token is invalid. Ask the user to double-check and try again.
If setup is not complete, DO NOT proceed to the Flow. Complete all steps first.
The argument $ARGUMENTS may contain a server name or channel reference.
ruby ~/.claude/skills/discord/scripts/guilds.rb
Present the servers. If there is only one, use it automatically. Otherwise ask which server to work with.
ruby ~/.claude/skills/discord/scripts/channels.rb GUILD_ID
ruby ~/.claude/skills/discord/scripts/channels.rb GUILD_ID --type 0
Show text channels (type 0) by default. Ask which channel to work with.
Read messages:
ruby ~/.claude/skills/discord/scripts/messages.rb CHANNEL_ID
ruby ~/.claude/skills/discord/scripts/messages.rb CHANNEL_ID --limit 50
Send a message (requires user confirmation):
Show the message content first, then ask to confirm before sending.
ruby ~/.claude/skills/discord/scripts/send_message.rb CHANNEL_ID "Hello from HiTank!"
Edit a message (requires user confirmation):
ruby ~/.claude/skills/discord/scripts/edit_message.rb CHANNEL_ID MESSAGE_ID "Updated content"
Delete a message (requires user confirmation):
Show the message first, then ask: "Do you want to delete this message?" Only execute after a "yes".
ruby ~/.claude/skills/discord/scripts/delete_message.rb CHANNEL_ID MESSAGE_ID
React to a message (requires user confirmation):
ruby ~/.claude/skills/discord/scripts/react.rb CHANNEL_ID MESSAGE_ID "✅"
Pin a message (requires user confirmation):
ruby ~/.claude/skills/discord/scripts/pin.rb CHANNEL_ID MESSAGE_ID
Create a thread (requires user confirmation):
ruby ~/.claude/skills/discord/scripts/thread_create.rb CHANNEL_ID MESSAGE_ID "Thread Name"
List members:
ruby ~/.claude/skills/discord/scripts/members.rb GUILD_ID
ruby ~/.claude/skills/discord/scripts/members.rb GUILD_ID --limit 100
List roles:
ruby ~/.claude/skills/discord/scripts/roles.rb GUILD_ID
Authorization: Bot TOKEN)~/.config/discord/token (outside the repo, never commit)<@USER_ID> in message contentX-RateLimit-* headershttps://discord.com/api/v10development
Manage Zendesk tickets, users, organizations and knowledge base via REST API
development
Post and manage tweets on X (formerly Twitter) via API v2
development
Manage Vercel projects, deployments, domains and environment variables via API
development
Manage Twilio SMS, calls, phone numbers and usage via REST API