TypeSafe's Jev returns typed decisions with calibrated probabilities instead of text, in 70–500 ms, for $0.042 per million input tokens. We read the sources, called it, and wrote down what holds.
On 22 September 2026 a San Francisco lab called TypeSafe launched Jev, which it calls the first System One model. The name borrows Kahneman's fast-thinking system. The claim: software mostly needs decisions, not prose — which team handles this ticket, is this message urgent, how angry is this customer — and a model built only for those decisions can be two orders of magnitude faster and cheaper than a chat model, and cannot hallucinate because it never generates a string.
how it works, as far as the sources say
- You send a state (text or JSON, up to 32,000 tokens) and a set of typed questions. Three primitives: choice (pick one of up to 255 options, each with a description), score (a position on an ordered rubric of described levels), noul (a yes/no; the answer is P(yes)).
- Every question is evaluated in parallel, in isolation, against the same state, in one call. There is no token-by-token generation; TypeSafe describes "a new architecture, a new sampler, and a new training algorithm" it calls Reinforcement Learning for Calibrated Decisions (RLCD). Output tokens are free because there are none to speak of.
- Answers carry probabilities per option and a separate confidence; the documentation distinguishes the two and suggests using confidence to decide when to fall back to a slower model or a human.
- Price: $42 per billion input tokens ($0.042 per million). Latency: 70–500 ms end to end. Access: TypeSafe's own API (
POST api.typesafe.ai/v1/systemone), OpenRouter through a separate /api/alpha/decisions endpoint (not chat completions), and Vercel's AI Gateway (experimental_evaluate in the AI SDK). Weights are not open.
the ecosystem around it, one day in
- gitnova.dev, a tracker of fast-rising GitHub repositories, showed Jev-related projects in 22 of its top 50 the day after launch — wrappers, agent skills and open reimplementations.
- laya-coreml (Apache-2.0) runs "Laya", an open decision model of the same shape — choice, ordinal score, boolean — on Apple's Neural Engine: 322–421 M parameters on a ModernBERT encoder, about 5 ms a decision on an M3 Max, with converted checkpoints on Hugging Face. It is the clearest public sketch of how such a model can be built: an encoder, question heads, calibration, no decoder.
- A gist by Pedram Amini wraps Jev as a CLI and an agent skill so coding agents can make "calibrated gut checks" on hundreds of items without spending context. Its most useful finding is a limitation: positional indexes into long arrays are unreliable — 27 % errors at 150 items when questions referred to
items[i], 0 % when items were keyed by name or embedded in the question.
what we measured
With the OpenRouter key we already had, one call carrying a 60-candle price state and three questions returned in well under a second and cost $0.000022. The answers were well-formed, the probabilities summed to one, and the confidence field behaved as documented. That is a real result about the interface. It says nothing yet about whether the probabilities are right for our task, which is why marketprice scores every answer against the realised outcome.
# the shape of a call (openrouter, our key)
POST https://openrouter.ai/api/alpha/decisions
{"model": "typesafe/jev-1.13", "state": {"closes_last_20": [...], "rsi_14": 64.1, ...},
"questions": {"next_minute": {"type": "choice", "instructions": "...", "criteria": {"up": "...", "down": "..."}},
"trend": {"type": "score", "instructions": "...", "criteria": ["none", "weak", "moderate", "strong"]},
"momentum_up": {"type": "noul", "instructions": "..."}}}
# answer
{"answers": {"next_minute": {"choice": "up", "probabilities": {"up": 0.89, "down": 0.09, "flat": 0.02}, "confidence": 0.84},
"trend": {"score": 2.54, "confidence": 0.54}, "momentum_up": {"noul": 0.94}},
"usage": {"input_tokens": 517, "cost": 0.0000217}}
what holds, what does not
- Holds: typed answers with no parsing layer; one call for many questions; sub-second; cheap enough to ask speculatively. For routing, triage, guardrails and scoring inside software this is a better tool than a chat model with a JSON schema bolted on, and we are moving textduty's classification step to it behind the same interface.
- Does not follow: "cannot hallucinate" means it cannot emit a string that is not one of the options. It can still be confidently wrong. Calibration is against the labels it was trained on, not against your task; measure it on your own outcomes before trusting a probability.
- Not a forecaster: it has no notion of time series. Given price numbers it will answer, and the answer will look like an opinion. marketprice exists to find out whether that opinion carries any information at all.
our own version
decide is the same request and answer shape with two backends: Jev through OpenRouter, and a local model — one small calibrated classifier per question, trained on labelled states and reported with held-out accuracy, Brier score and expected calibration error so nobody has to take its probabilities on trust. It is deliberately simple; laya shows what the serious version looks like, and that is the next step once the local one earns it.
Sources: typesafe.ai — introducing System One models and Jev, typesafe.ai, docs.typesafe.ai, OpenRouter — Jev guide, Vercel AI Gateway — Jev, gitnova.dev, laya-coreml, jev gist. Read on 2026-09-23.