
Read it as a smart if-statement, not as a small language model. Your code keeps the flow, the arithmetic and the final decision; Jev supplies the one thing code cannot write down — a piece of programmable common sense, returned as a number you can threshold.
One request can carry dozens of questions, answered in a single parallel forward pass, so adding questions barely changes the latency and costs only the extra question tokens. The training method is called RLCD (Reinforcement Learning for Calibrated Decisions): the number is meant to be read as a probability, and 0.5 means “can’t tell”, not “medium”.
Already using a language model as a judge? Read Jev vs an LLM judge →
The three primitives
Every question you send has a type. All three examples below run against the same state — the toy on our home page:
{
"task": "Book a table for two at 7pm tonight.",
"observation": "Reservation confirmed — 2 guests, 7:00 PM, Table 12."
}noulA yes/no question. Returns one number between 0 and 1: the probability of yes. An absolute judgment, and the only type with no confidence field.
Does
observationconfirm that the goal intaskwas achieved?0.98 — yes. Change the observation to “Almost there…” and it falls to about 0.03.
choiceOne of up to 255 options. Returns the picked option, a probability for every option, and a confidence. It is a relative judgment, so always leave an `other` escape hatch — otherwise the model picks the tallest dwarf.
What happened on this step?
goal_met·subgoal_met·blocked·otherblocked 0.88 (goal_met 0.00, subgoal_met 0.12, other 0.00), confidence 0.84.
scoreA graded level. You write two or more levels, each describing a concrete situation rather than an adjective; Jev returns the probability-weighted mean, so the score can land between two levels.
How far did the booking get? 0 nothing done · 1 started · 2 one subgoal confirmed · 3 all but the final step · 4 fully confirmed
1.97 — between “started” and “one subgoal confirmed”.
Question keys are never sent to the model, so the whole meaning has to live in the instructions. Point at state fields with backtick paths like observation.
What to keep in code, what to give Jev
This split is the biggest lesson from the projects that use Jev best: everything countable stays on your side of the line.
| Keep in code | Give to Jev |
|---|---|
| Enumerating candidates — DOM nodes, dropdown options, diff hunks, file ids. The model answers “which one”, never a selector or a string. | “Which of these candidates fits best?” |
| Thresholds, budgets, retries, stop conditions, dedup, loop detection. | “Is the goal met?” “Is it stuck?” — as probabilities. |
| Counting, measuring, comparing dates. A rule that needs a number is not a question. | Semantic existence: “does this text contain X?” |
| Combining probabilities: min / max / weighted sums / tiered bands. | One atomic probability per question. |
The final correctness check — read the URL, the form value, the exit code. A done signal is evidence, not proof. | The option probabilities behind done and blocked. |
What Jev cannot do
TypeSafe publishes a jaggedness list. These are the failure modes to design around, not bugs waiting for a fix.
- It reads literally. Ambiguous wording gives an ambiguous number.
- It cannot count and cannot do arithmetic.
- Date comparison is unreliable.
- Multi-hop reasoning is weak — chain the hops yourself, one question per hop.
- Irrelevant state rots the context: send only what this judgment needs.
- It has no defence against prompt injection carried inside the state.
- Noul and Choice answers are not arithmetically consistent with each other.
- It cannot generate: no text, no code, no summary, no explanation of its own answer.
The worst failure is quiet: hand it an image or a base64 blob and you get HTTP 200 with every answer near 0.5 — a clean success carrying meaningless numbers. Reject what it cannot read before you send it.
Price and latency
- Input price
- $0.042per 1M input tokens
- Output price
- freethere is no generated output
- Latency
- ~300 msp50 375 ms from our machine
Measured on 2026-09-21 against api.typesafe.ai, with jev-latest resolving to jev-1.13.0.
| Jev | |
|---|---|
| Input price | $0.042 per million tokens |
| Output price | free — there is no generated output |
| Latency | about 300 ms; p50 375 ms from our machine on the official API |
| More questions | same forward pass — you pay the question tokens, not another call |
| Per request | 64k tokens; state plus the longest single question ≤ 32k |
| Rate limits | 250k tokens/s, 1,200 requests/min |
| Input | text only |
Cost in practice: the 530 calls behind our largest experiment came to $0.027.
How jevbooks uses Jev
Every project in this gallery was judged by Jev, not by a language model. A submitted repository passes one noul gate — “is this actually about Jev?” — and then eight narrow questions about its README: is Jev core to it, does it report measurements, does it describe how it handles uncertainty, is it runnable, does it show the System One pattern, how common is the problem it solves, is it a replica of the model, would you recommend it to someone learning Jev.
A language model writes the card prose; the verdicts and every probability on a card are Jev’s, and the card says which is which. That is the whole editorial policy.
410 projects are listed, as of 21 Sept 2026.
Frequently asked questions
Is Jev an LLM?
No. It shares the transformer plumbing, but there is no decoder producing tokens: the only thing that comes back is a typed answer with a probability distribution. You cannot chat with it and you cannot ask it to explain itself.
Can Jev write code?
No — Jev cannot generate anything at all. Use a language model once to write the code and the questions; use Jev to answer those same questions a million times for almost nothing.
How is it different from a classifier I could fine-tune?
You define the classes in plain English at call time instead of in training data, and you get a calibrated probability instead of a softmax score. Changing a rule means editing one sentence: no dataset, no training run, no deployment. What you give up is whatever a classifier would have learned from your own labelled examples.
Does Jev support Chinese input?
Yes. A Chinese state works — the Chinese version of the toy on our home page sends one on every keystroke — and you can mix languages, keeping the state in Chinese and the question instructions in English. Input is text only: no images, no audio.
Where do I get an API key?
From the TypeSafe console at console.typesafe.ai/keys; the reference is at docs.typesafe.ai. Requests go to POST https://api.typesafe.ai/v1/systemone, and the same wire format is available through OpenRouter and the Vercel AI SDK. A plain fetch is enough — there is no SDK to install.
Next
Ask Jev about your own problemBrowse the galleryOfficial docsGet an API key