AgentStack
SKILL verified MIT Self-run

Slack Ops

skill-claude-world-claude-agent-slack-ops · by claude-world

>

No reviews yet
0 installs
2 views
0.0% view→install

Install

$ agentstack add skill-claude-world-claude-agent-slack-ops

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Slack Ops? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Slack Ops

Interact with Slack via the official Web API using curl. Requires a SLACK_TOKEN environment variable (Bot Token starting with xoxb-).

Prerequisites

No CLI install needed — uses curl (pre-installed on macOS/Linux).

Set up your bot token:

export SLACK_TOKEN="xoxb-your-token-here"
# Or add to ~/.zshrc / ~/.bashrc for persistence

To get a token: https://api.slack.com/apps → Create App → OAuth & Permissions → add scopes (chat:write, channels:read, reactions:write, pins:write) → Install to Workspace → copy Bot User OAuth Token.

Commands

Send a message:

curl -s -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "#general", "text": "Hello team!"}'

Send with blocks (rich text):

curl -s -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "#general", "blocks": [{"type":"section","text":{"type":"mrkdwn","text":"*Update*: Build passed."}}]}'

Add a reaction:

# Requires channel ID, message timestamp
curl -s -X POST https://slack.com/api/reactions.add \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C12345678", "name": "white_check_mark", "timestamp": "1609459200.000100"}'

Pin a message:

curl -s -X POST https://slack.com/api/pins.add \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C12345678", "timestamp": "1609459200.000100"}'

List channels:

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

Get channel history:

curl -s "https://slack.com/api/conversations.history?channel=C12345678&limit=20" \
  -H "Authorization: Bearer $SLACK_TOKEN" | jq '.messages[] | {ts, text, user}'

Usage Examples

Post a quick status update:

curl -s -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "#deploys", "text": "v2.1.0 deployed to production."}'

Rules

  • Always check that SLACK_TOKEN is set before running any command: [[ -z "$SLACK_TOKEN" ]] && echo "SLACK_TOKEN not set"
  • If token is missing, instruct user to set it and stop
  • Never print the token value in output
  • Always parse API responses with jq and check "ok": true; if "ok": false, show the error field
  • Channel names use #name format for posting; channel IDs (C...) are required for reactions/pins — run channels.list first if needed
  • Confirm message sends with: "Posted to #"
  • Keep messages concise; for long content, consider posting a summary with a workspace file link

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.