Features
- Direct messages and channel support
- Thread conversations
- Media attachments
- Reactions and interactive components
- Slash commands
- Message streaming with coalescing
- Socket Mode for firewall-friendly operation
Setup
Create Slack App
- Go to Slack API Apps
- Click “Create New App” → “From scratch”
- Enter app name and select workspace
- Click “Create App”
Enable Socket Mode
- In app settings, go to “Socket Mode”
- Enable Socket Mode
- Generate an app-level token with
connections:writescope - Copy the app token (starts with
xapp-)
Configure Bot Token
- Go to “OAuth & Permissions”
- Add bot token scopes:
app_mentions:readchat:writechannels:historychannels:readgroups:historygroups:readim:historyim:readim:writempim:historympim:readreactions:writefiles:write
- Install app to workspace
- Copy the bot token (starts with
xoxb-)
Enable Event Subscriptions
- Go to “Event Subscriptions”
- Enable Events
- Subscribe to bot events:
app_mentionmessage.channelsmessage.groupsmessage.immessage.mpim
Configuration
Basic Configuration
Environment Variables
Multi-Account Setup
Connect to multiple Slack workspaces:Security
DM Policy
Channel Configuration
User Token (Optional)
For read-only operations or enhanced permissions:Advanced Features
Thread Support
off: No threadingauto: Thread if original message was in threadalways: Always reply in thread
Media Settings
Slash Commands
- Go to “Slash Commands”
- Create command:
/simpleclaw - No request URL needed (Socket Mode)
Message Streaming
Slack supports message streaming with coalescing:Message Features
Sending Messages
Target Formats
- Channel:
C01234ABCDE - User DM:
user:U01234ABCDEorU01234ABCDE - Thread: Use channel ID with
--thread-id
Reactions
React to messages:Rich Formatting
Slack supports mrkdwn formatting:Channel Management
Getting Channel IDs
- Right-click channel name in Slack
- Select “Copy link”
- Extract ID from URL:
https://workspace.slack.com/archives/C01234ABCDE
Live Directory
List channels and users from Slack API:Troubleshooting
Bot Not Receiving Messages
Bot Not Receiving Messages
Check Socket Mode connection:Verify event subscriptions are enabled and bot events are configured in Slack App settings.
Missing Bot Scopes
Missing Bot Scopes
Ensure all required OAuth scopes are added in “OAuth & Permissions”:
chat:writechannels:historyapp_mentions:read
App Token Issues
App Token Issues
App token must have
connections:write scope.Verify in Slack App settings → Basic Information → App-Level Tokens.Channel Messages Ignored
Channel Messages Ignored
With Or use
groupPolicy: allowlist, channel must be explicitly allowed:groupPolicy: open (mention-gated).Mention Not Working
Mention Not Working
Ensure bot is mentioned with
@BotName in the message.App must be added to the channel for mentions to work.CLI Commands
API Reference
Slack channel implementation:extensions/slack/src/channel.ts
Channel ID
slack
Target ID Format
- Channels: Slack channel ID (e.g.,
C01234ABCDE) - User DMs:
user:U01234ABCDEor user ID - Threads: Channel ID with thread timestamp
Capabilities
- Chat types:
direct,channel,thread - Features:
reactions,threads,media,nativeCommands - Delivery mode:
direct - Text chunk limit: 4000 characters
- Streaming: Supported with coalescing (minChars: 1500, idleMs: 1000)
Configuration Schema
SeeSlackConfigSchema in source for full schema.
Best Practices
Use Socket Mode
Socket Mode works behind firewalls without webhook URLs
Minimal Scopes
Only request OAuth scopes your bot needs
Allowlist Channels
Restrict bot to specific channels:
Thread Responses
Keep conversations organized:
Next Steps
Security Configuration
Configure DM policies and allowlists
Slash Commands
Set up custom Slack commands