<< All versions
Skill v1.0.1
currentAutomated scan100/100majiayu000/claude-skill-registry-data/slack-webhook
+3 new
──Details
PublishedJune 7, 2026 at 04:47 AM
Content Hashsha256:e384ce0c1dc35847...
Git SHAc81602b97ab1
Bump Typepatch
──Files
Files (1 file, 4.2 KB)
SKILL.md4.2 KBactive
SKILL.md · 200 lines · 4.2 KB
version: "1.0.1" name: slack-webhook description: Send messages to Slack using Incoming Webhooks. Simple one-way messaging to a specific channel without OAuth setup. vm0_secrets:
- SLACK_WEBHOOK_URL
Slack Incoming Webhook
Send messages to a Slack channel using Incoming Webhooks. No OAuth or bot setup required.
When to Use
- Send notifications to a specific channel
- CI/CD notifications, alerts, status updates
- Quick integration without full Slack app setup
Prerequisites
bash
export SLACK_WEBHOOK_URL=https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXX
Get Webhook URL
- Create app: https://api.slack.com/apps → Create New App → From scratch
- Select Incoming Webhooks → Toggle On
- Click Add New Webhook to Workspace
- Select channel → Allow
- Copy Webhook URL
Important: When using$VARin a command that pipes to another command, wrap the command containing$VARinbash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.```bashbash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"' | jq .```
Usage
Simple Message
Write to /tmp/slack_request.json:
json
{"text": "Hello, world."}
Then run:
bash
bash -c 'curl -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d @/tmp/slack_request.json'
With Formatting
Write to /tmp/slack_request.json:
json
{"text": "*Bold* and _italic_ text"}
Then run:
bash
bash -c 'curl -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d @/tmp/slack_request.json'
With Link
Write to /tmp/slack_request.json:
json
{"text": "Check <https://example.com|this link>"}
Then run:
bash
bash -c 'curl -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d @/tmp/slack_request.json'
With Blocks (Rich Layout)
Write to /tmp/slack_request.json:
json
{"text": "New review submitted","blocks": [{"type": "section","text": {"type": "mrkdwn","text": "Danny left the following review:"}},{"type": "section","text": {"type": "mrkdwn","text": "<https://example.com|Overlook Hotel>\n:star:\nDoors had too many axe holes."}}]}
Then run:
bash
bash -c 'curl -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d @/tmp/slack_request.json'
With Fields
Write to /tmp/slack_request.json:
json
{"text": "Deployment status","blocks": [{"type": "section","fields": [{"type": "mrkdwn","text": "*Environment:*\nProduction"},{"type": "mrkdwn","text": "*Status:*\nSuccess"}]}]}
Then run:
bash
bash -c 'curl -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d @/tmp/slack_request.json'
Message Formatting
| Syntax | Result | ||
|---|---|---|---|
*bold* | bold | ||
_italic_ | _italic_ | ||
~strike~ | |||
` code ` | code | ||
\n | newline | ||
| `<URL\ | text>` | hyperlink | |
:emoji: | emoji |
Shell Escaping
Messages with ! may fail due to shell history expansion. Use heredoc:
bash
bash -c 'curl -s -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d @-' << 'EOF'{"text":"Deploy completed! :rocket:"}EOF
Response
Success: ok (HTTP 200)
Errors:
invalid_payload- Malformed JSONno_text- Missingtextfieldno_service- Webhook disabled or invalidchannel_not_found- Channel deletedchannel_is_archived- Channel archivedaction_prohibited- Admin restriction
Limitations
- One webhook = one channel only
- Cannot override username or icon (set in app config)
- Send only (no reading messages)
- Cannot delete messages after posting
- Rate limit: 1 message/second
For full API access, use the slack skill with Bot Token.
API Reference
- Webhooks Guide: https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks
- Block Kit Builder: https://app.slack.com/block-kit-builder
- Message Formatting: https://docs.slack.dev/messaging/formatting-message-text