mcpField
S
slack-messaging

slack-messaging

github.com/obraProductivity435223 installsUpdated 22w ago
Repository

About slack-messaging

slack-messaging is a skill for reading and sending Slack messages from the command line with slackcli. It authenticates through browser session tokens, requires no Slack app creation, and supports multiple workspaces.

Key features

  1. 01List channels, DMs, and IDs
  2. 02Send channel or direct messages
  3. 03Reply in message threads
  4. 04Read channel and thread messages
  5. 05Manage authentication for multiple workspaces

Use cases

  1. 01Send messages to Slack channels from a terminal
  2. 02Read channel messages as JSON
  3. 03Reply to an existing thread
  4. 04Verify that an integration posted successfully

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/obra/superpowers-lab --skill slack-messaging

After installing, type/slack-messagingin Claude Code to confirm it loaded.

Bundled filesscripts/extract-tokens

Details

From the project README

Slack Messaging via slackcli

Send and read Slack messages from the command line using slackcli (shaharia-lab/slackcli).

Installation

Download the binary:

curl -sL -o /usr/local/bin/slackcli \
  "https://github.com/shaharia-lab/slackcli/releases/download/v0.1.1/slackcli-linux"
chmod +x /usr/local/bin/slackcli

macOS (Intel): replace slackcli-linux with slackcli-macos macOS (Apple Silicon): replace with slackcli-macos-arm64

Authentication

slackcli uses browser session tokens (xoxc + xoxd) - no Slack app creation required.

Interactive Setup
./scripts/extract-tokens <workspace-url>

This walks the user through extracting tokens from browser DevTools.

Manual Setup
slackcli auth login-browser \
  --xoxd="xoxd-..." \
  --xoxc="xoxc-..." \
  --workspace-url=https://your-workspace.slack.com
Verify Auth
slackcli auth list

Finding Channels

Use slackcli conversations list to discover channels and their IDs:

# List all channels
slackcli conversations list

# Filter output
slackcli conversations list | grep -i "channel-name"

Sending Messages

# Send to a channel (use channel ID from conversations list)
slackcli messages send --recipient-id=C0XXXXXXXX --message="Hello from CLI"

# Send to a DM (use user's DM channel ID)
slackcli messages send --recipient-id=D0XXXXXXXX --message="Hey"

# Reply in a thread
slackcli messages send --recipient-id=C0XXXXXXXX --message="Thread reply" --thread-ts=1769756026.624319

The --recipient-id is always a channel ID (C...) or DM channel ID (D...).

Reading Messages

# Read last N messages from a channel
slackcli conversations read C0XXXXXXXX --limit=10

# Read as JSON (for parsing)
slackcli conversations read C0XXXXXXXX --limit=10 --json

# Read a thread
slackcli conversations read C0XXXXXXXX --thread-ts=1769756026.624319

Listing Channels

slackcli conversations list

Returns all public channels, private channels, and DMs with their IDs.

Testing Slack Integrations

To verify a bot or integration posted a message correctly:

# Read the channel, check for the expected message
slackcli conversations read CHANNEL_ID --limit=5 --json | jq '.messages[] | select(.text | contains("expected text"))'

To send a test message and verify the round-trip:

# Send
slackcli messages send --recipient-id=CHANNEL_ID --message="integration test $(date +%s)"

# Read back
slackcli conversations read CHANNEL_ID --limit=1 --json

Multiple Workspaces

slackcli supports multiple workspaces. Run the auth flow for each workspace you need:

# Add first workspace
./scripts/extract-tokens https://workspace-one.slack.com

# Add second workspace
./scripts/extract-tokens https://workspace-two.slack.com

# List all authenticated workspaces
slackcli auth list

When sending messages, slackcli automatically routes to the correct workspace based on the channel ID.

Token Notes

  • Browser tokens (xoxc/xoxd) act as the logged-in user, not a bot
  • Messages sent appear as the user, not an app
  • Tokens expire when the user logs out of the browser session
  • To refresh: re-extract tokens from a logged-in browser session
  • All workspace credentials are stored at ~/.config/slackcli/workspaces.json

Comments

Markdown supported