What is Jev?
A plain explanation.
Jev is a model from TypeSafe AI that does not write text. You give it some content and a question with a fixed set of answers, and it returns one of those answers with a probability. That is the whole idea, and everything else follows from it.
We built a parody of Jev, which meant reading all of its documentation. This page is the straight version of what we learned. No jokes until the end.
The short version
What it does. Takes your content plus a typed question, returns a typed answer and a probability distribution. Never a sentence.
What it is for. Judgments your code consumes, not judgments a person reads. Routing, classification, filtering, ranking, gating.
Why people are excited. It is fast and cheap enough to put a judgment call in places where calling a language model was never worth it.
What it is not. Not a chatbot, not a reasoning model, not a replacement for either. It cannot generate anything.
Why it exists
Language models are built to produce text for people to read. When you need a model to make a judgment your code will act on, that is a mismatch. You end up coaxing a text generator into emitting structured output, then parsing it back into something your program can trust. Everyone building with language models has written that parsing layer, and everyone has watched it break.
TypeSafe calls Jev a System One model, after the fast and intuitive kind of human thinking. The comparison they draw is to how models are trained. Chat models are trained with reinforcement learning from human feedback. Reasoning models are trained with reinforcement learning from verifiable rewards. Jev is trained with what TypeSafe calls RLCD, reinforcement learning for calibrated decisions. The goal is not a good sentence. It is a probability that means something.
The three primitives
Jev exposes exactly three question types. Each asks something different and returns something different.
| Question | What you are asking | What comes back |
|---|---|---|
| Choice | Pick one option from a list I give you | The chosen option, a probability for every option, and a confidence |
| Score | Rate this against a rubric I define | A score, a probability for every level, and a confidence |
| Noul | Is this statement true? | A single number from 0 to 1. No confidence value |
The important detail is that you can mix all three in a single request. Every question is evaluated in parallel and in isolation against the same content, so adding more questions barely changes how long the call takes. Because each one is evaluated independently, the questions cannot contaminate each other the way a long prompt can.
That property is what makes the thing feel different in practice. You are not writing one clever prompt. You are asking twelve small questions at once and doing the combining yourself, in code.
State
The content you want evaluated is called the state. It can be a plain string, a JSON object, or an array of text values. An object is usually best, because naming each part of the content keeps the relationships clear.
Jev takes text only. No images, no audio, no video. If you want it to judge something that is not text, you have to turn that thing into text or structured fields first.
Confidence
Every Choice and Score answer comes back with a probability distribution across the options or levels. The shape of that distribution is the real signal. Concentrated on one outcome means the model is sure. Spread out means it is not.
The confidence value collapses that shape into a single number from 0 to 1 so you can threshold on it without doing the maths. TypeSafe is explicit that this is a convenience rather than the only correct measure, which is why they return the full distribution alongside it. Noul answers have no confidence value, because the number they return is already a probability.
The practical pattern this unlocks is routing on certainty. Handle the confident cases automatically, send the uncertain ones to a slower model or to a person. That is a design you could not build on a text generator, because a text generator will state every answer with the same fluency whether it knows or not.
What it costs
These are the published figures for the current model, jev-1.13.0, served from a single endpoint.
POST /v1/systemone, with the model chosen by a field in the request.
Charging for input and not output is the honest pricing shape for a model whose output is one option and a number. It is also why people keep posting screenshots of their bill. If you send small states, it is very hard to spend money.
Writing good questions
TypeSafe's own advice is the most useful thing in their documentation, and it is the part most people miss. Ask one specific, well-scoped thing per question. Think of each as a gut check: the judgment a knowledgeable person could make in a few seconds given the right context.
If a question needs extended reasoning, or weighs several independent factors, break it up. Rather than asking it to rate a startup pitch, ask separately about market size, technical feasibility and differentiation, then combine the scores with your own formula. When your priorities change you adjust a coefficient in your code instead of rewriting a prompt.
This is the actual shift. The model is not where your logic lives any more. Your logic lives in your code, and the model answers the small factual questions your logic needs.
Where it struggles
TypeSafe publishes a page of known weaknesses for the current version, which is more than most labs do. These are the failure modes they list, with their own guidance on what to do instead.
| Failure mode | What to do instead |
|---|---|
| Literal reading. It answers the question you wrote, not the one you meant | Spell out the exact condition and the criteria for every option |
| Maths and numbers | Keep the arithmetic in your code |
| Comparing dates and times | Extract the components and compare them in code |
| Indirection, where the answer is several hops away | Reduce the hops and point directly at the relevant content |
| Large states full of irrelevant detail | Filter first and send only what the question needs |
| Adversarial content | Write precise questions and test the edge cases before deploying |
| Contradictory instructions and criteria | Make the criteria and the instruction agree |
| Common-sense structural invariants | Ask each decision one way and enforce the identities in code |
| Generation of any kind | Use a generative model. This one cannot |
The pattern across all nine is the same. Jev is literal, and it is fast. Anything requiring a chain of inference, precision with numbers, or holding several ideas in tension is not what it is for.
Should you use it?
Yes, if your code already contains a judgment call that a human would make instantly and that you currently handle with a pile of if-statements, a keyword list, or a language model call you feel slightly guilty about. Support ticket routing, spam and abuse filtering, content tagging, intent detection, ranking candidates, deciding whether an agent should continue or stop.
No, if you need text, reasoning, arithmetic, or an answer a person will read directly. It is not a smaller chatbot. It is a different tool.
Probably not yet, if you are building in a language other than English, or your judgments depend on precise numeric comparison. Both are documented weak spots today.
About this page
We are not TypeSafe AI. This site is a parody of them, and Jef is our parody of Jev. We wrote this explainer because a lot of people are asking what Jev is and the honest answer is more interesting than the hype around it.
Everything on this page comes from TypeSafe's own documentation at docs.typesafe.ai, read on 18 September 2026. Figures change; check the source before you depend on them.
Now the joke.
We liked the shape enough to build a stupid version. Jef has the same closed output space, the same confidence number, and none of the accuracy. It has a full chat interface and cannot produce a sentence. It reads nothing, stores nothing, and is always about 97% sure.
Chat with Jef → See the apps