What is Jev?

A model that never writes a sentence. You hand it some state and some typed questions; it hands back numbers your code can branch on. Ten things to poke at until that lands.

70–500msend to end
$0.042per million input tokens
$0output tokens
0words generated
Read it What is Jev?
poked 0 / 10

Ask an LLM a yes/no question.

One thing your code needs to know about this ticket: is it urgent? Press the button a few times. The answer never changes; the shape of it changes every time. The LLM is right, the packaging is not, and packaging is what breaks your parser.

The state
Hi, I've been trying to connect my Stripe account for 3 days and it keeps failing. I'm losing sales. Please help ASAP.
Your code
// the only thing you actually need
if (reply.toLowerCase().startsWith("yes")) {
  escalate(ticket);
}
parsed ok 0 parser missed 0
What came back

Nothing yet. Press a button on the left.

Three question types. That's the lot.

TypeSafe calls them primitives: small, boring, composable. Pick one to see what you define and what comes back.

You send
You get

Build a request and run it.

Tick whichever questions you fancy and send. However many you tick it stays one HTTP call, and the latency barely moves, because every question is evaluated in parallel against the same state.

state
questions
1http call
—latency
—input tokens
—cost / 1k calls
answers

Tick some questions and press send.

"I don't know" is a feature.

Choice and Score answers carry a confidence from 0 to 1, squeezed out of the probability distribution. The answer tells you what; confidence tells you whether to act. Drag the handles and watch 14 tickets sort themselves.

your thresholds
act automatically above0.85
send to a human below0.55
14 tickets, by confidence
Thresholds scale with risk. A read-only action can run at 0.6; approving a withdrawal should want 0.9 and a confirm dialog.

What 0.8 is supposed to mean.

A calibrated model is one where, across everything it labelled 0.8, about 80% turn out to be right. Not this answer, the pile. RLHF pushes a model toward confident prose; TypeSafe train against the outcome instead and call it RLCD. Run a batch and watch the bars settle onto the dashed lines.

0 predictions so far

The dashed line is where each bar should land. Bars are what actually happened.

Don't ask a big question. Ask small ones and do the maths yourself.

"Rate this startup pitch" is a bad Jev question: too many independent factors in one judgement. Ask the factors separately and combine them with a formula in your code. Drag feasibility to 100% and the verdict flips, with nothing re-run or re-prompted.

three atomic scores, from one call
Market size0 → 2
1.80
Feasibility0 → 2
0.90
Differentiation0 → 2
1.40
Each one is a Score with its own rubric. Jev never sees the word "invest".
your weights, your code
market
50%
feasibility
30%
differentiation
20%
composite
—

Ask everything, including the questions you might not need.

A 13th question costs almost nothing, because they are all evaluated in parallel against a state read once. So ask all of them speculatively and bin what you do not need. TypeSafe's cookbook runs 13 questions over the GDPR article: batched, it came out 10x faster and 12.2x cheaper.

one LLM call per question
—WALL CLOCK
one Jev call, all of them
—WALL CLOCK

Six jobs. Which ones should Jev not get?

TypeSafe publish a page listing what Jev is bad at, which is more than most model cards manage. Pick who should do the work.

You can build a noul tonight.

None of this needs an API key. Any local model that hands you logprobs can answer yes/no as a number: read the logits for True and False, softmax over just those two. Getting a number is the easy half; getting one that means something is the hard half.

the whole trick, on your own machine
# a noul, locally: any model that gives you logprobs
q   = "Statement: the customer wants a refund.\n" \
      "True or false? Answer:"

out = llm(q, max_tokens=1, logprobs=20)
lp  = out["choices"][0]["logprobs"]["top_logprobs"][0]

gap = lp.get(" True", -99) - lp.get(" False", -99)
p   = 1 / (1 + math.exp(-gap / T))

# T is fitted once, on a set you have labelled

Swap the tokens for your own labels and you have a Choice. Take the expectation over ordered level tokens and you have a Score. The API surface is not the moat.

but raw logprobs lie. drag T.
temperature T1.00
—average confidence
75%actually right

T never changes an answer, only how loudly it is held. Out of the box this model claims ~93% certainty and is right 75% of the time. Slide T until the two match.

prior art, with weights attached
SalesRLAgent · March 2025

An RL-trained head over sequence embeddings that emits a conversion probability turn by turn, 85ms against 3450ms for GPT-4. No text generated, just the number. Paper · weights · dataset.

Confidence-Aware Routing · Sept 2025

Scores confidence before generating, then routes into four lanes: local model, RAG, a bigger model, or a human. That is section 04 of this page, published a year earlier. Paper.

Fair is fair. Those are vertical: one task, fixed at training time. Jev's claim is horizontal, with questions written per request. Same instinct, different animal.

 Jevyour local modela task-trained head
What it ishosted System One modelwhatever you already runa small model trained for one job
Questionswritten per requestanything you can tokenisefixed at training time
Calibrationtrained for itbolt it on with temperature or isotonic, on your labelstrained into the task
Many at onceone call, state read onceone pass each unless you cache the prefixn/a
Cost$0.042 / Mtokyour electricityyour electricity
Can you check itself-reported numbers, no weights, no paperyou can measure it yourselfweights, dataset and paper published

That last row is the one I keep coming back to. The open one-person project is more verifiable than the lab with $40m.

A gut feeling with an API key.

The name is Kahneman's: System 1 is the fast intuitive judgement, System 2 the slow deliberate one. Chatbots aim at System 2. Jev is built for the other one, betting that most AI work ends up as machines talking to machines, where nobody reads the prose.

It cannot hallucinate a type

The answer space is whatever you defined. A Choice can only return one of your keys. There is no JSON to repair, no schema to validate, no retry loop.

It cannot talk

No replies, no code, no explanation of its reasoning. If you need words you still need an LLM, with Jev in front of it or behind it.

Probabilities are the product

You always get the full distribution, not just the winner. Sort by it, threshold it, feed it to a classifier, ignore it.

Small enough to sprinkle

At $0.042 per million input tokens and output free, asking is cheap enough to do per-passage, per-row, per-message, per-keystroke.

 Jev 1.13a frontier LLM
What comes backtyped value + probabilitiesa string you parse
Input price$0.042 / Mtok$0.20 – $10 / Mtok
Output price$0, freeroughly 5× input
End to end70–500 msseconds
Context64k per request, 32k for state + longest question100k – 1M+
Input typestext only: string, object, arrayoften text, image, audio
Can it write you an emailnoyes

TypeSafe AI came out of stealth with $40m, cofounded by Diogo Almeida, who co-invented the RLHF work behind InstructGPT and has now built the thing that points the other way.