From routine
Explores and searches Slack messages, channels, and threads via Node.js CLI commands. Use to search conversations, read channel history, get thread replies, or list channels.
npx claudepluginhub delexw/claude-code-miscThis skill uses the workspace's default tool permissions.
Explore and search Slack data using the direct API CLI.
Read, send, search, and manage Slack messages via slk CLI. Handles channels, threads, unreads, drafts, activity, stars, and pins. Activates on Slack check, send, search, unread requests.
Automates Slack workspace tasks via browser automation: check unread channels, navigate, send messages, search conversations, extract data.
Automates Slack messaging to channels/DMs, conversation search, channel/user management, reactions, and threads using Composio toolkit via Rube MCP.
Share bugs, ideas, or general feedback.
Explore and search Slack data using the direct API CLI.
Raw arguments: $ARGUMENTS
Infer from the arguments:
history #engineering).slack.com in the arguments — falls back to $SLACK_WORKSPACE env var if not providedPass --workspace <WORKSPACE> to the CLI when a workspace is inferred from arguments.
These rules are non-negotiable and must be followed on every use of this skill:
D (direct messages) must not be read unless the user explicitly requests it and provides a clear work-related reason.--channel, --user, and --days filters to minimise how much data is fetched. Avoid open-ended bulk reads.Run scripts with network permissions (required_permissions: ["network"]) - they need network access for API calls.
| Command | Purpose | Use When |
|---|---|---|
search | Search messages | Looking for specific topics, mentions, or discussions |
history | Read channel messages | Need recent activity from a channel |
replies | Read thread replies | Need full context of a conversation thread |
channels | List channels | Need to find channel IDs or browse available channels |
recent | Recent messages (all channels) | Quick overview of activity |
user | Get user info by ID | Need to look up username from user ID |
# Search for a topic
node <this-skill>/scripts/slack/slack.js search "quarterly report"
# Search in specific channel
node <this-skill>/scripts/slack/slack.js search "deployment" --channel "#engineering"
# Search from specific user (use Slack username, NOT user ID)
# Use `slack.js user <userId>` to look up a username from a user ID
node <this-skill>/scripts/slack/slack.js search --user "@jane.smith" --limit 20
# Search by date range
node <this-skill>/scripts/slack/slack.js search "release" --after "2025-01-01" --before "2025-01-15"
# Search last N days
node <this-skill>/scripts/slack/slack.js search "decision" --days 7
# Search threads only
node <this-skill>/scripts/slack/slack.js search "decision" --threads-only true
Channel names and IDs both work — the script resolves names to IDs automatically.
# Get recent messages by channel name (preferred — name resolves automatically)
node <this-skill>/scripts/slack/slack.js history --channel "#general" --limit 20
# Get recent messages by channel ID
node <this-skill>/scripts/slack/slack.js history --channel C1234567890 --limit 50
# Get messages from last 7 days
node <this-skill>/scripts/slack/slack.js history --channel "#general" --limit 7d
# Get DM history (use channel ID for DMs)
node <this-skill>/scripts/slack/slack.js history --channel D1234567890 --limit 20
# Get all replies in a thread
node <this-skill>/scripts/slack/slack.js replies --channel C1234567890 --thread 1234567890.123456
# Limit to recent replies
node <this-skill>/scripts/slack/slack.js replies --channel C1234567890 --thread 1234567890.123456 --limit 20
# List public channels (default)
node <this-skill>/scripts/slack/slack.js channels --limit 50
# List public channels with a higher limit
node <this-skill>/scripts/slack/slack.js channels --types public_channel --limit 200
# Get messages from last hour (all channels)
node <this-skill>/scripts/slack/slack.js recent
# Get messages from last 24 hours
node <this-skill>/scripts/slack/slack.js recent --hours 24 --limit 100
# Look up a single user by ID (returns username needed for search)
node <this-skill>/scripts/slack/slack.js user U012AB3CD45
# Look up multiple users at once
node <this-skill>/scripts/slack/slack.js user U012AB3CD45,U012EF6GH78,U012IJ9KL01 --json
Search for the topic:
node <this-skill>/scripts/slack/slack.js search "API redesign" --limit 10 --json
Get thread context (use channelId and threadTs from search results):
node <this-skill>/scripts/slack/slack.js replies --channel C1234567890 --thread 1234567890.123456
Get recent messages:
node <this-skill>/scripts/slack/slack.js history --channel C1234567890 --limit 7d
For any active threads, get full context:
node <this-skill>/scripts/slack/slack.js replies --channel C1234567890 --thread 1234567890.123456
If provided a user's slack handle you can search for mentions (note handles for this script are of the form name not @name - no @ symbol)
# Find mentions in last 7 days (replace <handle> with user's slackHandle)
node <this-skill>/scripts/slack/slack.js search "<handle>" --days 7 --limit 50 --json
"error message"--channel and --user filters for precision#channel format or channel ID@jane.smith), NOT user ID
slack.js user <userId> to find a user's username from their IDYYYY-MM-DD--json for machine-readable JSON output--debug for verbose API debuggingTokens are extracted automatically from the Slack desktop app on every run — no manual token management needed. The only requirement is that Slack is installed and you are signed in.
SLACK_WORKSPACE is required (or pass --workspace on each command). Without it the script cannot determine which workspace to authenticate against and will fail.
SLACK_WORKSPACE - Workspace domain, e.g. myorg.slack.com (required)SLACK_XOXC_TOKEN / SLACK_XOXD_TOKEN - Fallback tokens (only needed if auto-extraction fails)SLACK_USER_AGENT - Slack desktop app user agent string (optional)Tokens are re-extracted automatically on every command — no explicit refresh step is needed. If you get authentication errors, ensure Slack is running and you are signed in, then retry.
To inspect the extracted values (e.g. for debugging):
node <this-skill>/scripts/slack/extract-tokens.js myorg.slack.com
Pass --workspace myorg.slack.com to any command to override the SLACK_WORKSPACE env var.