Skip to content
PluginStats

@warmhub/sdk-ts weekly downloads statistics

By warmhub (2 listings) · npm · MCP servers

The TypeScript SDK for WarmHub — create repos, commit and query data, and compound knowledge with your AI agents.

View on npm Stale · Oct 18, 2026

@warmhub/sdk-ts has 7,970 recorded weekly downloads on npm, a decrease of 65.6% over the past 30 days, ranking #1013 of 2,391 tracked listings.

Weekly downloads
7,970
Official API · Oct 18, 2026
7-day growth
-32.5%
-3.8K weekly downloads
30-day growth
-65.6%
-15.2K weekly downloads
90-day growth
+323%
+6.1K weekly downloads
Rank
#1013
Among tracked npm listings

About @warmhub/sdk-ts

<p align="center"> <img src="https://warmhub.ai/logo-light.svg" width="200" alt="WarmHub logo"> </p>

@warmhub/sdk-ts

TypeScript SDK for WarmHub.

📖 Full docs: docs.warmhub.ai/sdk/overview/ · API reference: docs.warmhub.ai/sdk-reference/readme/ · Release notes: docs.warmhub.ai/sdk/typescript/changelog/

Upgrading

CHANGELOG.md ships inside this package. It is migration-guide style: every breaking change is written as what it was, what it is now, and the exact edit with before/after code. Read it before a version bump.

# Installed copy, offline:
cat node_modules/@warmhub/sdk-ts/CHANGELOG.md

It is also browsable on the npm page under Code → CHANGELOG.md.

Install

npm install @warmhub/sdk-ts

Node 22 callers verify downloaded repository checkpoints through the isolated subpath. The verifier consumes caller-supplied bytes and performs no fetch or WarmHub authentication:

import { createReadStream } from 'node:fs'
import { verifyRepositoryCheckpointArchive } from '@warmhub/sdk-ts/checkpoint'

const result = await verifyRepositoryCheckpointArchive(
  createReadStream('repository-checkpoint.zip'),
)

Get a Token

The WH_TOKEN used below is a personal access token. Mint one with the WarmHub CLI:

wh auth login
wh token create --name my-app
export WH_TOKEN=eyJhbGciOi...

See Personal Access Tokens for scopes, rotation, and CI usage.

Quickstart

import { WarmHubClient } from '@warmhub/sdk-ts'

const client = new WarmHubClient({
  auth: { getToken: async () => process.env.WH_TOKEN },
})

// One-time setup. Skip these three calls (or catch CONFLICT) on re-runs.
await client.org.create('acme')
await client.repo.create('acme', 'world', 'Game world')
await client.shape.create(
  'acme',
  'world',
  'Location',
  { x: 'number', y: 'number', label: 'string' },
  { eventRequestId: crypto.randomUUID() },
)

await client.commit.apply(
  'acme',
  'world',
  'seed cave',
  client.ops().add('cave', {
    shapes: ['Location'],
    data: { x: 0, y: 0, label: 'Dark Cave' },
  }),
)

const head = await client.thing.head('acme', 'world', { shape: 'Location' })

For the connect-and-read flow without setup, see the Quickstart. For reference on shapes, things, and writes, see Data Modeling.

Function Logs

Backend function console.* lines are suppressed by default. SDK consumers can opt into log replay for debugging:

const client = new WarmHubClient({
  auth: { getToken: async () => process.env.WH_TOKEN },
  functionLogs: 'raw',
})

Entrypoints

  • @warmhub/sdk-ts: core client, types, errors, OperationBuilder (client.ops())

Error Handling

import { isRetryable, isWarmHubError } from '@warmhub/sdk-ts'

try {
  await client.repo.get('acme', 'world')
} catch (err) {
  if (isWarmHubError(err) && err.kind === 'NOT_FOUND') {
    // handle missing repo
  }
  if (isRetryable(err)) {
    // retry strategy
  }
  throw err
}

Writing

A write names a Thing by its full name (taken literally, / included) and states its Shapes. Build writes with client.ops(); every add and revise states its Shapes in exactly one way, or the builder throws a WriteOperationError (VALIDATION_ERROR, with operationIndex) before any request:

import { shapeName } from '@warmhub/sdk-ts'

const ops = client
  .ops()
  .add('acme', { shapes: ['Deal'], data: { company: 'Acme' } })
  .add('scratch', { shapeless: true, data: { note: 'free' } })
  .revise('acme', { shapes: ['Deal'], data: { company: 'Acme 2' } })
  .add('r1', { shapes: ['Rating'], data: { about: 'acme', score: 5 } })
  .add('crew', { shapes: ['Set'], data: { members: ['acme'] } })
  .rename('scratch', 'scratch-2')
  .retract('crew', { reason: 'disbanded' })
  // A Shape is the Thing hub/shapes/X, written with shapes: [].
  .add(shapeName('Deal'), { shapes: [], data: { fields: { company: 'string' } } })

await client.commit.apply('acme', 'world', 'seed', ops)

commit.apply, commit.validate and commit.applyStreaming also take plain WriteOperation[] ({ operation: 'add', name, shapes, data }). A v1-shaped operation (kind, Shape/name adds, top-level about, collection type/members) is refused, and the error shows its v2 form. Raw v1 input from typed TypeScript needs a cast: the v1 types are gone.

  • An assertion (r1 above) is a Thing one of whose declared Shapes composes Assertion, with its target in data.about.
  • shapes: ['Deal', 'Contactable']: bare Shape names. A pin (Deal@v2) is refused: a write always certifies under each Shape's head version.
  • shapeless: true (builder option): no Shape; the data is stored but not validated, and the operation result carries warnings.shapeless. A raw operation spells it shapes: []. A Shape (hub/shapes/X) is written with shapes: [], never shapeless.
  • keepShapes: true (revise only): the SDK reads the Thing's current Shapes and version and sends both, the version as expectedVersion (a supplied expectedVersion wins). A Thing revised earlier in the same submission carries that revise's Shapes and no version; one added, or renamed to or from, earlier in the same submission is refused before anything is sent (submit it in a later request, or pass shapes). keepShapes pins the version it read; a cross-process resubmit of the same submissionId can conflict; explicit shapes is the retry-safe form. The Shapes are sent bare, so the revise re-certifies under each Shape's head version.…

Description from the npm listing.

  • warmhub
  • sdk
  • typescript
  • ai
  • agents
  • mcp
  • knowledge
  • knowledge-graph
  • assertions
  • trust
  • trpc

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

@warmhub/sdk-ts weekly downloads on npm, last 90 days: 7,970 weekly downloads as of Oct 18, 2026, +323% over 90 days.@warmhub/sdk-tsWeekly downloads on npm · Last 90 days7,970downloads / week+323% over 90 days010K20K30K40KJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 23, 2026 – Oct 18, 2026 · 88 observations · Updated Oc…pluginstats.com
@warmhub/sdk-ts weekly downloads on npm, last 90 days: 7,970 weekly downloads as of Oct 18, 2026, +323% over 90 days.

7/30/90-day growth

@warmhub/sdk-ts weekly downloads growth on npm: -32.5% over 7 days, -65.6% over 30 days, +323% over 90 days.@warmhub/sdk-tsWeekly downloads growth on npm7,970downloads / week now7-day growth-3,834 weekly downloads-32.5%30-day growth-15,188 weekly downloads-65.6%90-day growth+6,087 weekly downloads+323%Growth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@warmhub/sdk-ts weekly downloads growth on npm: -32.5% over 7 days, -65.6% over 30 days, +323% over 90 days.

Ranking history

@warmhub/sdk-ts npm ranking history: currently #1013 (by weekly downloads).@warmhub/sdk-tsnpm ranking · by weekly downloads · Last 90 days#1013current rank#400#500#600#700#800#900#1000#1100Jul 23Aug 7Aug 22Sep 6Sep 21Oct 6Oct 21rankOct 17, 2026 – Oct 21, 2026 · 5 observations · Updated Oct 18, 2026pluginstats.com
@warmhub/sdk-ts npm ranking history: currently #1013 (by weekly downloads).

Listing placement

All npm2,389 listings · 120 pages · 1,196 shown · page 51, #20 (overall #1,020)
All npm: every listing in weekly downloads order

Listing placement

MCP servers300 listings · 15 pages · page 10, #11 (overall #191)
MCP servers: 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 (544)
Recent weekly downloads observations for @warmhub/sdk-ts
Date (UTC)Weekly downloadsChange vs. previous
7,970+1.1K
6,829-505
7,334+2.8K
4,508-3.5K
8,042-3.4K
11,4660
11,466-338
11,804-1K
12,816-1.6K
14,429-2.4K
16,802-2K
18,763-6.2K
24,970-8.4K
33,417—

Similar npm MCP servers plugins

All 20 @warmhub/sdk-ts 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/@warmhub/sdk-ts. First seen Oct 16, 2026; last successful collection Oct 21, 2026. See the methodology.