Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
vm0-ai avatar

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-webhook

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs262
repo stars76
Last updatedAugust 4, 2026
Repositoryvm0-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

SKILL.mdMarkdownGitHub ↗

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.json

2. 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.json

3. 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.json

Common 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.json

5. 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.json

8. 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.json

Replace <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.json

10. 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.json

Embed 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.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.