slack-messaging
Original:🇺🇸 English
Translated
1 scriptsChecked / no sensitive code detected
Use when asked to send or read Slack messages, check Slack channels, test Slack integrations, or interact with a Slack workspace from the command line.
11installs
Sourceobra/superpowers-lab
Added on
NPX Install
npx skill4agent add obra/superpowers-lab slack-messagingTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Slack Messaging via slackcli
Send and read Slack messages from the command line using (shaharia-lab/slackcli).
slackcliInstallation
Download the binary:
bash
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/slackclimacOS (Intel): replace with
macOS (Apple Silicon): replace with
slackcli-linuxslackcli-macosslackcli-macos-arm64Authentication
slackcli uses browser session tokens (xoxc + xoxd) - no Slack app creation required.
Interactive Setup
bash
./scripts/extract-tokens <workspace-url>This walks the user through extracting tokens from browser DevTools.
Manual Setup
bash
slackcli auth login-browser \
--xoxd="xoxd-..." \
--xoxc="xoxc-..." \
--workspace-url=https://your-workspace.slack.comVerify Auth
bash
slackcli auth listFinding Channels
Use to discover channels and their IDs:
slackcli conversations listbash
# List all channels
slackcli conversations list
# Filter output
slackcli conversations list | grep -i "channel-name"Sending Messages
bash
# 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.624319The is always a channel ID (C...) or DM channel ID (D...).
--recipient-idReading Messages
bash
# 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.624319Listing Channels
bash
slackcli conversations listReturns all public channels, private channels, and DMs with their IDs.
Testing Slack Integrations
To verify a bot or integration posted a message correctly:
bash
# 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:
bash
# Send
slackcli messages send --recipient-id=CHANNEL_ID --message="integration test $(date +%s)"
# Read back
slackcli conversations read CHANNEL_ID --limit=1 --jsonMultiple Workspaces
slackcli supports multiple workspaces. Run the auth flow for each workspace you need:
bash
# 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 listWhen 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