From hive
Interact with Slack via Python script. Read threads, post messages, upload files. Use when user asks for Slack content, mentions thread URLs, or needs to send messages.
npx claudepluginhub skywalking-dev/hiveThis skill is limited to using the following tools:
Read and write to Slack channels and threads using the Python script at `scripts/slack_handler.py`.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Read and write to Slack channels and threads using the Python script at scripts/slack_handler.py.
SLACK_BOT_TOKEN in .env# Read a thread
python scripts/slack_handler.py read "https://workspace.slack.com/archives/C123/p456"
# Post a message
python scripts/slack_handler.py send C123456 "Hello from Hive"
# Reply to thread
python scripts/slack_handler.py reply C123456 1234567890.123456 "Thread reply"
# Upload file
python scripts/slack_handler.py upload C123456 /path/to/file.pdf
All commands return JSON:
{
"success": true,
"data": {...},
"error": null
}
| Error | Cause | Fix |
|---|---|---|
not_in_channel | Bot not in channel | Invite bot or use public channel |
channel_not_found | Invalid channel ID | Use channel ID (C...) not name |
ratelimited | Too many requests | Wait and retry |
For rich messages, use Block Kit JSON structure:
header → titlesection → content with optional accessoryactions → buttonscontext → footer/metadataEach interactive element needs unique action_id.
Slack uses mrkdwn, not standard Markdown. Many patterns silently break.
| What you want | Markdown (WRONG) | Slack mrkdwn (RIGHT) |
|---|---|---|
| Bold | **text** | *text* |
| Italic | *text* | _text_ |
| Strikethrough | ~~text~~ | ~text~ |
| Link | [text](url) | <url|text> |
#, ##) — use *bold text* with blank lines--- horizontal rules```python)Sections (replace headers): *Section title* + blank line
Structured data (replace tables): *Label:* value on each line
Status lists: :white_check_mark: *Item* — done / :x: *Item* — pending
Code blocks: triple backticks on their own lines, no language tag
Lists: • Item (bullet character, not -)