Versions
Jev versions and changelog
Short, because Jev is four days old: one model has shipped. This page covers what jev-latest actually resolves to, why that distinction will matter to you later, and every dated change we can point at a source for.
Current model
- Versioned id
jev-1.13.0- Context
- 64k tokens — The 64k budget covers the state plus every question in the request. A second, tighter 32k limit applies to the state plus the single longest question.
- Rate limits
- 250,000 tokens per second and 1,200 requests per minute; either one over the line returns 429
- Price
- $0.042 per 1M input tokens. Free (no output tokens are generated)
- Input
- Text only — no image or audio input at launch
- Training
- Trained with RLCD for calibrated decisions. No per-account fine-tuning or LoRA — the same weights serve every account.
Aliases, and why they are a trap worth knowing about
| Alias | Points to | Meaning |
|---|---|---|
| jev-latest | jev-1.13.0 | The most recent stable, official release. The default in the client SDKs and in the docs examples. |
| jev-preview | jev-1.13.0 | The most recent release whether or not it is official. Moves ahead of jev-latest when a preview build exists — there is none right now. |
Right now the distinction is academic — every route lands on the same weights. It stops being academic the first time TypeSafe ships 1.14. The response carries the versioned ID that actually answered, so you can log which weights produced each result. If you have tuned confidence thresholds against a version, send that version ID instead of an alias and move on your own schedule.
Use an alias when
You are prototyping, or your logic does not depend on a specific number holding. You want improvements for free.
Pin the version when
A threshold decides whether something reaches a human, ships to a customer, or gets blocked. Move deliberately, after measuring.
How to notice a change before it notices you
Two mechanisms, both worth wiring in on day one. The response reports which versioned model actually answered, so log it next to every decision you store:
response = client.system_one(model="jev-latest", state=..., questions=...)
log.info("decision", model=response.model, answer=response.answers["intent"].choice)
# When an alias moves, this field changes before your metrics do.And the list endpoint reports what your account can address, with a release date per entry:
curl https://api.typesafe.ai/v1/models \ -H "Authorization: Bearer $TYPESAFE_API_KEY"
It currently returns the aliases. Versioned ids such as jev-1.13.0 are accepted by the model field whether or not they appear in the list — the same “live but unlisted” pattern that makes Jev invisible in gateway catalogues.
Timeline
Jev comes out of stealth
TypeSafe AI publishes the System One launch post introducing Jev, alongside a $40M seed round led by DCVC. Doom and Wikiracing ship as the demos.
jev-1.13 jaggedness page reviewed
TypeSafe publishes and dates a page of nine documented failure modes for jev-1.13 — literal reading, counting, dates, indirection, context rot, adversarial state, and more. The most useful page they publish.
Serving build jev-1.13-20260917
The build tag reported by OpenRouter's provider readout carries this date, which is the closest thing to a public build stamp the model has.
Listed on OpenRouter
The typesafe/jev-1.13 listing is created at 00:01 UTC at $0.042/M input and $0 output — and immediately fails to appear in the default model catalogue, because its modality is text->decisions.
Still one model, one version
Both aliases resolve to jev-1.13.0 and there is no preview build. Rate limits are documented as dynamic and subject to change without notice while TypeSafe absorbs launch demand.
Last verified 2026-09-19 against the official models reference and OpenRouter's provider API. See sources for how this site is maintained.