Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
idanbeck avatar

Slack Skill

  • 17 installs
  • 12 repo stars
  • Updated August 4, 2026
  • idanbeck/claude-skills

Read, search, and send Slack messages across multiple workspaces, accessing channels and DMs.

About

A skill that reads, searches, and sends Slack messages across channels and DMs in multiple workspaces. A developer uses it to check Slack and send messages.

  • Multi-workspace channels and DMs
  • Confirmation required before sending

Slack Skill by the numbers

  • 17 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #1,379 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/idanbeck/claude-skills --skill slack-skill

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs17
repo stars12
Last updatedAugust 4, 2026
Repositoryidanbeck/claude-skills

What it does

Read, search, and send Slack messages across multiple workspaces, accessing channels and DMs.

Files

SKILL.mdMarkdownGitHub ↗

Slack Skill - Messaging & Channels

Read, search, and send Slack messages. Access channels and DMs.

CRITICAL: Message Sending Confirmation Required

Before sending ANY message, you MUST get explicit user confirmation.

When the user asks to send a Slack message: 1. First, show them the complete message details:

  • Workspace (if multiple)
  • Channel/User
  • Message text (or thread context if replying)

2. Ask: "Do you want me to send this message?" 3. ONLY run the send command AFTER the user explicitly confirms 4. NEVER send a message without this confirmation

First-Time Setup (~3 minutes)

1. Create a Slack App

1. Go to Slack API Apps 2. Click Create New AppFrom scratch 3. Name it (e.g., "Claude Assistant") and select your workspace 4. Click Create App

2. Add Bot Scopes

1. In the sidebar, click OAuth & Permissions 2. Scroll to ScopesBot Token Scopes 3. Add these scopes:

  • channels:history - Read public channel messages
  • channels:read - List public channels
  • chat:write - Send messages
  • groups:history - Read private channel messages
  • groups:read - List private channels
  • im:history - Read DM messages
  • im:read - List DMs
  • im:write - Send DMs
  • mpim:history - Read group DM messages
  • mpim:read - List group DMs
  • users:read - List users
  • reactions:write - Add/remove emoji reactions
  • search:read - Search messages (optional)

3. Install to Workspace

1. Scroll up to OAuth Tokens for Your Workspace 2. Click Install to Workspace 3. Review permissions and click Allow 4. Copy the Bot User OAuth Token (starts with xoxb-)

4. Save Token

Create the config file:

echo '{"default": {"token": "xoxb-YOUR-TOKEN-HERE", "workspace": "your-workspace"}}' > ~/.claude/skills/slack-skill/config.json

5. Add Bot to Channels

The bot must be invited to channels to read/send messages:

  • In Slack, go to the channel
  • Type /invite @YourBotName

Commands

List Channels

python3 ~/.claude/skills/slack-skill/slack_skill.py channels [--workspace NAME]

List Users

python3 ~/.claude/skills/slack-skill/slack_skill.py users [--workspace NAME]

Read Channel Messages

python3 ~/.claude/skills/slack-skill/slack_skill.py read CHANNEL [--limit N] [--workspace NAME]

CHANNEL can be:

  • Channel name: #general
  • Channel ID: C0XXXXXX
  • User for DM: @username

Send Message (Requires Confirmation)

python3 ~/.claude/skills/slack-skill/slack_skill.py send CHANNEL --message "Your message" [--thread-ts TIMESTAMP] [--workspace NAME]

Arguments:

  • CHANNEL - Channel name (#general), ID, or user (@username)
  • --message / -m - Message text (required)
  • --thread-ts / -t - Reply in thread (optional)
  • --workspace / -w - Use specific workspace

Search Messages

python3 ~/.claude/skills/slack-skill/slack_skill.py search "query" [--limit N] [--workspace NAME]

Get Thread

python3 ~/.claude/skills/slack-skill/slack_skill.py thread CHANNEL THREAD_TS [--workspace NAME]

User Info

python3 ~/.claude/skills/slack-skill/slack_skill.py user USERNAME_OR_ID [--workspace NAME]

Add/Remove Emoji Reaction

python3 ~/.claude/skills/slack-skill/slack_skill.py react CHANNEL TS EMOJI [--remove] [--workspace NAME]

Arguments:

  • CHANNEL - Channel name or ID
  • TS - Message timestamp
  • EMOJI - Emoji name (e.g., eyes, white_check_mark, or :thumbsup:)
  • --remove / -r - Remove reaction instead of add

Multi-Workspace Support

Add workspaces to ~/.claude/skills/slack-skill/config.json:

{
  "default": {
    "token": "xoxb-default-token",
    "workspace": "main-workspace"
  },
  "work": {
    "token": "xoxb-work-token",
    "workspace": "company-workspace"
  }
}

Use --workspace work to specify which workspace.

Examples

Check recent messages in #general

python3 ~/.claude/skills/slack-skill/slack_skill.py read "#general" --limit 10

Send a message to a channel

python3 ~/.claude/skills/slack-skill/slack_skill.py send "#engineering" -m "Build completed successfully!"

Reply in a thread

python3 ~/.claude/skills/slack-skill/slack_skill.py send "#general" -m "Thanks!" -t "1234567890.123456"

DM someone

python3 ~/.claude/skills/slack-skill/slack_skill.py send "@john" -m "Hey, quick question..."

Search for messages

python3 ~/.claude/skills/slack-skill/slack_skill.py search "deployment issue" --limit 20

Output

All commands output JSON for easy parsing.

Requirements

pip install slack_sdk

Bridge Mode (Real-time Auto-Respond)

The bridge listens for incoming messages and auto-responds using Claude Code:

python3 ~/.claude/skills/slack-skill/slack_bridge.py --auto

Emoji Status Feedback

When processing messages, the bridge shows status via emoji reactions:

  • hourglass_flowing_sand - Working on response
  • white_check_mark - Response sent
  • 👀 eyes - Acknowledged (read but not responding)
  • 🚫 no_entry - User not in whitelist

Thread Reply Handling

The bridge tracks threads it has posted to. When someone replies to a tracked thread: 1. Evaluates if a response is needed (questions, confirmations, substantial messages) 2. If responding: shows working → responds in thread → shows done 3. If not responding: adds 👀 to acknowledge the message was seen

Bridge Setup

Requires Socket Mode. In your Slack app settings: 1. Enable Socket Mode under Settings 2. Create an App-Level Token with connections:write scope 3. Add the token to config as app_token:

{
  "default": {
    "token": "xoxb-bot-token",
    "app_token": "xapp-app-level-token",
    "workspace": "your-workspace"
  }
}

Security Notes

  • Bot tokens don't expire but can be revoked from Slack app settings
  • Token stored locally in ~/.claude/skills/slack-skill/config.json
  • Revoke access: Your Apps → Select app → Revoke All Tokens

Sources

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.