Learn
How to Use Jev
How to use TypeSafe Jev: get access, send state plus Choice, Score, or Noul questions, and branch on typed answers in Python, TypeScript, or cURL.
Quick answer
Get a TypeSafe API key, or use OpenRouter or Vercel AI Gateway if new console signups are still paused. Then POST state and typed questions to /v1/systemone. Use Choice, Score, and Noul. Your code reads the answers and decides what happens next.
Using Jev is a function call, not a chat session. You send evidence plus typed questions; you get values your code can if on.
This page is the “how to use Jev / how to use Jev AI” path. The first raw request lives on Getting Started. Language-specific walks are Python, TypeScript, and cURL.
1. Get access
The 2026-09-15 launch post said Jev was in early access, with people coming off a waitlist. On 2026-09-24 TypeSafe posted that new direct console signups are paused, and did not give a reopening date. That post did not say existing keys stopped working.
| Path | What you need | Notes |
|---|---|---|
| TypeSafe console | TYPESAFE_API_KEY | Official endpoint https://api.typesafe.ai/v1/systemone. New signups were paused on 2026-09-24. |
| Vercel AI Gateway | Vercel auth / OIDC | Model ID typesafe-ai/jev. AI SDK experimental_evaluate. |
| OpenRouter | OpenRouter key | Decisions API or TypeSafe SDK pointed at OpenRouter. |
There is no public “run Jev on your laptop” weight download. Jev GitHub covers SDKs and why “Jev local” still hits a hosted API.
2. One request shape
Every useful call has model, state, and questions:
{
"model": "jev-latest",
"state": "I was charged twice. Please fix this ASAP.",
"questions": {
"billing": {
"type": "noul",
"instructions": "Is this ticket about billing?"
},
"tone": {
"type": "choice",
"instructions": "What is the customer's tone?",
"criteria": { "calm": null, "frustrated": null, "angry": null }
},
"urgency": {
"type": "score",
"instructions": "How urgent is this ticket?",
"criteria": ["can wait", "this week", "today"]
}
}
}Read answers.billing.noul, answers.tone.choice, answers.urgency.score. Log model so you know which version answered.
3. Pick a client
- cURL / HTTP — Getting Started and the API guide.
- Python —
pip install typesafe-sdk, thenTypeSafeClient().system_one(...). - TypeScript —
npm install @typesafe-ai/sdk, thenclient.systemOne(...).
Official SDKs read TYPESAFE_API_KEY and default to jev-latest.
4. Put the decision in your code
Jev does not refund, page, or send email. Your code does:
if (response.answers.billing.noul > 0.8) {
assignTo("billing");
} else if (response.answers.tone.choice === "angry") {
assignTo("priority_support");
} else {
assignTo("triage");
}Tune thresholds on your own tickets. Official confidence examples (0.5, 0.9) are examples, not shipped defaults.
5. Using Jev next to an agent
Jev is not an “AI agent”. An agent (or your workflow) calls Jev when it needs a typed judgment: which tool, whether to escalate, whether a retrieved chunk is usable.
That pattern is the agent tool selection example. Keep tool execution, file I/O, and prose generation in the host.
TypeSafe's Jev with coding agents page makes the same split: Jev is not a drop-in model for Claude Code, Cursor, Copilot, or similar tools. There is no setting that turns the coding agent itself into Jev. Use the coding agent to write the integration, and call Jev where the product needs a closed Choice, Score, or Noul.
Worked recipes that assume you already know the primitives are on TypeSafe's cookbooks page. This site's shorter copies stay under examples.
When to use this page
You already believe Jev is the right tool and want the shortest path to a working call.
When not to
If you are still asking “is Jev an LLM?”, read Is Jev an LLM? first.
Common mistakes
- Waiting for a chat box. There isn’t one in the API.
- Putting the English question only in the dict key. Official docs say IDs are not sent to the model.
- Treating a gateway (Vercel / OpenRouter) as a different model. It is still Jev; the key and base URL change.
Next: Getting Started or a copy-paste example.
FAQ
How do I get Jev access?
Existing accounts create a key in the TypeSafe console. On 2026-09-24 TypeSafe posted that new direct signups are paused. OpenRouter and Vercel AI Gateway still document their own keys.
What do I send Jev?
A state (string, object, or text array) and a map of Choice, Score, or Noul questions. One request can hold several questions.
Sources
- Quick startTypeSafe · accessed 2026-09-20 · documentation
- Introducing System One Models and JevTypeSafe · 2026-09-15 · accessed 2026-09-20 · official
- TypeSafe SDK IntegrationOpenRouter · accessed 2026-09-20 · documentation
- How to classify, route, and score with Jev and AI SDKVercel · accessed 2026-09-20 · documentation