Pre-release
This release is a pre-release and may not be stable for production use.
@elizaos/plugin-slack
Slack integration plugin for elizaOS agents with Socket Mode support.
Features
- Socket Mode: Real-time event handling via Slack Socket Mode
- Message Operations: Send, edit, delete, read messages
- Reactions: Add and remove emoji reactions
- Pins: Pin and unpin messages, list pinned items
- Channels: List channels, read channel history
- User Info: Get user profile information
- Threads: Full thread support with reply tracking
- Media: Handle file uploads and attachments
- Custom Emoji: List workspace custom emoji
Installation
npm install @elizaos/plugin-slack
# or
bun add @elizaos/plugin-slack
Configuration
Required Environment Variables
# Bot Token (starts with xoxb-)
SLACK_BOT_TOKEN=xoxb-your-bot-token
# App Token for Socket Mode (starts with xapp-)
SLACK_APP_TOKEN=xapp-your-app-token
Optional Environment Variables
# Signing Secret for request verification
SLACK_SIGNING_SECRET=your-signing-secret
# User Token for enhanced permissions (starts with xoxp-)
SLACK_USER_TOKEN=xoxp-your-user-token
# Comma-separated list of channel IDs to restrict bot to
SLACK_CHANNEL_IDS=C123456789,C987654321
# Ignore messages from other bots
SLACK_SHOULD_IGNORE_BOT_MESSAGES=false
# Only respond when mentioned
SLACK_SHOULD_RESPOND_ONLY_TO_MENTIONS=false
Slack App Setup
-
Create a new Slack App at https://api.slack.com/apps
-
Enable Socket Mode in your app settings
-
Generate an App-Level Token with
connections:writescope -
Add the following Bot Token Scopes:
channels:history- Read messages in public channelschannels:read- View basic channel informationchat:write- Send messagesemoji:read- View custom emojifiles:read- View filesgroups:history- Read messages in private channelsgroups:read- View basic private channel informationim:history- Read direct messagesim:read- View basic direct message informationmpim:history- Read group direct messagesmpim:read- View basic group direct message informationpins:read- View pinned itemspins:write- Add and remove pinned itemsreactions:read- View reactionsreactions:write- Add and remove reactionsteam:read- View workspace informationusers:read- View basic user informationusers:read.email- View user email addresses
-
Enable Events and subscribe to:
message.channels- Messages in public channelsmessage.groups- Messages in private channelsmessage.im- Direct messagesmessage.mpim- Group direct messagesapp_mention- When the app is mentionedmember_joined_channel- When a user joins a channelmember_left_channel- When a user leaves a channelreaction_added- When a reaction is addedreaction_removed- When a reaction is removed
-
Install the app to your workspace
Usage
Add to your agent configuration
import slackPlugin from "@elizaos/plugin-slack";
const agent = {
// ... other configuration
plugins: [slackPlugin],
};
Character file configuration
{
"name": "MyAgent",
"clients": ["slack"],
"settings": {
"slack": {
"shouldIgnoreBotMessages": true,
"shouldRespondOnlyToMentions": false
}
}
}
Actions
| Action | Description |
|---|---|
SLACK_SEND_MESSAGE |
Send a message to a channel or thread |
SLACK_REACT_TO_MESSAGE |
Add or remove emoji reactions |
SLACK_READ_CHANNEL |
Read message history from a channel |
SLACK_EDIT_MESSAGE |
Edit an existing message |
SLACK_DELETE_MESSAGE |
Delete a message |
SLACK_PIN_MESSAGE |
Pin a message to a channel |
SLACK_UNPIN_MESSAGE |
Unpin a message from a channel |
SLACK_LIST_PINS |
List pinned messages in a channel |
SLACK_LIST_CHANNELS |
List available channels |
SLACK_GET_USER_INFO |
Get information about a user |
SLACK_EMOJI_LIST |
List custom emoji in the workspace |
Providers
| Provider | Description |
|---|---|
slackChannelState |
Current channel context and metadata |
slackWorkspaceInfo |
Workspace-level information |
slackMemberList |
Members in the current channel |
Events
The plugin emits the following events:
SLACK_MESSAGE_RECEIVED- When a message is receivedSLACK_MESSAGE_SENT- When a message is sentSLACK_REACTION_ADDED- When a reaction is addedSLACK_REACTION_REMOVED- When a reaction is removedSLACK_APP_MENTION- When the bot is mentionedSLACK_MEMBER_JOINED_CHANNEL- When a member joins a channelSLACK_MEMBER_LEFT_CHANNEL- When a member leaves a channelSLACK_FILE_SHARED- When a file is shared
API Reference
SlackService
The main service class providing direct access to Slack functionality:
import { SlackService, SLACK_SERVICE_NAME } from "@elizaos/plugin-slack";
// Get service from runtime
const slackService = runtime.getService(SLACK_SERVICE_NAME) as SlackService;
// Send a message
await slackService.sendMessage(channelId, "Hello!", { threadTs: "..." });
// Add a reaction
await slackService.sendReaction(channelId, messageTs, "thumbsup");
// Get user info
const user = await slackService.getUser(userId);
// List channels
const channels = await slackService.listChannels();
Troubleshooting
Bot not responding to messages
- Verify your
SLACK_BOT_TOKENandSLACK_APP_TOKENare correct - Check that Socket Mode is enabled in your Slack app
- Ensure the bot has been invited to the channel
- Check if
SLACK_SHOULD_RESPOND_ONLY_TO_MENTIONSis enabled
Permission errors
- Verify the bot has all required OAuth scopes
- Reinstall the app to your workspace after adding new scopes
- Check if the channel is private and the bot is a member
Socket Mode connection issues
- Verify your
SLACK_APP_TOKENstarts withxapp- - Check that the app-level token has
connections:writescope - Ensure only one instance of the bot is running per token
License
MIT
Metadata
Release files for elizaos-plugin-slack 2.0.0a5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| elizaos_plugin_slack-2.0.0a5.tar.gz | 28.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| elizaos_plugin_slack-2.0.0a5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.6 kB
Release files / elizaos_plugin_slack-2.0.0a5.tar.gz
| Download URL | elizaos_plugin_slack-2.0.0a5.tar.gz |
|---|---|
| Size | 28.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5c030d54a0b7516185663f4b864b46dc1e0780aaa7f8d7f74156c8f66a112a83
|
|
BLAKE2b-256 checksum How to use checksums |
96e377add105eaa68e4a58ebbbdd0bb2863115cb4ad049c10d0c1d74bc07b8c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / elizaos_plugin_slack-2.0.0a5-py3-none-any.whl
| Download URL | elizaos_plugin_slack-2.0.0a5-py3-none-any.whl |
|---|---|
| Size | 30.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2261b91cacb13c5ebc46690c75c433a904c6b016f6c7f732a2bd7f759f560282
|
|
BLAKE2b-256 checksum How to use checksums |
b0446c71a8624a813650f969353fef51b3848445a6daab641d1c114a9ffab847
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|