@chat-adapter/slack weekly downloads statistics
By chat-adapter (14 listings) · npm · AI SDKs
Slack adapter for Chat SDK — webhooks, Block Kit cards, OAuth, slash commands, and AI streaming
@chat-adapter/slack has 672,066 recorded weekly downloads on npm, a decrease of 12.9% over the past 30 days, ranking #242 of 2,322 tracked listings.
About @chat-adapter/slack
@chat-adapter/slack
npm package:
@chat-adapter/slack
Slack adapter for Chat SDK. Configure single-workspace or multi-workspace OAuth deployments.
Documentation: chat-sdk.dev/adapters/official/slack · Guides: vercel.com/kb/chat-sdk
Installation
pnpm add @chat-adapter/slack
Scaffold with the CLI
To scaffold a new Slack bot with this adapter preselected:
npx create-chat-sdk@latest my-bot --adapter slack memory
Visit the adapters directory to see other available official and vendor-official adapters.
Quick start
For managed credentials and webhook verification, see Vercel Connect.
For bots deployed to a single Slack workspace. The adapter auto-detects SLACK_BOT_TOKEN and SLACK_SIGNING_SECRET from environment variables:
import { Chat } from "chat";
import { createSlackAdapter } from "@chat-adapter/slack";
const bot = new Chat({
userName: "mybot",
adapters: {
slack: createSlackAdapter(),
},
});
bot.onNewMention(async (thread, message) => {
await thread.post("Hello from Slack!");
});
Configuration
All options are auto-detected from environment variables when not provided. You can call createSlackAdapter() with no arguments if the env vars are set.
| Option | Required | Description |
|---|---|---|
botToken | No | Bot token (xoxb-...) or a function returning one (sync or async) for rotation/lazy fetch. Auto-detected from SLACK_BOT_TOKEN |
signingSecret | No* | Signing secret for webhook verification. Auto-detected from SLACK_SIGNING_SECRET |
webhookVerifier | No* | Custom verifier (request, body) => unknown | Promise<unknown> used in place of signingSecret. Returning a string substitutes the verified body for downstream parsing |
mode | No | Connection mode: "webhook" (default) or "socket" |
appToken | No** | App-level token (xapp-...) for socket mode. Auto-detected from SLACK_APP_TOKEN |
socketForwardingSecret | No | Shared secret for authenticating forwarded socket events. Auto-detected from SLACK_SOCKET_FORWARDING_SECRET, falls back to appToken |
clientId | No | App client ID for multi-workspace OAuth. Auto-detected from SLACK_CLIENT_ID |
clientSecret | No | App client secret for multi-workspace OAuth. Auto-detected from SLACK_CLIENT_SECRET |
encryptionKey | No | AES-256-GCM key for encrypting stored tokens. Auto-detected from SLACK_ENCRYPTION_KEY |
installationKeyPrefix | No | Prefix for the state key used to store workspace installations. Defaults to slack:installation. The full key is {prefix}:{teamId} (or {prefix}:{enterpriseId} for Enterprise Grid org-wide installs) |
installationProvider | No | External installation lookup { getInstallation(installationId, isEnterpriseInstall) => Promise<SlackInstallation | null> }. When set, bypasses the internal state adapter for token resolution on incoming webhooks. Read-only — manage your own writes externally |
apiUrl | No | Override the Slack Web API base URL (e.g. for GovSlack or a self-hosted gateway). Auto-detected from SLACK_API_URL |
fetch | No | Fetch for response URLs and Socket Mode webhook forwarding; defaults to global fetch |
fileTransport | No | Guarded file download transport; custom transports own connection/DNS policy |
webClientOptions | No | Options forwarded to Slack WebClient instances, excluding slackApiUrl. Supports retryConfig, per-request timeout, and rejectRateLimitedCalls; agent also configures Socket Mode, tls only its HTTP calls |
logger | No | Logger instance (defaults to ConsoleLogger("info")) |
*signingSecret is required for webhook mode — either via config, SLACK_SIGNING_SECRET env var, or a webhookVerifier.
**appToken is required for socket mode — either via config or SLACK_APP_TOKEN env var.
Authentication
Vercel Connect
Use Vercel Connect to source the bot token at runtime instead of storing one. The connectSlackAdapter() helper from @vercel/connect/chat wires both a botToken resolver and a webhookVerifier for Connect trigger-forwarded webhooks:
import { createSlackAdapter } from "@chat-adapter/slack";
import { connectSlackAdapter } from "@vercel/connect/chat";
createSlackAdapter({
...connectSlackAdapter("slack/acme-slack"),
});
This is equivalent to passing a botToken resolver that calls getToken and a webhookVerifier that validates the Vercel OIDC token Connect attaches. Omit signingSecret / SLACK_SIGNING_SECRET when using it.
Single-workspace mode
Provide SLACK_BOT_TOKEN and SLACK_SIGNING_SECRET as shown in Quick start.
Token rotation
botToken accepts a function returning a string or Promise<string> — the resolver is invoked per API call, so it composes with Slack token rotation (12-hour TTL) or lazy fetch from a secret manager:
createSlackAdapter({
botToken: async () => await secrets.get("slack-bot-token"),
});
If the resolver is expensive (e.g. a vault round-trip), implement caching inside the resolver itself.
Custom webhook verification…
Description from the npm listing.
- chat
- chat-sdk
- chatbot
- slack
- slack-bot
- bot
- adapter
- block-kit
- messaging
- ai-agent
- ai-sdk
- vercel
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (122)Similar npm AI SDKs plugins
All 20 @chat-adapter/slack alternativesData source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/@chat-adapter/slack. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.