name: slack description: Read-only Slack workspace access. USE WHEN user asks about Slack messages OR channel activity OR thread discussions OR searching Slack OR wants to catch up on conversations OR references a Slack URL.
Slack
Read-only access to Slack workspaces. Supports Enterprise Grid (Red Hat) via direct curl API and regular workspaces (Tekton) via slackdump.
Workflow Routing
| Workflow | Trigger | Action |
|---|---|---|
| Read History | “what happened in #channel”, “catch up on channel” | SlackRead.sh history <channel> |
| Read Thread | “read this thread”, Slack URL pasted | SlackRead.sh thread <url> |
| Search | “search slack for”, “find discussion about” | SlackRead.sh search <query> |
| List Channels | “list slack channels”, “which channels” | SlackRead.sh channels |
| Find User | “who is”, “find user” | SlackRead.sh users <query> |
Tools
| Tool | Purpose |
|---|---|
tools/SlackRead.sh |
Main CLI — all Slack read operations |
Tool path: ~/.config/claude/skills/Slack/tools/SlackRead.sh
Setup
Red Hat Workspace (curl backend)
Tokens stored in passage (age-encrypted password store):
# Store token and cookie from browser DevTools
echo 'xoxc-...' | passage insert -m slack/redhat/token
echo 'xoxd-...' | passage insert -m slack/redhat/cookie
Getting tokens from browser:
- Open Red Hat Slack in browser → DevTools (F12)
- Network tab → filter
api/→ click any request → copytokenfrom request body - Storage tab → Cookies →
.slack.com→ cookied(starts withxoxd-)
Tekton Workspace (slackdump backend)
slackdump workspace new https://tektoncd.slack.com
Uses EZ-Login 3000 (browser-based, tokens encrypted in ~/.local/cache/slackdump/).
Operational Guidance for the Agent
- Default workspace is
redhat— use-w tektonfor Tekton. - Red Hat uses search.messages for channel discovery —
conversations.listis blocked on Enterprise Grid. - Use channel IDs when known — faster than name resolution for Red Hat.
- Search is the most versatile command on Enterprise Grid — use
in:#channel after:datesyntax. - User names resolve incrementally on Red Hat — discovered from search results, not bulk-fetched.
- Output is compact text — summarize and present nicely to the user.
- Read-only — no sending, reacting, or modifying.
- If auth fails with
not_authedorinvalid_auth, tokens may have expired — ask user to refresh from browser.
Commands
Check Auth
~/.config/claude/skills/Slack/tools/SlackRead.sh auth
~/.config/claude/skills/Slack/tools/SlackRead.sh -w tekton auth
Read Channel History
# Red Hat (default workspace)
~/.config/claude/skills/Slack/tools/SlackRead.sh history team-ocp-pipeline
~/.config/claude/skills/Slack/tools/SlackRead.sh history team-ocp-pipeline --since 2026-03-25 --limit 20
~/.config/claude/skills/Slack/tools/SlackRead.sh history CG5GV6CJD
# Tekton
~/.config/claude/skills/Slack/tools/SlackRead.sh -w tekton history pipeline-dev
Read a Thread
# By channel ID + thread timestamp
~/.config/claude/skills/Slack/tools/SlackRead.sh thread CG5GV6CJD 1774841643.132339
# By Slack URL (tekton)
~/.config/claude/skills/Slack/tools/SlackRead.sh -w tekton thread https://tektoncd.slack.com/archives/CLCCEBUMU/p1772459500074799
Search Messages
# Slack search query syntax works
~/.config/claude/skills/Slack/tools/SlackRead.sh search "release 1.22 in:#team-ocp-pipeline"
~/.config/claude/skills/Slack/tools/SlackRead.sh search "from:@chmouel after:2026-03-20"
~/.config/claude/skills/Slack/tools/SlackRead.sh -w tekton search "resolver caching"
List/Search Users
~/.config/claude/skills/Slack/tools/SlackRead.sh users vincent
~/.config/claude/skills/Slack/tools/SlackRead.sh -w tekton users vdemeest
Output Format
Channel History
#channel-name — N messages
---username [YYYY-MM-DD HH:MM]: [N replies] message text
Search Results
Search: "query" — N results (showing up to 20)
---
username [YYYY-MM-DD HH:MM] in #channel: message text (max 300 chars)
Thread
Thread — N messages
---
username [YYYY-MM-DD HH:MM]: message text
Workspaces
| Workspace | Backend | Auth | Notes |
|---|---|---|---|
redhat (default) |
curl | passage slack/redhat/{token,cookie} |
Enterprise Grid — conversations.list blocked, use search |
tekton |
slackdump | EZ-Login 3000 | Regular workspace — all features work |
Examples
Example 1: Catch up on team channel
User: "What happened in #team-ocp-pipeline this week?"
→ Run: SlackRead.sh history team-ocp-pipeline --since 2026-03-24
→ Agent summarizes release planning, defects, discussions
Example 2: Read a Slack thread
User: "Read this thread CG5GV6CJD 1774841643.132339"
→ Run: SlackRead.sh thread CG5GV6CJD 1774841643.132339
→ Agent presents the full thread conversation
Example 3: Search across Slack
User: "Search for discussions about TLS on Slack"
→ Run: SlackRead.sh search "TLS in:#team-ocp-pipeline"
→ Agent summarizes relevant messages
Example 4: Tekton workspace
User: "What's happening in Tekton #pipeline-dev?"
→ Run: SlackRead.sh -w tekton history pipeline-dev
→ Agent summarizes upstream Tekton discussions
Dependencies
| Tool | Purpose | Source |
|---|---|---|
curl + jq |
Slack API calls (curl backend) | nixpkgs |
passage |
Token/cookie storage (curl backend) | nixpkgs |
slackdump |
Slack access (slackdump backend) | nixpkgs (v4.0.2) |
sqlite3 |
Search results (slackdump backend) | nixpkgs |
Limitations
- Read-only — cannot send messages, react, or modify anything
- Enterprise Grid —
conversations.listandusers.listare blocked; use search to discover channels and users - Token expiry — browser tokens (xoxc/xoxd) expire; re-extract from browser when auth fails
- Speed — curl backend is fast (~2-5s), slackdump backend is slower (~15-25s)
Integration
This skill works with:
- Email skill — cross-reference Slack discussions with email threads
- GitHub skill — follow up on PRs/issues mentioned in Slack messages
- Jira skill — connect Slack discussions to Jira tickets (SRVKP-* references)