Jev directory
CommunityJev Repos & SDKs
@typesafe-ai/sdk
The official JavaScript and TypeScript SDK for the TypeSafe API, at version 0.7.0: typed Choice, Score, Noul, and box questions, experimental image inputs, and zstd request compression on Node.js 22.
- Reading time
- 2 min
- Published by
- Community
- Author
- TypeSafe AI
- Last verified
- Oct 2026
- Languages
- TypeScriptJavaScript
- Platforms
- API
- Capabilities
- Open sourceRequires API key
Highlights
- MIT-licensed, version 0.7.0; ships ESM, CommonJS, and TypeScript declarations for Node.js 22 or newer.
- systemOne() sends one state with named choice, score, and noul questions; answer types are inferred from the questions.
- Image input is experimental and opt-in via the TypeSafe-Danger-Zone-Images header; only PNG and JPEG bytes are accepted.
- box() questions require the jev-preview model and return edges as fractions of height and width, with confidence that may be null.
- Request bodies of 1 KiB or more are zstd-compressed on Node.js 22.15+; compression: false disables it entirely.
Watch out
The README shows no pricing, latency, rate limits, or benchmarks, and image support is flagged experimental behind an opt-in header. Calls need a TypeSafe key and the licence covers the client only; check the TypeSafe docs for current models and limits.
Questions about this entry
Short answers drawn from the linked project or page.
The official JavaScript and TypeScript client for the TypeSafe API. Create a TypeSafeClient with TYPESAFE_API_KEY set, send a state plus named questions, and read typed answers such as response.answers.category.choice.
Run npm install @typesafe-ai/sdk on Node.js 22 or newer. The package ships ESM, CommonJS, and TypeScript declarations, and zstd request compression needs Node.js 22.15 or newer; other runtimes send bodies uncompressed.
choice() picks among named options, score() places the state on an ordered rubric, and noul() returns a probability for a yes/no statement. box() locates a region and requires the jev-preview model.
Opt in with the TypeSafe-Danger-Zone-Images header, then place image() values in the content, in withAssets templates, or in assets keyed by reference. Only PNG and JPEG bytes are accepted; WebP and GIF are rejected with a BadRequestError.
Bodies of 1 KiB or more are compressed with zstd when running on Node.js 22.15 or newer; smaller bodies fit in a single TCP segment and are sent as-is. Pass compression: false to disable compression for every request.
Use the jev-preview model for box() questions. The answer holds top, bottom, left, and right as fractions of the image's height and width, and confidence is null when the API does not report one.
No. The README documents usage and options only; pricing, token limits, and current model names are not stated here. The package links to docs.typesafe.ai and to its own client and types source for API options and defaults.
Reactions & coverage
Posts, threads, and videos about this entry from around the web.
X: A doorbell camera on Jev 1.14
From the Jev guides
Original write-ups on what this entry is for.
From the Jev AI model community
Posts from builders shipping with Jev right now.