Build with Jev (TypeSafe AI): choose Python, TypeScript, HTTP, Claude Code or a gateway
This hub helps you pick the code interface for your stack and then work through a build in a sensible order: make the call, decide what happens when it fails, test the failures, and set a confidence cutoff. Route prices and data terms are on Where to use Jev, not here.
Python backends should use typesafe-sdk 0.7.2. TypeScript projects choose between @typesafe-ai/sdk 0.6.0 and the AI SDK's experimental experimental_evaluate. Any other language can use one HTTP POST. If you are adding Jev to a coding agent, read the failure behaviour of the integration before installing it. The two official SDKs retry 408, 429 and 5xx twice and accept an injected transport for tests. Raw HTTP and most agent integrations have no retries. Documented package sources and docs; versions checked 29 Sep 2026
Which page first
- Is your service written in Python?Yes: PythonSDK call, raw HTTP and a tested retry client
- Is it TypeScript or JavaScript (Node, Next.js, Edge, Workers)?Yes: TypeScriptFour paths compared: official SDK, AI SDK, fetch, Workers binding
- Do you want Jev to check what a coding agent does (Claude Code, Codex, OpenCode, Cursor or Hermes Agent hooks, MCP, LangChain agents)?Yes: Claude Code and MCP · Codex, OpenCode, Cursor, HermesWhich integration fails open, what it sends, default modes
- Any other language or a no-code toolRaw HTTPRequest shape in the curl example; retry rules on errors and rate limits
Code interfaces compared
One row per interface. "Retries built in" is what you get without writing any retry code. Use it with the build steps below: if a row says "none", you need the errors page before you ship.
| Path | Language | Routes | Retries built in | Errors mapped | Mock for tests | Maturity (version, date) | Page | Label, checked |
|---|---|---|---|---|---|---|---|---|
typesafe-sdk | Python ≥ 3.10 | TypeSafe direct; base-URL override (OpenRouter, Vercel; TypeSafe also lists a Pydantic gateway, which did not list TypeSafe on 5 Oct) | 2, on 408/429/5xx; 30 s budget | 400–404, 422, 429, 5xx | transport / http_client | 0.7.2, 26 Sep | Python | Documented version 29 Sep; rest 28 Sep |
@typesafe-ai/sdk | TS/JS, Node ≥ 20 | TypeSafe direct; baseURL override | 2, on 408/429/5xx; 10 s per attempt | 400–404, 422, 429, ≥ 500 | fetch option | 0.6.0, 15 Sep | TypeScript | Documented 29 Sep |
AI SDK experimental_evaluate | TS, Node ≥ 22 | Vercel AI Gateway; TypeSafe direct via @ai-sdk/typesafe-ai | 2 (Core) | APICallError, InvalidResponseDataError | Experimental_EvaluationMockModelV4 | ai 7.0.122 (28 Sep); experimental | TypeScript | Documented 29 Sep |
| Raw HTTP | Any | Any System One endpoint | None | Yours to map | Local mock server | API v1 | TypeScript, errors | Documented; T01 and T04 Tested offline |
| Claude Code and MCP integrations | JS / Python | Varies | Varies; none in most | On a Jev error, of the 6 guards counted: 1 fail-closed, 1 fail-open, 3 advisory, 1 fallback (built-in classifier) | Varies | See the audit | Claude Code and MCP | Documented 29 Sep; oh-my-claudecode v5.6.0 on 3 Oct (failure path unchanged; 2,000 ms default timeout); two guard rows added 6 Oct; v5.6.2 and jev-mcp 0.14.1 noted 7 Oct, not yet read |
| Coding-agent plugins, hooks and MCP servers (Codex, OpenCode, Cursor, OpenClaw, Hermes Agent) | JS/TS, Python, PowerShell | Varies | Varies | Of 8 that act on Jev's answer, 4 let the tool call run on a Jev error (fail-open or a fallback that can allow it) and 4 hold it (fail-closed); 2 of the 8 do nothing until switched on | See the page | 18 read; 1 vendor-published (OpenClaw), none from TypeSafe | Coding agents | Documented 6 Oct; 5 open cells settled 7 Oct |
| Failure checklist (any path) | Any | Any | Counted per implementation | On a Jev error, 35 of 64 implementations stop or hold the action, 13 fall back, 8 are advisory or return no decision, and 8 let it through unchecked | See testing without a key | 64 implementations in 11 use cases at pinned commits, including 4 eval judges | When Jev fails | Documented recomputed 7 Oct |
| Framework packages (LangChain, Pydantic AI, Effect, Spring AI, LlamaIndex) | Python, TS/JS, Java | Through each package's own client | Varies by package | 4 of 6 raise Jev errors to your code; the community Spring AI filter and the LlamaIndex reranker fail open; the LangChain middlewares fail closed | See the page | 6 packages; 4 pre-1.0; none from TypeSafe | Framework integrations | Documented 5 Oct |
| n8n nodes (no-code) | n8n workflows | Varies by node (see the page) | Varies by node | All 5 nodes read stop the workflow on a Jev error unless Continue On Fail is on | See the page | Official @typesafe-ai/n8n-nodes-typesafe-ai 0.9.0; 4 community nodes | Jev n8n node | Documented 3 Oct |
Build steps, in order
Each step has its own page. The projects and guards the pool has audited differ most in steps 2 and 3: what happens when the call fails, and whether that path is tested (counted across 11 use cases on when Jev fails).
- Make one call
Pick the interface above and run a single Choice, Score or Noul question with a pinned model ID.
Python · TypeScript · Framework packages - Decide the failure policy
For each decision, choose fail closed, hold for review, or fail open, and which status codes to retry. Check your code against what 64 real implementations do.
Errors and rate limits · When Jev fails (checklist) - Test the failure branches
Drive no key, 401, HTML 403, 422, 429, 529, timeout, malformed and out-of-set answers without a key.
Testing without a key - Set the confidence cutoff
Choose where low-confidence answers go, using your own labelled data.
Confidence thresholds
Adding someone else's guard to a coding agent skips step 1 but not the others: check its failure policy on Claude Code and MCP or coding agents before you rely on it.
What this hub does not cover
- No code path listed here was run against the live Jev API; the pool has no key. Only the offline mock-server clients (T01 Python, T04 Node) were run.
- Prices, credits and data terms are on the Access and cost pages. Framework packages are compared on framework integrations (5 Oct); n8n nodes are on Jev n8n node (3 Oct).
- Versions change often: the Python SDK went from 0.5.7 to 0.7.2 in two weeks. Check the date on each row.