SDK
Slack
TypeScript SDK reference for Slack — client, real-time events, and types.
Installation
npm install agent-messengerimport {
SlackClient,
SlackListener,
SlackError,
CredentialManager,
} from 'agent-messenger/slack'SlackClient
The main client for interacting with Slack's API programmatically.
import { SlackClient } from 'agent-messenger/slack'
const client = new SlackClient(token, cookie)Real-Time Events
SlackListener connects to Slack's RTM WebSocket for instant event streaming.
import { SlackClient, SlackListener } from 'agent-messenger/slack'
const client = new SlackClient(token, cookie)
const listener = new SlackListener(client)
listener.on('message', (event) => {
console.log(`#${event.channel} <${event.user}>: ${event.text}`)
})
listener.on('reaction_added', (event) => {
console.log(`:${event.reaction}: by ${event.user}`)
})
// Catch-all for any RTM event
listener.on('slack_event', (event) => {
console.log(event.type, event)
})
listener.on('error', (err) => console.error(err))
await listener.start() // connects via RTM WebSocket
// listener.stop() // clean shutdownAvailable Events
| Event | Description |
|---|---|
message | New message, edit, delete, thread reply |
reaction_added / reaction_removed | Reaction changes |
member_joined_channel / member_left_channel | Member changes |
user_typing | Typing indicator |
presence_change | User active/away status |
channel_created / channel_deleted / channel_rename / channel_archive / channel_unarchive | Channel lifecycle |
slack_event | Catch-all for every RTM event |
connected / disconnected | Connection lifecycle |
error | Connection or API error |
Features:
- No channel subscription needed — receives all workspace events
- Auto-reconnect with exponential backoff
- Ping/pong keepalive
Types
import type {
SlackChannel,
SlackMessage,
SlackUser,
SlackReaction,
SlackFile,
SlackSearchResult,
SlackUnreadCounts,
SlackThreadView,
SlackSavedItem,
SlackActivityItem,
SlackDM,
SlackDraft,
SlackChannelSection,
SlackRTMEvent,
SlackRTMMessageEvent,
SlackRTMReactionEvent,
SlackRTMMemberEvent,
SlackRTMChannelEvent,
SlackRTMPresenceEvent,
SlackRTMUserTypingEvent,
SlackRTMGenericEvent,
SlackListenerEventMap,
WorkspaceCredentials,
Config,
} from 'agent-messenger/slack'Zod Schemas
Runtime-validated schemas are also exported for parsing API responses:
import {
SlackChannelSchema,
SlackReactionSchema,
SlackFileSchema,
SlackMessageSchema,
SlackUserSchema,
WorkspaceCredentialsSchema,
ConfigSchema,
} from 'agent-messenger/slack'