Agent MessengerAgent Messenger
SDK

Slack

TypeScript SDK reference for Slack — client, real-time events, and types.

Installation

npm install agent-messenger
import {
  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 shutdown

Available Events

EventDescription
messageNew message, edit, delete, thread reply
reaction_added / reaction_removedReaction changes
member_joined_channel / member_left_channelMember changes
user_typingTyping indicator
presence_changeUser active/away status
channel_created / channel_deleted / channel_rename / channel_archive / channel_unarchiveChannel lifecycle
slack_eventCatch-all for every RTM event
connected / disconnectedConnection lifecycle
errorConnection 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'

On this page