Skip to content
PluginStats

@chat-adapter/teams weekly downloads statistics

By chat-adapter (14 listings) · npm · AI SDKs

Microsoft Teams adapter for Chat SDK — Bot Framework webhooks, Adaptive Cards, and Graph API

View on npm Fresh · Oct 18, 2026

@chat-adapter/teams has 207,601 recorded weekly downloads on npm, an increase of 50.5% over the past 30 days, ranking #384 of 2,322 tracked listings.

Weekly downloads
207,601
Official API · Oct 18, 2026
7-day growth
-31.6%
-95.9K weekly downloads
30-day growth
+50.5%
+69.7K weekly downloads
90-day growth
+157%
+126.9K weekly downloads
Rank
#384
Among tracked npm listings

About @chat-adapter/teams

Microsoft Teams adapter for Chat SDK

@chat-adapter/teams

npm package: @chat-adapter/teams

Agent Stack MIT License

Microsoft Teams adapter for Chat SDK.

Documentation: chat-sdk.dev/adapters/official/teams · Guides: vercel.com/kb/chat-sdk

Installation

pnpm add @chat-adapter/teams

Scaffold with the CLI

To scaffold a new Microsoft Teams bot with this adapter preselected:

npx create-chat-sdk@latest my-bot --adapter teams 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.

The adapter auto-detects TEAMS_APP_ID, TEAMS_APP_PASSWORD, and TEAMS_APP_TENANT_ID from environment variables:

import { Chat } from "chat";
import { createTeamsAdapter } from "@chat-adapter/teams";

const bot = new Chat({
  userName: "mybot",
  adapters: {
    teams: createTeamsAdapter({
      appType: "SingleTenant",
    }),
  },
});

bot.onNewMention(async (thread, message) => {
  await thread.post("Hello from Teams!");
});

Configuration

All options are auto-detected from environment variables when not provided. Internally, the adapter maps these options to the Teams SDK (@microsoft/teams.apps).

OptionRequiredDescription
appIdNo*Azure Bot App ID or sync/async resolver. Auto-detected from TEAMS_APP_ID
appPasswordNo**Azure Bot App Password. Auto-detected from TEAMS_APP_PASSWORD
federatedNo**Federated (workload identity) authentication config
tokenNo**Custom (scope, tenantId?) token factory for Bot Framework and Microsoft Graph
webhookVerifierNoCustom raw-body verifier that replaces Microsoft JWT verification
appTypeNo"MultiTenant" or "SingleTenant" (default: "MultiTenant")
appTenantIdFor SingleTenantAzure AD Tenant ID. Auto-detected from TEAMS_APP_TENANT_ID
userNameNoBot display name (default: "bot")
apiUrlNoOverride the Teams API base URL (e.g. for GCC-High or sovereign-cloud deployments). Auto-detected from TEAMS_API_URL
loggerNoLogger instance (defaults to ConsoleLogger("info"))

*appId is required — either via config or TEAMS_APP_ID env var.

**One authentication method is required: appPassword, federated, or token. token takes precedence over federated, which takes precedence over appPassword.

Authentication

Use Vercel Connect to manage the bot identity and tokens, or configure Microsoft app credentials directly.

Option A — Vercel Connect

Use Vercel Connect to resolve the bot's app ID and request short-lived tokens for Bot Framework and Microsoft Graph:

import { createTeamsAdapter } from "@chat-adapter/teams";
import { connectTeamsAdapter } from "@vercel/connect/chat";

const teams = createTeamsAdapter({
  ...connectTeamsAdapter("microsoft-teams/acme-teams"),
});

The helper resolves appId during initialization and supplies a scope-aware token callback. It also verifies Connect-forwarded webhooks with Vercel OIDC instead of Microsoft's native JWT. Enable trigger forwarding to /api/webhooks/teams and omit TEAMS_APP_ID and TEAMS_APP_PASSWORD when using the helper.

The callback requests separate tokens for https://api.botframework.com/.default and https://graph.microsoft.com/.default. Graph reads still require the appropriate installation and consent permissions; Connect uses the bot's home tenant for managed tokens.

An appId resolver runs once during successful initialization. Call await bot.initialize() before using adapter methods directly; Chat initializes automatically before handling webhooks. botUserId becomes available after initialization when using a resolver.

A custom webhookVerifier receives the incoming request and its raw body. Return a truthy value to accept, or return a falsy value or throw to reject with HTTP 401. Without a verifier, the adapter retains Microsoft's native JWT verification.

Option B — Microsoft app credentials

The Teams CLI handles AAD app registration, client secret generation, bot registration, and Teams channel setup in one command.

npm install -g @microsoft/teams.cli
1. Create the app
teams login
teams status          # verify auth + sideloading permissions
teams app create --name "My Bot" --endpoint "https://your-domain.com/api/webhooks/teams" --env .env

[!TIP] For local development, use a tunnel (e.g. devtunnel, ngrok) to expose your local server.

Credentials (CLIENT_ID, CLIENT_SECRET, TENANT_ID) are written to .env. Rename them to match the adapter:

TEAMS_APP_ID=<CLIENT_ID>
TEAMS_APP_PASSWORD=<CLIENT_SECRET>
TEAMS_APP_TENANT_ID=<TENANT_ID>
2. Install in Teams

Get a direct install link:

teams app get <appId> --install-link

Or download the app package for sideloading:

teams app package download <appId> -o my-bot.zip

Then in Teams: Apps > Manage your apps > Upload an app > Upload a custom app.

3. Verify…

Description from the npm listing.

  • chat
  • chat-sdk
  • chatbot
  • teams
  • microsoft-teams
  • microsoft
  • bot
  • adapter
  • bot-framework
  • 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

@chat-adapter/teams weekly downloads on npm, last 90 days: 207,601 weekly downloads as of Oct 18, 2026, +157% over 90 days.@chat-adapter/teamsWeekly downloads on npm · Last 90 days207,601downloads / week+157% over 90 days050K100K150K200K250K300K350K400KJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 22, 2026 – Oct 18, 2026 · 89 observations · Updated Oc…pluginstats.com
@chat-adapter/teams weekly downloads on npm, last 90 days: 207,601 weekly downloads as of Oct 18, 2026, +157% over 90 days.

7/30/90-day growth

@chat-adapter/teams weekly downloads growth on npm: -31.6% over 7 days, +50.5% over 30 days, +157% over 90 days.@chat-adapter/teamsWeekly downloads growth on npm207,601downloads / week now7-day growth-95,890 weekly downloads-31.6%30-day growth+69,673 weekly downloads+50.5%90-day growth+126,850 weekly downloads+157%Growth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@chat-adapter/teams weekly downloads growth on npm: -31.6% over 7 days, +50.5% over 30 days, +157% over 90 days.

Ranking history

@chat-adapter/teams npm ranking history: currently #384 (by weekly downloads).@chat-adapter/teamsnpm ranking · by weekly downloads · Last 90 days#384current rank#380#385#390#395#400#405#410#415Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 18, 2026 – Oct 20, 2026 · 3 observations · Updated Oct 18, 2026pluginstats.com
@chat-adapter/teams npm ranking history: currently #384 (by weekly downloads).

Listing placement

All npm2,320 listings · 116 pages · 1,162 shown · page 20, #4 (overall #384)
All npm: every listing in weekly downloads order

Listing placement

AI SDKs259 listings · 13 pages · page 1, #15 (overall #15)
AI SDKs: every listing in weekly downloads order

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)
Recent weekly downloads observations for @chat-adapter/teams
Date (UTC)Weekly downloadsChange vs. previous
207,601+56.3K
151,317-35.7K
187,014+14.6K
172,419-64.2K
236,660-62.8K
299,4320
299,432-4.1K
303,491-5.2K
308,712-5.9K
314,587+1.1K
313,445-1.6K
315,048+8.6K
306,488-58.8K
365,286—

Similar npm AI SDKs plugins

All 20 @chat-adapter/teams alternatives

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/teams. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.