slack-msg

star 4

Post messages, list channels, and reply to threads via the Slack Web API.

qhkm By qhkm schedule Updated 2/26/2026

name: slack-msg version: 1.0.0 description: Post messages, list channels, and reply to threads via the Slack Web API. author: ZeptoClaw license: MIT tags:

  • slack
  • messaging
  • communication
  • notifications env_needed:
  • name: SLACK_BOT_TOKEN description: Bot token (xoxb-) from api.slack.com/apps required: true metadata: {"zeptoclaw":{"emoji":"💬","requires":{"anyBins":["curl","jq"]}}}

Slack Message Skill

Post messages, list channels, and reply to threads using the Slack Web API.

Setup

  1. Go to api.slack.com/apps → Create New App
  2. Add Bot Token Scopes: chat:write, channels:read, files:write
  3. Install app to workspace → Copy Bot User OAuth Token
export SLACK_BOT_TOKEN="xoxb-xxx..."

Post a Message

curl -s -X POST "https://slack.com/api/chat.postMessage" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C0XXXXXX",
    "text": "Deploy completed successfully"
  }' | jq '{ok, ts: .ts, channel: .channel}'

List Channels

curl -s "https://slack.com/api/conversations.list?types=public_channel&limit=50" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  | jq '.channels[] | {id, name, num_members}'

Reply to a Thread

curl -s -X POST "https://slack.com/api/chat.postMessage" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C0XXXXXX",
    "thread_ts": "1234567890.123456",
    "text": "Thread reply from agent"
  }' | jq '{ok, ts}'

Post with Blocks (Rich Formatting)

curl -s -X POST "https://slack.com/api/chat.postMessage" \
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C0XXXXXX",
    "blocks": [
      {"type": "header", "text": {"type": "plain_text", "text": "Daily Report"}},
      {"type": "section", "text": {"type": "mrkdwn", "text": "*Errors:* 3\n*Uptime:* 99.9%"}}
    ]
  }' | jq '{ok, ts}'

Tips

  • Channel IDs start with C (public) or G (private) — use IDs not names
  • Bot must be invited to a channel before posting: /invite @botname
  • Rate limit: ~1 message/second per channel (burst: 100 per minute)
  • thread_ts is the timestamp of the parent message
  • Slack uses mrkdwn (not markdown) — bold is *text*, italic is _text_
Install via CLI
npx skills add https://github.com/qhkm/zeptoclaw-skills --skill slack-msg
Repository Details
star Stars 4
call_split Forks 3
navigation Branch main
article Path SKILL.md
More from Creator