Skip to content
PluginStats

@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

View on npm Fresh · Oct 17, 2026

@chat-adapter/slack has 500,066 recorded weekly downloads on npm, a decrease of 35.1% over the past 30 days.

It ranks #259 of 2,256 tracked npm listings by weekly downloads.

Over 90 days, weekly downloads changed by -18.8%.

PluginStats has 121 daily observations since Jun 19, 2026; the latest is from Oct 17, 2026.

Weekly downloads
500,066
Official API · Oct 17, 2026
7-day growth
-54.6%
-601.2K weekly downloads
30-day growth
-35.1%
-270.6K weekly downloads
90-day growth
-18.8%
-115.9K weekly downloads
Rank
#259
Among tracked npm 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

Scaffold with the CLI

To scaffold a new Slack bot with this adapter preselected:

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:

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 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 }. 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:

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 — the resolver is invoked per API call, so it composes with Slack token rotation (12-hour TTL) or lazy fetch from a secret manager:

If the resolver is expensive (e.g. a vault round-trip), implement caching inside the resolver itself.

Custom webhook verification

Pass webhookVerifier to replace the built-in HMAC check — useful when verification runs in a proxy or signing layer ahead of your handler:

If both signingSecret and webhookVerifier are set, webhookVerifier wins — it also takes precedence over the SLACK_SIGNING_SECRET env var, so an env-configured deployment can't silently shadow a verifier you wired up. When using webhookVerifier, you are responsible for replay/timestamp protection — the built-in 5-minute timestamp tolerance only applies to the signingSecret path.

Multi-workspace mode

For apps installed across multiple Slack workspaces via OAuth, omit botToken and provide OAuth credentials instead. The adapter resolves tokens dynamically from your state adapter using the team_id from incoming webhooks — or enterprise_id for Enterprise Grid org-wide installs (is_enterprise_install: true).

When you pass any auth-related config (like clientId), the adapter won't fall back to env vars for other auth fields, preventing accidental mixing of auth modes.

OAuth callback

The adapter handles the full Slack OAuth V2 exchange. Point your OAuth redirect URL to a route that calls handleOAuthCallback:

If your install flow uses a specific redirect URI, pass the same value here that you used during the authorize step. This is especially useful when one app supports multiple redirect URLs. When no option is provided, the adapter still falls back to redirect_uri on the callback request URL.…

Description from the npm listing.

  • chat
  • chat-sdk
  • chatbot
  • slack
  • slack-bot
  • bot
  • adapter
  • block-kit
  • messaging
  • ai-agent
  • ai-sdk
  • vercel

Where @chat-adapter/slack sits in the listing

Each band is one page of 20. Weekly downloads on a log 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.

All npm2,256 listings · 113 pages · page 13, #19 (overall #259)
All npm: every listing in weekly downloads order
PNG SVG
AI SDKs250 listings · 13 pages · page 1, #3 (overall #3)
AI SDKs: every listing in weekly downloads order
PNG SVG

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@chat-adapter/slack weekly downloads on npm, last 90 days: 500,066 weekly downloads as of Oct 17, 2026, -18.8% over 90 days.@chat-adapter/slackWeekly downloads on npm · Last 90 days500,066downloads / week-18.8% over 90 days0200K400K600K800K1M1.2M1.4M1.6MJul 19Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17downloads / weekobservedarchived (Internet Archive)no observationsJul 21, 2026 – Oct 17, 2026 · 89 observations · Updated Oc…pluginstats.com
@chat-adapter/slack weekly downloads on npm, last 90 days: 500,066 weekly downloads as of Oct 17, 2026, -18.8% over 90 days.
PNG SVG

7/30/90-day growth

@chat-adapter/slack weekly downloads growth on npm: -54.6% over 7 days, -35.1% over 30 days, -18.8% over 90 days.@chat-adapter/slackWeekly downloads growth on npm500,066downloads / week now7-day growth-601,231 weekly downloads-54.6%30-day growth-270,632 weekly downloads-35.1%90-day growth-115,885 weekly downloads-18.8%Growth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
@chat-adapter/slack weekly downloads growth on npm: -54.6% over 7 days, -35.1% over 30 days, -18.8% over 90 days.
PNG SVG

Ranking history

@chat-adapter/slack npm ranking history: currently #259 (by weekly downloads).@chat-adapter/slacknpm ranking · by weekly downloads · Last 90 days#259current rank#257#258#259#260#261Jul 21Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19rankOct 18, 2026 – Oct 19, 2026 · 2 observations · Updated Oct 17, 2026pluginstats.com
@chat-adapter/slack npm ranking history: currently #259 (by weekly downloads).
PNG SVG

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.

Recent observations

Full history (121)
Recent weekly downloads observations for @chat-adapter/slack
Date (UTC)Weekly downloadsChange vs. previous
500,066-124.8K
624,869+5.8K
619,067-231.2K
850,254-225K
1,075,2540
1,075,254-11.9K
1,087,114-14.2K
1,101,297+2.3K
1,098,999-112
1,099,111+3K
1,096,069-1.7K
1,097,795-255.8K
1,353,560-40.4K
1,393,960—

Similar npm AI SDKs plugins

Data 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 19, 2026. See the methodology.