Skip to content
PluginStats

llm-connect weekly downloads statistics

By maxgfr · npm · AI SDKs

Connect a web app to any LLM provider through the AI SDK: provider registry, model creation, connection test, a settings store and speech-to-text (provider models, or NVIDIA Parakeet, Canary and Whisper in the page), with a React adapter

View on npm Fresh · Oct 29, 2026

llm-connect has 1,237 recorded weekly downloads on npm, ranking #1524 of 2,667 tracked listings.

Weekly downloads
1,237
Official API · Oct 27, 2026
7-day growth
—
Insufficient history
30-day growth
—
Insufficient history
90-day growth
—
Insufficient history
Rank
#1524
Among tracked npm listings

About llm-connect

llm-connect

Let the users of a web app bring their own LLM: pick a provider and a model from a catalog, paste a key (or point at Ollama / LM Studio), test the connection, save, then call the model through the AI SDK straight from the browser.

  • Framework-free core: provider registry, createModel / loadModel, testConnection, and a settings store you can drive from any UI. llm-connect/react binds it to React; Svelte reads it as a store.
  • Five providers built in: OpenAI, Anthropic (and Anthropic-compatible APIs), Google, Mistral, and every provider of the generic @ai-sdk/openai-compatible SDK (DeepSeek, Z.ai, Groq…). Each SDK loads only when used.
  • The catalog comes from llm-models, built live in the browser (liveCatalog) with a static models.json as fallback, and a recommended model per provider.
  • The key never sits in clear text: secureStorage encrypts it with AES-GCM under a non-extractable key, createKeyVault keeps the keys of several providers behind a passphrase, and a custom endpoint must be https (plain http only on this machine).
  • Each provider's request rules: reasoning effort per provider and model, what each model accepts (sampling, prefill, tools, web search), Claude's adaptive thinking, stateless OpenAI Responses calls, headers that pass a browser's CORS preflight, and errors classified without the key.
  • Speech to text: transcribe with the provider's own transcription model (OpenAI, Gemini, Mistral, Groq), or on the device with NVIDIA Parakeet or Canary (llm-connect/nemo) or Whisper (llm-connect/whisper), all in one shape and timed to the word.

Install

npm install llm-connect llm-models ai @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google @ai-sdk/mistral @ai-sdk/openai-compatible

ai (v7), the @ai-sdk/* packages (v4) and @ai-sdk/openai-compatible (v3) are optional peers: install the ones your users can pick. react (18+) is only needed for llm-connect/react.

The store builds the catalog in the browser when settings open (see The catalog). Write the fallback at build time:

npx llm-models catalog --npm callable --require openai,anthropic,google,mistral --out public/models.json

Call a model

import { generateText } from "ai";
import { loadModel } from "llm-connect";

const model = await loadModel(settings); // imports @ai-sdk/anthropic on first use
const { text } = await generateText({ model, prompt: "Hello" });

settings is what the store saves (LlmSettings):

Field
apiKey, modelThe key and the catalog model id
providerId, providerName, providerNpm, providerApiThe catalog provider: its SDK package and base URL
customEndpoint, customModelAn OpenAI-compatible server (Ollama, LM Studio, vLLM…); wins over the provider
headersExtra request headers
languageCode of the language answers are written in ("fr")

Both take options as a second argument:

OptionDefault
fetchglobalThis.fetchThe fetch every request of the model goes through: route them through your own wrapper (logging, a proxy, a network policy)
strictHeadersfalseSend only the headers the provider's API defines (plus content-type and accept); the settings' headers are dropped

createModel(settings) does the same synchronously, for providers you registered yourself:

import { createModel, registerProvider, fromSDK } from "llm-connect";
import { register as registerAnthropic } from "llm-connect/providers/anthropic";
import { createOpenAI } from "@ai-sdk/openai";

registerAnthropic(); // or "llm-connect/providers/all" for the five
registerProvider("openai", fromSDK(createOpenAI));
registerProvider("my-llm", (config) => myLanguageModel(config.apiKey, config.model));

The registry is shared by every copy of llm-connect loaded in the page, so a library and the app that resolve different installs still see the same providers.

What the built-in providers take care of:

  • A custom endpoint goes through the OpenAI SDK with Chat Completions; the official OpenAI URL keeps the Responses API.
  • Every request goes through guardedFetch, which removes the user-agent header the AI SDK adds (no provider's CORS preflight allows it, and Firefox sends it).
  • Anthropic's own API gets the anthropic-dangerous-direct-browser-access header. An Anthropic-compatible provider (MiniMax…) gets its own base URL, so its key never goes to Anthropic, and not that header, which its preflight does not allow. Its base URL works with or without the trailing /v1 (anthropicBaseUrl): gateways document it without, for Anthropic's own clients, as Z.ai does with https://api.z.ai/api/anthropic.
  • A gateway that answers an error with HTTP 200 and a JSON body (Z.ai: {"code":500,"msg":"404 NOT_FOUND","success":false}) gets the status the body stands for (maskedErrorStatus), so the call fails with the provider's message instead of a parse error or a stream that ends without a finish.
  • The generic SDK refuses a provider without URL, asks for the usage chunk at the end of a stream (stream_options.include_usage), and turns structured output (json_schema) into json_object plus the schema in a system message, for APIs such as GLM.

guardedFetch(kind, { fetch, strictHeaders }) is exported for providers you register yourself: pass it as their fetch.

Call options

What a call may carry depends on the provider and the model. callOptions builds the provider options for the model the settings point to, to spread into streamText or generateText:

import { streamText } from "ai";
import { callOptions, callProblem, loadModel, resolveCapabilities, providerKindOf } from "llm-connect";…

Description from the npm listing.

  • llm
  • ai
  • ai-sdk
  • byok
  • openai
  • anthropic
  • ollama
  • lm-studio
  • react
  • svelte
  • browser
  • transcription
  • speech-to-text
  • whisper
  • parakeet
  • canary
  • nvidia

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

llm-connect weekly downloads on npm, last 90 days: 1,237 weekly downloads as of Oct 27, 2026.llm-connectWeekly downloads on npm · Last 90 days1,237downloads / week1.1K1.2K1.2K1.3K1.3K1.4K1.4KJul 29Aug 13Aug 28Sep 12Sep 27Oct 12Oct 27downloads / weekOct 27, 2026 – Oct 27, 2026 · 1 observations · Updated Oct 27, 2026pluginstats.com
llm-connect weekly downloads on npm, last 90 days: 1,237 weekly downloads as of Oct 27, 2026.

7/30/90-day growth

llm-connect weekly downloads growth on npm: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.llm-connectWeekly downloads growth on npm1,237downloads / week now7-day growthinsufficient historyInsufficient history30-day growthinsufficient historyInsufficient history90-day growthinsufficient historyInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 27, 2026pluginstats.com
llm-connect weekly downloads growth on npm: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.

Ranking history

llm-connect npm ranking history: currently #1524 (by weekly downloads).llm-connectnpm ranking · by weekly downloads · Last 90 days#1524current rank#1522#1523#1524#1525#1526Jul 31Aug 15Aug 30Sep 14Sep 29Oct 14Oct 29rankOct 29, 2026 – Oct 29, 2026 · 1 observations · Updated Oct 27, 2026pluginstats.com
llm-connect npm ranking history: currently #1524 (by weekly downloads).

Listing placement

All npm2,667 listings · 134 pages · 1,334 shown · page 82, #13 (overall #1,633)
All npm: every listing in weekly downloads order

Listing placement

AI SDKs297 listings · 15 pages · page 9, #15 (overall #175)
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 (1)
Recent weekly downloads observations for llm-connect
Date (UTC)Weekly downloadsChange vs. previous
1,237—

Similar npm AI SDKs plugins

All 20 llm-connect 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/llm-connect. First seen Oct 29, 2026; last successful collection Oct 29, 2026. See the methodology.