Send messages to Slack using Incoming Webhooks. Simple one-way messaging to a specific channel without OAuth setup.
/plugin marketplace add vm0-ai/api0/plugin install api0@api0This skill inherits all available tools. When active, it can use any tool Claude has access to.
Send messages to a Slack channel using Incoming Webhooks. No OAuth or bot setup required.
export SLACK_WEBHOOK_URL=https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXX
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.bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"' | jq .
curl -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d '{"text":"Hello, world."}'
curl -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d '{"text":"*Bold* and _italic_ text"}'
curl -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d '{"text":"Check <https://example.com|this link>"}'
curl -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d '{
"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."
}
}
]
}'
curl -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d '{
"text": "Deployment status",
"blocks": [
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "*Environment:*\nProduction"},
{"type": "mrkdwn", "text": "*Status:*\nSuccess"}
]
}
]
}'
| Syntax | Result |
|---|---|
*bold* | bold |
_italic_ | italic |
~strike~ | |
`code` | code |
\n | newline |
<URL|text> | hyperlink |
:emoji: | emoji |
Messages with ! may fail due to shell history expansion. Use heredoc:
curl -s -X POST $SLACK_WEBHOOK_URL -H "Content-type: application/json" -d @- << 'EOF'
{"text":"Deploy completed! :rocket:"}
EOF
Success: ok (HTTP 200)
Errors:
invalid_payload - Malformed JSONno_text - Missing text fieldno_service - Webhook disabled or invalidchannel_not_found - Channel deletedchannel_is_archived - Channel archivedaction_prohibited - Admin restrictionFor full API access, use the slack skill with Bot Token.