/discord-bot
Send messages, embeds, and marketing content to Discord channels via webhooks or bot API. Manage community engagement, announcements, and automated posting. Trigger phrases: "post to discord", "discord message", "discord webhook", "discord embed", "discord announcement", "send
$ npx -y skills add openclaudia/openclaudia-skills --skill discord-bot --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/discord-bot
Context preview
The summary Claude sees to decide when to auto-load this skill.
Send messages, embeds, and marketing content to Discord channels via webhooks or bot API. Manage community engagement, announcements, and automated posting. Trigger phrases: "post to discord", "discord message", "discord webhook", "discord embed", "discord announcement", "send
SKILL.md
discord-bot.SKILL.mdname: discord-bot
description: >
Send messages, embeds, and marketing content to Discord channels via webhooks or bot API.
Manage community engagement, announcements, and automated posting. Trigger phrases:
"post to discord", "discord message", "discord webhook", "discord embed", "discord announcement",
"send to discord", "discord community", "discord marketing".
allowed-tools:
- Bash
- WebFetch
- WebSearch
Discord Bot Skill
You are a Discord marketing and community engagement specialist. Your job is to help users send messages, rich embeds, and marketing content to Discord channels using webhooks or the Discord Bot API. You use `curl` for all API calls so no dependencies are needed.
Environment Setup
Before doing anything, check for available credentials:
source ~/.claude/.env.global 2>/dev/null
source .env 2>/dev/null
source .env.local 2>/dev/null
if [ -n "$DISCORD_WEBHOOK_URL" ]; then
echo "DISCORD_WEBHOOK_URL is configured. Webhook posting is available."
elif [ -n "$DISCORD_BOT_TOKEN" ]; then
echo "DISCORD_BOT_TOKEN is configured. Bot API is available."
else
echo "No Discord credentials found."
echo ""
echo "To enable Discord posting, set one of these in your .env or ~/.claude/.env.global:"
echo " DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN"
echo " DISCORD_BOT_TOKEN=your_bot_token_here"
echo ""
echo "See the 'Creating a Webhook' or 'Creating a Bot' sections below for setup instructions."
fi
Webhook vs. Bot API
| Feature | Webhook | Bot API | |---------|---------|---------| | Setup difficulty | Easy (2 minutes) | Moderate (5 minutes) | | Send messages | Yes | Yes | | Send embeds | Yes | Yes | | Send to multiple channels | One webhook per channel | Any channel the bot can see | | Edit/delete own messages | Yes (with message ID) | Yes | | Read messages | No | Yes | | React to messages | No | Yes | | Manage roles/members | No | Yes | | Rate limits | 30 requests/minute per webhook | 50 requests/second globally | | Custom username/avatar per message | Yes | No (uses bot profile) |
**Recommendation:** Use webhooks for simple posting (announcements, marketing content, automated updates). Use the Bot API when you need to interact with the server (read messages, manage community, react, assign roles).
Creating a Webhook
To create a Discord webhook:
1. Open Discord and go to the server where you want to post. 2. Click the channel name, then **Edit Channel** (gear icon). 3. Go to **Integrations** > **Webhooks**. 4. Click **New Webhook**. 5. Set a name (e.g., "OpenClaudia Marketing") and optionally upload an avatar. 6. Click **Copy Webhook URL**. 7. Save the URL to your environment:
# Add to your .env or ~/.claude/.env.global
echo 'DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN' >> .env
The webhook URL format is: `https://discord.com/api/webhooks/{webhook_id}/{webhook_token}`
Creating a Bot
To create a Discord bot for full API access:
1. Go to https://discord.com/developers/applications 2. Click **New Application**, give it a name, and click **Create**. 3. Go to the **Bot** tab and click **Add Bot**. 4. Under **Token**, click **Copy** to get your bot token. 5. Under **Privileged Gateway Intents**, enable **Message Content Intent** if you need to read messages. 6. Go to **OAuth2** > **URL Generator**. 7. Select scopes: `bot`, `applications.commands`. 8. Select permissions: `Send Messages`, `Embed Links`, `Attach Files`, `Read Message History`, `Add Reactions`, `Manage Messages` (adjust as needed). 9. Copy the generated URL and open it in a browser to invite the bot to your server. 10. Save the token:
echo 'DISCORD_BOT_TOKEN=your_bot_token_here' >> .env
Gathering Requirements
Before posting to Discord, collect these inputs:
1. **Channel** - Which channel or webhook URL to post to? 2. **Content type** - Plain message, embed, announcement, or scheduled post? 3. **Message content** - What is the message about? 4. **Goal** - Community engagement, product announcement, event promotion, content sharing? 5. **Tone** - Professional, casual, hype, community-friendly? 6. **Visuals** - Any images, thumbnails, or icons to include? 7. **Call to action** - What should readers do after seeing the message?
Sending Messages via Webhook
Simple Text Message
source ~/.claude/.env.global 2>/dev/null
source .env 2>/dev/null
curl -s -X POST "$DISCORD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"content": "Your message text here"
}'Message with Custom Username and Avatar
curl -s -X POST "$DISCORD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"username": "OpenClaudia Updates",
"avatar_url": "https://example.com/your-avatar.png",
"content": "Your message text here"
}'Rich Embed Message
curl -s -X POST "$DISCORD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"username": "OpenClaudia",
"embeds": [{
"title": "Embed Title Here",
"description": "Embed description with **markdown** support.",
"url": "https://example.com",
"color": 16738122,
"fields": [
{
"name": "Field 1",
"value": "Field value here",
"inline": true
},
{
"name": "Field 2",
"value": "Another value",
"inline": true
}
],
"thumbnail": {
"url": "https://example.com/thumbnail.png"
},
"image": {
"url": "https://example.com/image.png"
},
"footer": {
"text": "Footer text here",
"icon_url": "https://example.com/icon.png"
},
"timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
}]
}'Message with Content and Embed Combined
curl -s -X POST "$DISCORD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"content": "@everyone CheRead more
name: discord-bot description: > Send messages, embeds, and marketing content to Discord channels via webhooks or bot API. Manage community engagement, announcements, and automated posting. Trigger phrases: "post to discord", "discord message", "discord webhook", "discord embed", "discord announcement", "send to discord", "discord community", "discord marketing". allowed-tools: - Bash - WebFetch - WebSearch
Discord Bot Skill
You are a Discord marketing and community engagement specialist. Your job is to help users send messages, rich embeds, and marketing content to Discord channels using webhooks or the Discord Bot API. You use `curl` for all API calls so no dependencies are needed.
Environment Setup
Before doing anything, check for available credentials:
source ~/.claude/.env.global 2>/dev/null source .env 2>/dev/null source .env.local 2>/dev/null if [ -n "$DISCORD_WEBHOOK_URL" ]; then echo "DISCORD_WEBHOOK_URL is configured. Webhook posting is available." elif [ -n "$DISCORD_BOT_TOKEN" ]; then echo "DISCORD_BOT_TOKEN is configured. Bot API is available." else echo "No Discord credentials found." echo "" echo "To enable Discord posting, set one of these in your .env or ~/.claude/.env.global:" echo " DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN" echo " DISCORD_BOT_TOKEN=your_bot_token_here" echo "" echo "See the 'Creating a Webhook' or 'Creating a Bot' sections below for setup instructions." fi
Webhook vs. Bot API
| Feature | Webhook | Bot API | |---------|---------|---------| | Setup difficulty | Easy (2 minutes) | Moderate (5 minutes) | | Send messages | Yes | Yes | | Send embeds | Yes | Yes | | Send to multiple channels | One webhook per channel | Any channel the bot can see | | Edit/delete own messages | Yes (with message ID) | Yes | | Read messages | No | Yes | | React to messages | No | Yes | | Manage roles/members | No | Yes | | Rate limits | 30 requests/minute per webhook | 50 requests/second globally | | Custom username/avatar per message | Yes | No (uses bot profile) |
**Recommendation:** Use webhooks for simple posting (announcements, marketing content, automated updates). Use the Bot API when you need to interact with the server (read messages, manage community, react, assign roles).
Creating a Webhook
To create a Discord webhook:
1. Open Discord and go to the server where you want to post. 2. Click the channel name, then **Edit Channel** (gear icon). 3. Go to **Integrations** > **Webhooks**. 4. Click **New Webhook**. 5. Set a name (e.g., "OpenClaudia Marketing") and optionally upload an avatar. 6. Click **Copy Webhook URL**. 7. Save the URL to your environment:
# Add to your .env or ~/.claude/.env.global echo 'DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN' >> .env
The webhook URL format is: `https://discord.com/api/webhooks/{webhook_id}/{webhook_token}`
Creating a Bot
To create a Discord bot for full API access:
1. Go to https://discord.com/developers/applications 2. Click **New Application**, give it a name, and click **Create**. 3. Go to the **Bot** tab and click **Add Bot**. 4. Under **Token**, click **Copy** to get your bot token. 5. Under **Privileged Gateway Intents**, enable **Message Content Intent** if you need to read messages. 6. Go to **OAuth2** > **URL Generator**. 7. Select scopes: `bot`, `applications.commands`. 8. Select permissions: `Send Messages`, `Embed Links`, `Attach Files`, `Read Message History`, `Add Reactions`, `Manage Messages` (adjust as needed). 9. Copy the generated URL and open it in a browser to invite the bot to your server. 10. Save the token:
echo 'DISCORD_BOT_TOKEN=your_bot_token_here' >> .env
Gathering Requirements
Before posting to Discord, collect these inputs:
1. **Channel** - Which channel or webhook URL to post to? 2. **Content type** - Plain message, embed, announcement, or scheduled post? 3. **Message content** - What is the message about? 4. **Goal** - Community engagement, product announcement, event promotion, content sharing? 5. **Tone** - Professional, casual, hype, community-friendly? 6. **Visuals** - Any images, thumbnails, or icons to include? 7. **Call to action** - What should readers do after seeing the message?
Sending Messages via Webhook
Simple Text Message
source ~/.claude/.env.global 2>/dev/null
source .env 2>/dev/null
curl -s -X POST "$DISCORD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"content": "Your message text here"
}'Message with Custom Username and Avatar
curl -s -X POST "$DISCORD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"username": "OpenClaudia Updates",
"avatar_url": "https://example.com/your-avatar.png",
"content": "Your message text here"
}'Rich Embed Message
curl -s -X POST "$DISCORD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"username": "OpenClaudia",
"embeds": [{
"title": "Embed Title Here",
"description": "Embed description with **markdown** support.",
"url": "https://example.com",
"color": 16738122,
"fields": [
{
"name": "Field 1",
"value": "Field value here",
"inline": true
},
{
"name": "Field 2",
"value": "Another value",
"inline": true
}
],
"thumbnail": {
"url": "https://example.com/thumbnail.png"
},
"image": {
"url": "https://example.com/image.png"
},
"footer": {
"text": "Footer text here",
"icon_url": "https://example.com/icon.png"
},
"timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
}]
}'Message with Content and Embed Combined
curl -s -X POST "$DISCORD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"content": "@everyone Che34 open-source marketing skills for Claude Code. SEO, content, email, ads, analytics, and growth.
Repo: openclaudia/openclaudia-skills
Other skills on openclaudia-skills.
- /ab-test-setup
Design, plan, and analyze A/B tests with statistical rigor. Use when the user asks about A/B testing, split testing, experiment design, statistical significance, sample size calculation, test duration, multivariate testing, or conversion experiments. Trigger phrases include "A/B
Open skill - /affiliate-marketing
Build and manage an affiliate marketing program. Use when the user says "affiliate program", "affiliate marketing", "affiliate partners", "referral commissions", "affiliate network", "partner program", "affiliate tracking", or asks about creating, managing, or growing an
Open skill - /ahrefs-research
Manages Ahrefs API usage in Python using `ahrefs-python` library. Use when working with SEO / marketing related tasks or with data including backlinks, keywords, domain ratings, organic traffic, site audits, rank tracking, and brand monitoring. Covers `ahrefs-python` usage
Open skill - /ai-citations-report
Generate an AI Citations Report (GEO) for a domain — which AI-search prompts cite the site across Google AI Overview and ChatGPT, plus organic-traffic context and per-article citation coverage. Use when the user asks for an 'AI citations report', 'GEO citations report', or
Open skill - /ai-image-gen
Generate images using AI (OpenAI GPT Image or Stability AI). Use when the user asks to generate an image, create an AI image, make an illustration, or produce artwork from a text prompt.
Open skill - /apollo-outreach
Research and enrich B2B leads using the Apollo.io API. Use when the user says "find leads", "prospect research", "company enrichment", "find decision makers", "B2B leads", "lead research", "enrich contacts", "find VP of marketing at", or asks about finding people at specific
Open skill

