discord-bot · claude-office-skills — Claude Code skill: what it does, how to install
Guides Discord bot work for moderation, notifications, and community features. Use it when planning commands, roles, tickets, or AI-assisted bot behaviour.
npx skills add claude-office-skills/skills --skill discord-bot -a claude-codeWhat discord-bot does
This skill covers Discord bot setup, application creation, bot configuration, and slash commands. It includes patterns for /help, /ping, /poll, and /remind, plus welcome flows, reaction roles, and ticket channels.
Its moderation section defines responses to repeated messages, mass mentions, unwanted links, and raid activity. It also outlines warnings, timeouts, bans, and moderation logs. Check MODERATE_MEMBERS and BAN_MEMBERS first, because those permissions control the moderation commands.
The skill also describes n8n notification workflows for GitHub releases, Twitch streams, and YouTube videos. It names discord-mcp for sending messages, creating channels, and managing roles, alongside AI bot features triggered by mentions or direct messages.
What it helps with
- set up a Discord application and bot invite
- add slash commands for polls and reminders
- moderate repeated messages and link spam
- assign roles from message reactions
- post GitHub release notifications through n8n
Example prompts for the agent
- “Set up a Discord bot with
/polland/remindcommands.” - “Add auto-moderation for spam, mass mentions, and link filtering.”
- “Create a ticket flow that makes
ticket-{user}-{number}channels.”
How to install discord-bot
1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill discord-bot -a claude-code2Manually: put the files in place
~/.claude/skills/discord-bot/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/discord-bot/
1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill discord-bot -a codex2Manually: put the files in place
.agents/skills/discord-bot/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill discord-bot -a cursor2Manually: put the files in place
.cursor/skills/discord-bot/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install claude-office-skills/skills discord-bot2Manually: put the files in place
.github/skills/discord-bot/SKILL.md1Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill discord-bot -a gemini-cli2Platform CLI
gemini skills install https://github.com/claude-office-skills/skills --path discord-botManually: put the files in place
.devin/skills/discord-bot/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill discord-bot -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about discord-bot
How do I install discord-bot in Claude Code?
Run npx skills add claude-office-skills/skills --skill discord-bot -a claude-code, then run npx skills add claude-office-skills/skills --skill discord-bot -a claude-code again. The skill file is at ~/.claude/skills/discord-bot/SKILL.md.
What does the discord-bot skill do?
It provides bot development patterns for slash commands, moderation, community roles, tickets, and notifications. It also covers AI features and Discord operations through discord-mcp.
Which permissions do moderation commands require?
/warn, /timeout, and /warnings use MODERATE_MEMBERS. /ban requires BAN_MEMBERS.
Source text
SKILL.md · MIT
---
name: discord-bot
description: "Discord bot development - community management, moderation, notifications, and AI integration"
version: "1.0.0"
author: claude-office-skills
license: MIT
category: messaging
tags:
- discord
- bot
- community
- moderation
- automation
department: Engineering
models:
recommended:
- claude-sonnet-4
mcp:
server: discord-mcp
tools:
- discord_send_message
- discord_create_channel
- discord_manage_roles
capabilities:
- bot_development
- community_management
- moderation
- notification_system
- ai_integration
languages:
- en
- zh
related_skills:
- telegram-bot
- slack-workflows
- ai-agent-builder
---
# Discord Bot
Build Discord bots for community management, moderation, notifications, and AI integration. Based on n8n's Discord workflow templates.
## Overview
This skill covers:
- Bot setup and configuration
- Slash commands and interactions
- Moderation automation
- Notification workflows
- AI-powered features
---
## Bot Setup
### Creating a Discord Bot
```yaml
setup_steps:
1. create_application:
url: https://discord.com/developers/applications
action: "New Application"
2. create_bot:
section: "Bot"
action: "Add Bot"
copy: token
3. configure_intents:
enable:
- PRESENCE_INTENT
- SERVER_MEMBERS_INTENT
- MESSAGE_CONTENT_INTENT
4. invite_bot:
section: "OAuth2 > URL Generator"
scopes: [bot, applications.commands]
permissions: [based_on_needs]
generate: invite_link
```
### Slash Commands
```yaml
slash_commands:
- name: help
description: "Show bot help"
- name: ping
description: "Check bot latency"
- name: poll
description: "Create a poll"
options:
- name: question
type: STRING
required: true
- name: options
type: STRING
required: true
- name: remind
description: "Set a reminder"
options:
- name: time
type: STRING
required: true
- name: message
type: STRING
required: true
```
---
## Moderation Bot
### Auto-Moderation
```yaml
auto_moderation:
spam_detection:
triggers:
- repeated_messages: 5_in_10_seconds
- mass_mentions: more_than_5
- link_spam: multiple_links_no_text
actions:
- delete_messages
- timeout: 5_minutes
- log_to_mod_channel
word_filter:
blocked_words: [list_of_words]
action:
- delete_message
- warn_user
link_filter:
allowed_domains: [youtube.com, github.com]
action: delete_if_not_allowed
raid_protection:
triggers:
- join_rate: 10_per_minute
actions:
- enable_verification
- notify_mods
- slow_mode: enable
```
### Moderation Commands
```yaml
mod_commands:
/warn:
permission: MODERATE_MEMBERS
action: |
1. Record warning
2. DM user with reason
3. Log to mod channel
/timeout:
permission: MODERATE_MEMBERS
options: [user, duration, reason]
action: |
1. Apply timeout
2. DM user
3. Log action
/ban:
permission: BAN_MEMBERS
options: [user, reason, delete_messages]
action: |
1. Ban user
2. Log to mod channel
3. Optional: post to #bans
/warnings:
permission: MODERATE_MEMBERS
action: show_user_warning_history
```
---
## Community Features
### Welcome System
```yaml
welcome_system:
on_member_join:
actions:
- assign_role: "New Member"
- send_dm:
template: |
👋 Welcome to {server_name}!
Here's how to get started:
1. Read #rules
2. Grab roles in #roles
3. Introduce yourself in #introductions
Need help? Ask in #support
- post_welcome:
channel: "#welcome"
template: |
🎉 Welcome {user_mention} to the server!
They are member #{member_count}
on_member_leave:
channel: "#logs"
template: "{user} left the server. Duration: {time_since_join}"
```
### Role Management
```yaml
reaction_roles:
channel: "#roles"
message: |
React to get roles:
🎮 - Gamer
💻 - Developer
🎨 - Artist
📚 - Student
mappings:
"🎮": role_id_gamer
"💻": role_id_developer
"🎨": role_id_artist
"📚": role_id_student
level_roles:
system: xp_based
roles:
- level: 5
role: "Active Member"
- level: 10
role: "Regular"
- level: 25
role: "Veteran"
- level: 50
role: "Legend"
```
### Ticket System
```yaml
ticket_system:
create_ticket:
trigger: button_click OR /ticket
action:
- create_channel: "ticket-{user}-{number}"
- set_permissions: [user, support_team]
- send_initial_message:
template: |
🎫 **Support Ticket**
User: {user_mention}
Created: {timestamp}
Please describe your issue and a team member will assist you shortly.
React with ✅ to close this ticket.
close_ticket:
trigger: reaction OR /close
action:
- save_transcript: to_logs_channel
- delete_channel: after_5_seconds
- dm_user: transcript_link
```
---
## Notification Workflows
### n8n Integration
```yaml
workflow: "Discord Notifications"
triggers:
github_release:
action:
channel: "#releases"
embed:
title: "🚀 New Release: {version}"
description: "{release_notes}"
color: 0x00ff00
fields:
- name: "Download"
value: "[Link]({download_url})"
twitch_live:
action:
channel: "#streams"
message: "@everyone {streamer} is now live!"
embed:
title: "{stream_title}"
image: "{thumbnail}"
youtube_video:
action:
channel: "#videos"
embed:
title: "{video_title}"
description: "{description}"
thumbnail: "{thumbnail}"
```
### Scheduled Posts
```yaml
scheduled_posts:
daily_question:
schedule: "10am daily"
channel: "#daily-discussion"
template: |
🤔 **Question of the Day**
{random_question}
Share your thoughts below! 👇
weekly_recap:
schedule: "Sunday 6pm"
channel: "#announcements"
template: |
📊 **Weekly Server Recap**
New members: {new_members}
Messages: {message_count}
Most active channel: {top_channel}
Top contributor: {top_user}
Thanks for being part of our community! ❤️
```
---
## AI Integration
### AI Chat Bot
```yaml
ai_bot:
trigger: mention OR dm
configuration:
model: gpt-4
system_prompt: |
You are a helpful Discord bot assistant.
- Be friendly and use Discord-appropriate language
- Use emojis naturally
- Keep responses concise
- Help with server-related questions
features:
- conversation_memory: per_channel
- rate_limiting: 10_per_minute
- content_filter: enabled
commands:
/ask:
description: "Ask the AI a question"
action: ai_response
/summarize:
description: "Summarize recent messages"
action: summarize_channel_history
```
### Image Generation
```yaml
image_generation:
command: /imagine
options:
- prompt: STRING (required)
- style: CHOICE [realistic, anime, cartoon, abstract]
- size: CHOICE [square, portrait, landscape]
workflow:
1. receive_command
2. send_generating_message
3. call_dalle_api
4. send_result_with_buttons:
- Regenerate
- Upscale
- Variations
```
---
## Embeds & Components
### Rich Embed
```yaml
embed:
title: "Server Information"
description: "Welcome to our community!"
color: 0x5865F2 # Discord blurple
thumbnail:
url: "{server_icon}"
fields:
- name: "📊 Members"
value: "{member_count}"
inline: true
- name: "💬 Channels"
value: "{channel_count}"
inline: true
- name: "🎭 Roles"
value: "{role_count}"
inline: true
- name: "📅 Created"
value: "{creation_date}"
inline: false
footer:
text: "Last updated"
icon_url: "{bot_avatar}"
timestamp: "{current_time}"
```
### Button Components
```yaml
buttons:
row_1:
- type: button
style: primary
label: "Accept Rules"
custom_id: "accept_rules"
- type: button
style: secondary
label: "View Rules"
custom_id: "view_rules"
row_2:
- type: button
style: link
label: "Website"
url: "https://example.com"
- type: button
style: danger
label: "Leave"
custom_id: "leave_confirm"
```
---
## Output Example
**Request**: "Create a Discord welcome bot"
**Output**:
```markdown
# Discord Welcome Bot
## Configuration
```yaml
events:
- guildMemberAdd
- guildMemberRemove
```
## Welcome Message
```javascript
// On member join
const welcomeEmbed = {
title: '👋 Welcome to the Server!',
description: `Hey ${member.user}, welcome to **${guild.name}**!`,
color: 0x00ff00,
fields: [
{ name: '📜 Rules', value: 'Check <#rules-channel>', inline: true },
{ name: '🎭 Roles', value: 'Get roles in <#roles>', inline: true },
{ name: '💬 Chat', value: 'Say hi in <#general>', inline: true }
],
thumbnail: { url: member.user.displayAvatarURL() },
footer: { text: `Member #${guild.memberCount}` }
};
welcomeChannel.send({ embeds: [welcomeEmbed] });
```
## Auto-Role
```javascript
// Assign "New Member" role
await member.roles.add(newMemberRole);
```
## DM Welcome
```javascript
// Send DM with server info
await member.send({
content: `Welcome to ${guild.name}! Here's everything you need to know...`,
embeds: [infoEmbed]
});
```
## n8n Workflow
```yaml
trigger: Discord - On Member Join
actions:
- Discord - Send Channel Message (welcome)
- Discord - Add Role
- Discord - Send DM
- Google Sheets - Log new member
```
```
---
*Discord Bot Skill - Part of Claude Office Skills*
© claude-office-skills · MIT · claude-office-skills/skills
Similar skills
Everything for Backend and APIs →discord-bot by other authors comes first.