
Discord Webhook
- 262 installs
- 76 repo stars
- Updated August 4, 2026
- vm0-ai/vm0-skills
discord-webhook is a Claude Code agent skill that posts JSON messages to Discord channels via the Webhook API using curl and a DISCORD_WEBHOOK_URL for developers who need scripted channel notifications.
About
discord-webhook is a vm0-ai/vm0-skills agent skill that standardizes outbound Discord notifications through Discord's Webhook API. Developers export DISCORD_WEBHOOK_URL, write a JSON body to /tmp/discord_webhook_request.json, and POST it with curl using Content-Type application/json. The SKILL.md documents a minimal content-only payload and a second pattern with username and avatar_url overrides for branded alert bots. Reach for discord-webhook when a user says send Discord message, Discord webhook, or post to Discord and you need a repeatable shell workflow instead of improvising API field names. The approach avoids OAuth or bot-token setup for one-way outbound posts from CI pipelines, deploy hooks, or monitoring scripts. Because the webhook URL stays in an environment variable and the JSON body lives in a temp file, credentials are less likely to leak into shell history than inline curl one-liners.
- discord-webhook
Discord Webhook by the numbers
- 262 all-time installs (skills.sh)
- Ranked #1,472 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/vm0-ai/vm0-skills --skill discord-webhookAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 262 |
|---|---|
| repo stars | ★ 76 |
| Last updated | August 4, 2026 |
| Repository | vm0-ai/vm0-skills ↗ |
How do you send messages via Discord webhook with curl?
Use discord-webhook for development tasks
Who is it for?
Developers who already have a Discord webhook URL and need agents to post structured alerts from shell scripts or automation.
Skip if: Developers building interactive Discord bots that require OAuth, slash commands, or bidirectional gateway events.
When should I use this skill?
The user asks to send a Discord message, post to Discord, or use a Discord webhook URL for notifications.
What you get
A curl POST command, a staged JSON request file, and a delivered Discord channel message with optional custom username and avatar.
- curl POST command
- JSON webhook request file
- Discord channel message
By the numbers
- Documents 2 JSON payload patterns: simple content and custom username/avatar
Files
How to Use
All examples below assume you have DISCORD_WEBHOOK_URL set.
1. Send Simple Message
Write to /tmp/discord_webhook_request.json:
{
"content": "Hello from webhook!"
}Then run:
curl -s -X POST "$DISCORD_WEBHOOK_URL" -H "Content-Type: application/json" -d @/tmp/discord_webhook_request.json2. Send with Custom Username and Avatar
Write to /tmp/discord_webhook_request.json:
{
"content": "Alert!",
"username": "Alert Bot",
"avatar_url": "https://i.imgur.com/4M34hi2.png"
}Then run:
curl -s -X POST "$DISCORD_WEBHOOK_URL" -H "Content-Type: application/json" -d @/tmp/discord_webhook_request.json3. Send Rich Embed
Write to /tmp/discord_webhook_request.json:
{
"embeds": [
{
"title": "Deployment Complete",
"description": "Version 1.2.3 deployed to production",
"color": 5763719,
"fields": [
{
"name": "Environment",
"value": "Production",
"inline": true
},
{
"name": "Status",
"value": "Success",
"inline": true
}
],
"timestamp": "2025-01-01T12:00:00.000Z"
}
]
}Then run:
curl -s -X POST "$DISCORD_WEBHOOK_URL" -H "Content-Type: application/json" -d @/tmp/discord_webhook_request.jsonCommon colors (decimal):
- Green:
5763719 - Red:
15548997 - Blue:
5793266 - Yellow:
16776960 - Orange:
16744192
4. Send Error Alert
Write to /tmp/discord_webhook_request.json:
{
"embeds": [
{
"title": "Error Alert",
"description": "Database connection failed",
"color": 15548997,
"fields": [
{
"name": "Service",
"value": "api-server"
},
{
"name": "Error",
"value": "Connection timeout"
}
],
"footer": {
"text": "Monitor"
}
}
]
}Then run:
curl -s -X POST "$DISCORD_WEBHOOK_URL" -H "Content-Type: application/json" -d @/tmp/discord_webhook_request.json5. Send File Attachment
Write to /tmp/discord_webhook_payload.json:
{
"content": "Screenshot attached"
}Then run:
curl -s -X POST "$DISCORD_WEBHOOK_URL" -F "file1=@screenshot.png" -F 'payload_json=@/tmp/discord_webhook_payload.json'6. Send Multiple Files
Write to /tmp/discord_webhook_payload.json:
{
"content": "Log files attached"
}Then run:
curl -s -X POST "$DISCORD_WEBHOOK_URL" -F "file1=@error.log" -F "file2=@debug.log" -F 'payload_json=@/tmp/discord_webhook_payload.json'7. Send Multiple Embeds
Write to /tmp/discord_webhook_request.json:
{
"embeds": [
{
"title": "Build Started",
"color": 16776960
},
{
"title": "Tests Passed",
"color": 5763719
},
{
"title": "Deployed",
"color": 5793266
}
]
}Then run:
curl -s -X POST "$DISCORD_WEBHOOK_URL" -H "Content-Type: application/json" -d @/tmp/discord_webhook_request.json8. Send with Mention
Write to /tmp/discord_webhook_request.json:
{
"content": "<@<your-user-id>> Check this out!",
"allowed_mentions": {
"users": ["<your-user-id>"]
}
}Then run:
curl -s -X POST "$DISCORD_WEBHOOK_URL" -H "Content-Type: application/json" -d @/tmp/discord_webhook_request.jsonReplace <your-user-id> with the actual Discord user ID.
9. Send Silent Message (No Notification)
Write to /tmp/discord_webhook_request.json:
{
"content": "Silent update",
"flags": 4096
}Then run:
curl -s -X POST "$DISCORD_WEBHOOK_URL" -H "Content-Type: application/json" -d @/tmp/discord_webhook_request.json10. CI/CD Pipeline Notification
Write to /tmp/discord_webhook_request.json:
{
"username": "GitHub Actions",
"embeds": [
{
"title": "Pipeline Status",
"color": 5763719,
"fields": [
{
"name": "Repository",
"value": "myorg/myrepo",
"inline": true
},
{
"name": "Branch",
"value": "main",
"inline": true
},
{
"name": "Commit",
"value": "abc1234",
"inline": true
},
{
"name": "Status",
"value": "Success"
}
],
"timestamp": "2025-01-01T12:00:00.000Z"
}
]
}Then run:
curl -s -X POST "$DISCORD_WEBHOOK_URL" -H "Content-Type: application/json" -d @/tmp/discord_webhook_request.jsonEmbed Structure
{
"title": "Title text",
"description": "Description text",
"url": "https://example.com",
"color": 5763719,
"fields": [
{"name": "Field 1", "value": "Value 1", "inline": true}
],
"author": {"name": "Author", "icon_url": "https://..."},
"footer": {"text": "Footer text"},
"thumbnail": {"url": "https://..."},
"image": {"url": "https://..."},
"timestamp": "2025-01-01T12:00:00.000Z"
}Guidelines
1. Rate limits: 30 requests per 60 seconds per webhook 2. Message limit: 2000 characters for content 3. Embed limits: Max 10 embeds, 6000 total characters 4. File limits: Max 8MB per file (50MB with Nitro boost) 5. Security: Treat webhook URLs like passwords
Related skills
How it compares
Pick discord-webhook for one-way outbound channel posts via a webhook URL when you do not need OAuth, gateway events, or interactive bot commands.
FAQ
What does discord-webhook require before sending?
discord-webhook requires a DISCORD_WEBHOOK_URL environment variable pointing to a channel webhook created in Discord settings. Agents write a JSON body to /tmp/discord_webhook_request.json and POST it with curl using Content-Type application/json.
Can discord-webhook customize the bot name and avatar?
discord-webhook supports optional username and avatar_url fields in the JSON payload alongside content. The skill documents this enriched alert pattern so CI or monitoring bots can post with a branded identity without a full Discord bot application.