Install
$ agentstack add skill-claude-world-claude-agent-slack-ops ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo 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.
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_TOKENis 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
jqand check"ok": true; if"ok": false, show theerrorfield - Channel names use
#nameformat for posting; channel IDs (C...) are required for reactions/pins — runchannels.listfirst 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.
- Author: claude-world
- Source: claude-world/claude-agent
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.