PythonClaw slack
Slack API integration — send/read messages, react to messages, pin items, and fetch member info. Use when: user wants to send a Slack message, check Slack channels, react to a message, or manage pins. NOT for: Discord (use Discord channel), email (use email skill), or real-time Slack event streaming.
install
source · Clone the upstream repo
git clone https://github.com/ericwang915/PythonClaw
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ericwang915/PythonClaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/pythonclaw/templates/skills/communication/slack" ~/.claude/skills/ericwang915-pythonclaw-slack && rm -rf "$T"
manifest:
pythonclaw/templates/skills/communication/slack/SKILL.mdsource content
Slack
Interact with Slack workspaces via the Slack Web API.
When to Use
✅ USE this skill when:
- "Send a message to #general"
- "React to that Slack message with a thumbs up"
- "Read recent messages from #engineering"
- "Pin this message in the channel"
- "Who is user U12345?"
- "List pinned items in #announcements"
When NOT to Use
❌ DON'T use this skill when:
- Discord messaging → use the Discord channel directly
- Email → use
skillemail - Real-time Slack event listening → requires a Slack app with event subscriptions
- File uploads → use Slack's files.upload API directly
Setup
- Create a Slack app at https://api.slack.com/apps
- Add Bot Token Scopes:
,chat:write
,channels:read
,channels:history
,reactions:write
,reactions:read
,pins:write
,pins:readusers:read - Install the app to your workspace
- Copy the Bot User OAuth Token (starts with
)xoxb- - Configure in
:pythonclaw.json
"skills": { "slack": { "token": "xoxb-your-bot-token" } }
Commands
Send a message
python {skill_path}/slack_api.py send --channel "#general" --text "Hello from PythonClaw"
Read recent messages
python {skill_path}/slack_api.py read --channel "#general" --limit 10
React to a message
python {skill_path}/slack_api.py react --channel "C123" --timestamp "1712023032.1234" --emoji "white_check_mark"
Pin a message
python {skill_path}/slack_api.py pin --channel "C123" --timestamp "1712023032.1234"
Get member info
python {skill_path}/slack_api.py user --user-id "U123"
List channels
python {skill_path}/slack_api.py channels
Notes
- Channel names can be used with
prefix or as channel IDs (C...)# - Message timestamps serve as unique message IDs in Slack
- Rate limits: ~1 request/second for most methods
- Bot must be invited to channels to read/post messages
Resources
| File | Description |
|---|---|
| Slack Web API client |