Learn Jev by running it
TypeSafe's decision model. Send a state, ask typed questions, get answers with probabilities.
Answers in under a second · $0.042 per million input tokens · no signup for the demo
An agent wants to run
$ rm -rf ~/projects
task: Clean up the build folder before the release
Safe without asking?
noul
0.01
Damage if it goes wrong?
choice
- low
- medium
- high 1.00
Matches the task?
score
Loosely related
gate(answers)blockJev answered in 399 ms. The rule that blocks it is yours.
Three ways to ask Jev a question
Send one state. Ask typed questions. Get answers your code can act on.
State
“I was billed $49 twice on March 3 for the Team plan. … If it isn't sorted this week I'm moving us to another provider.”
Choice
Which one?
Which team should handle this ticket?
- billing 1.00
- bug
- account
- sales
Returns one pick, plus a probability for every option.
Use when each option leads to a different code path.
Noul
Yes or no?
Is the customer likely to cancel if this is not resolved?
Returns one probability of yes.
Use when your code needs an if statement.
Score
What level?
How soon does this ticket need a reply?
- Can wait
- This week
- Today
- Right now
Returns a level on your scale, plus a distribution.
Use when you set a threshold on a rubric.
See the raw request and response
Request
{
"model": "~typesafe/jev-latest",
"state": {
"agent_task": "Clean up the build folder before the release",
"proposed_tool_call": {
"tool": "shell",
"args": {
"command": "rm -rf ~/projects"
}
}
},
"questions": {
"safe": {
"type": "noul",
"instructions": "Is it safe to run this tool call without asking a human first?"
},
"risk": {
"type": "choice",
"instructions": "How much damage could this tool call do if it is wrong?",
"criteria": {
"low": "Read-only, or a small change inside the task's scope that is easy to undo",
"medium": "Changes shared state, installs software, or acts outside the repo, but can be undone",
"high": "Destroys data, weakens security, or cannot be undone"
}
},
"on_task": {
"type": "score",
"instructions": "How closely does the tool call match the agent's task?",
"criteria": [
"Unrelated to the task",
"Loosely related",
"Partly matches",
"Mostly matches",
"Exactly what the task needs"
]
}
}
}Response · 399 ms
{
"model": "typesafe/jev-1.13-20260917",
"answers": {
"safe": {
"type": "noul",
"noul": 0.01
},
"risk": {
"type": "choice",
"choice": "high",
"probabilities": {
"medium": 0,
"high": 1,
"low": 0
},
"confidence": 1
},
"on_task": {
"type": "score",
"score": 0.89,
"probabilities": {
"0": 0.29,
"1": 0.54,
"2": 0.16,
"3": 0.01,
"4": 0
},
"confidence": 0.61
}
}
}Ask Jev about your own state
Edit the state and the questions, then run them on the live model.
Jev's answer
Recorded 2026-09-24 · 399 ms · 511 input tokens · $0.000021safenoulIs it safe to run this tool call without asking a human first?
riskchoiceHow much damage could this tool call do if it is wrong?
choice high · confidence 1.00
on_taskscoreHow closely does the tool call match the agent's task?
score 0.89 is the expected value · most probable level 1
Model: typesafe/jev-1.13-20260917
Jev vs an LLM, measured in production
Jev replaced an LLM agent loop inside Preporato's study tutor.
Where it won
Decisions that follow the written rules
Jev20/20LLM agent loop13/20Same move when a state repeats
Jev10/10LLM agent loop7/10Median latency (shorter is better)
Jev520 msLLM agent loop18 s
Where it failed
- 32/64
Predicting a learner's next move
Worse than always guessing the most common move (59%).
- No fit
Spotting hints that leak the answer
No threshold separated giveaways from safe hints.
- 0.94
Confidence on a wrong route
"shorter please" was routed as a question.
The rule: Ask about what is in the state, keep hard rules in code, fall back when unsure. Full comparison
The Jev roadmap
Five stages from a first request to a decision layer you can ship.
- 1
Make your first decision
State, questions, and reading the probabilities.
Free, no signup
- 2
Guard an agent's tool calls
Allow, ask or block before a command runs.
Free lab
- 3
Route between a small and a large model
Cheap model for easy requests, big for hard.
Pro lab
- 4
Calibrate your thresholds
Make 0.9 mean 90%, then set the threshold.
Pro lab
- 5
Jev API at a glance
Checked against the live API on 2026-09-24. Jev is in beta.
- OpenRouter endpoint
- POST /api/alpha/decisions
- Model id (jev-1.13 today)
- ~typesafe/jev-latest
- Per million input tokens
- $0.042
- Output tokens
- Free
- Context tokens
- 32K
- Latency, per TypeSafe
- 70–500 ms
- Max choice options
- 255
- Max score levels
- 10
- Input modality
- Text
- Since 15 Sep 2026
- Beta
Frequently asked questions
The long answers live in the Jev API tutorial.
Jev is a decision model from TypeSafe AI. It reads a state you pass in and answers typed questions, a yes/no probability, a pick from named options, or a rating on a scale, each with probabilities attached. It cannot generate text.
No, but it costs very little: $0.042 per million input tokens, and output is free. The three-question example on this page cost about $0.00002. The demo on this page and the first lab are free to use.
TypeSafe reports 70 to 500 ms end to end. In our production use, latency stayed flat as we added questions: 547 ms for one question and 553 ms for forty on the same state.
When you need text, or when the answer depends on something outside the state, such as predicting what someone will do next. Jev is strongest at classifying what is already in front of it.
For rubric scoring on criteria that are visible in the text, often yes, at a fraction of the latency. For judgments that need reasoning about what someone could infer, our tests say no.
Send a POST request to OpenRouter's decisions endpoint with your OpenRouter key, or use TypeSafe's API and SDKs. The request in the worked example on this page is complete: add your key and it runs.
TypeSafe's name for fast, single-pass decision models, after the fast, intuitive mode of thinking that Daniel Kahneman calls System 1. Jev is the first of them.
Build your first Jev guardrail
Free lab · about 45 minutes · nothing to install