Skip to content
PluginStats

@chat-adapter/linear weekly downloads statistics

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

Linear adapter for Chat SDK — @mentions in issue comments and Linear agent sessions

View on npm Fresh · Oct 17, 2026

@chat-adapter/linear has 51,728 recorded weekly downloads on npm, a decrease of 52.7% over the past 30 days.

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

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

PluginStats has 543 daily observations since Apr 23, 2025; the latest is from Oct 17, 2026.

Weekly downloads
51,728
Official API · Oct 17, 2026
7-day growth
-40.9%
-35.7K weekly downloads
30-day growth
-52.7%
-57.6K weekly downloads
90-day growth
-36.0%
-29.1K weekly downloads
Rank
#554
Among tracked npm listings

About @chat-adapter/linear

@chat-adapter/linear

npm package: @chat-adapter/linear

Linear adapter for Chat SDK. Respond to @mentions in issue comment threads and Linear app-actor agent sessions.

The Linear adapter treats issue comments as messages and issues as threads.

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

Installation

Scaffold with the CLI

To scaffold a new Linear 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.

The adapter auto-detects credentials from LINEAR_API_KEY, LINEAR_ACCESS_TOKEN, LINEAR_CLIENT_CREDENTIALS_CLIENT_ID/LINEAR_CLIENT_CREDENTIALS_CLIENT_SECRET, or LINEAR_CLIENT_ID/LINEAR_CLIENT_SECRET, plus LINEAR_WEBHOOK_SECRET and LINEAR_BOT_USERNAME:

The adapter defaults to mode: "comments" and handles Comment webhooks. For Vercel Connect and Linear app-actor installations, we recommend explicitly setting mode: "agent-sessions" to handle AgentSessionEvent webhooks, including mentions and replies within a session.

Configuration

All options are auto-detected from environment variables when not provided.

| Option | Required | Description |

| apiKey | No* | Personal API key. Auto-detected from LINEAR_API_KEY | | accessToken | No* | OAuth access token. Accepts a string, or (Vercel Connect) a () => string \| Promise resolver invoked per API call. Auto-detected from LINEAR_ACCESS_TOKEN | | clientId | No* | Multi-tenant OAuth app client ID. Auto-detected from LINEAR_CLIENT_ID | | clientSecret | No* | Multi-tenant OAuth app client secret. Auto-detected from LINEAR_CLIENT_SECRET | | encryptionKey | No | AES-256-GCM key for encrypting stored OAuth tokens. Auto-detected from LINEAR_ENCRYPTION_KEY | | clientCredentials | No* | Single-tenant client credentials config | | clientCredentials.scopes | No | Scopes for client credentials auth. Defaults to ["read", "write", "comments:create", "issues:create"] | | mode | No | Inbound webhook handling mode. Defaults to "comments". Set "agent-sessions" for the recommended Connect setup | | webhookSecret | No** | Webhook signing secret. Auto-detected from LINEAR_WEBHOOK_SECRET | | webhookVerifier | No** | Custom verifier (request, body) => unknown \| Promise used in place of webhookSecret. Takes precedence over webhookSecret/LINEAR_WEBHOOK_SECRET. Required in Connect mode | | userName | No | Bot display name. Auto-detected from LINEAR_BOT_USERNAME (default: "linear-bot") | | apiUrl | No | Override the Linear GraphQL API base URL. Auto-detected from LINEAR_API_URL | | logger | No | Logger instance (defaults to ConsoleLogger("info")) |

*One of apiKey, accessToken (string or Vercel Connect resolver), top-level clientId/clientSecret, or clientCredentials is required (via config or env vars).

**Either webhookSecret (via config or LINEAR_WEBHOOK_SECRET) or a webhookVerifier is required. When webhookVerifier is set it takes precedence and the secret is ignored.

Authentication

Option A — Vercel Connect

Use Vercel Connect to source the Linear access token at runtime instead of storing a long-lived token or OAuth secret. Pass accessToken as a resolver and verify inbound webhooks with webhookVerifier (a Vercel OIDC token from Connect trigger forwarding) instead of a webhook secret.

The simplest path is the connectLinearAdapter() helper from @vercel/connect/chat:

Or wire the fields yourself:

We recommend agent sessions for Vercel Connect bots. Enable Agent session events on the Linear app and use an app-actor installation. Omitting mode keeps the "comments" default; existing bots do not need to change their configuration. Changing the adapter mode does not change the app's webhook subscriptions or permissions.

accessToken accepts a string or () => string | Promise resolver invoked per API call, so it composes with Connect's short-lived tokens. When webhookVerifier is set it takes precedence over webhookSecret and LINEAR_WEBHOOK_SECRET.

Freshness: OIDC verification replaces Linear's signature + timestamp check, so request freshness relies on the short-lived OIDC token's expiry rather than the >5 min timestamp rejection, and there is no built-in delivery de-duplication. Keep your webhook handlers idempotent (Linear can also deliver events out of order).

Option B — Personal API key

Best for personal projects, testing, or single-workspace bots. Actions are attributed to you as an individual.

1. Go to Settings > Security & Access 2. Under Personal API keys, click Create key 3. Select Only select permissions and enable Create issues, Create comments 4. Choose team access 5. Click Create and set LINEAR_API_KEY

Option C — Pre-obtained OAuth access token

Use this when your app already manages the OAuth flow and you just want the adapter to operate with a single workspace token.

Option D — Multi-tenant OAuth installs

Use top-level clientId / clientSecret for Slack-style multi-tenant installs. Each Linear workspace installation is stored separately, webhook requests resolve the correct workspace token by organizationId, and withInstallation() lets you target a specific organization outside webhook handling.

1. Go to Settings > API > Applications 2. Create an OAuth2 application with your bot's name and icon 4. Note the Client ID and Client Secret

Example callback route:

Example background job:

Option E — Single-tenant client credentials

If you want app identity without multi-tenant installs, use the explicit clientCredentials config. The adapter fetches and refreshes the token automatically.

Token encryption

For multi-tenant OAuth installs, pass a base64-encoded 32-byte key as encryptionKey (or set LINEAR_ENCRYPTION_KEY) to encrypt stored access and refresh tokens at rest using AES-256-GCM:…

Description from the npm listing.

  • chat
  • chat-sdk
  • chatbot
  • linear
  • linear-bot
  • bot
  • adapter
  • issues
  • project-management
  • ai-agent
  • ai-sdk
  • vercel

Where @chat-adapter/linear 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 28, #14 (overall #554)
All npm: every listing in weekly downloads order
PNG SVG
AI SDKs250 listings · 13 pages · page 2, #5 (overall #25)
AI SDKs: every listing in weekly downloads order
PNG SVG

Charts

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

Adoption over time

@chat-adapter/linear weekly downloads on npm, last 90 days: 51,728 weekly downloads as of Oct 17, 2026, -36.0% over 90 days.@chat-adapter/linearWeekly downloads on npm · Last 90 days51,728downloads / week-36.0% over 90 days050K100K150K200K250K300KJul 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/linear weekly downloads on npm, last 90 days: 51,728 weekly downloads as of Oct 17, 2026, -36.0% over 90 days.
PNG SVG

7/30/90-day growth

@chat-adapter/linear weekly downloads growth on npm: -40.9% over 7 days, -52.7% over 30 days, -36.0% over 90 days.@chat-adapter/linearWeekly downloads growth on npm51,728downloads / week now7-day growth-35,739 weekly downloads-40.9%30-day growth-57,572 weekly downloads-52.7%90-day growth-29,135 weekly downloads-36.0%Growth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
@chat-adapter/linear weekly downloads growth on npm: -40.9% over 7 days, -52.7% over 30 days, -36.0% over 90 days.
PNG SVG

Ranking history

@chat-adapter/linear npm ranking history: currently #554 (by weekly downloads).@chat-adapter/linearnpm ranking · by weekly downloads · Last 90 days#554current rank#150#200#250#300#350#400#450#500#550#600Jul 21Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19rankOct 17, 2026 – Oct 19, 2026 · 3 observations · Updated Oct 17, 2026pluginstats.com
@chat-adapter/linear npm ranking history: currently #554 (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 (543)
Recent weekly downloads observations for @chat-adapter/linear
Date (UTC)Weekly downloadsChange vs. previous
51,728-11.5K
63,214+2.3K
60,893-18.2K
79,047-19.9K
98,9660
98,966+18.6K
80,348-7.1K
87,467-3.1K
90,591-6.8K
97,425-10.2K
107,664-19.7K
127,326-43.4K
170,723-47K
217,737—

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