@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.
@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.
About @warmhub/sdk-ts
@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 (
r1above) is a Thing one of whose declared Shapes composesAssertion, with its target indata.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 carrieswarnings.shapeless. A raw operation spells itshapes: []. A Shape (hub/shapes/X) is written withshapes: [], nevershapeless.keepShapes: true(revise only): the SDK reads the Thing's current Shapes and version and sends both, the version asexpectedVersion(a suppliedexpectedVersionwins). 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 passshapes). 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
7/30/90-day growth
Ranking history
Listing placement
Listing placement
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)Similar npm MCP servers plugins
All 20 @warmhub/sdk-ts alternativesData 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.