On 15 September 2026 a startup called TypeSafe AI released a model called Jev. You give it data and questions such as “Which team should handle this message?”, and it returns a number for each question that your code can read directly, instead of text you have to turn into a decision yourself. Two months later Google released the Gemini Decisions API on the same idea, and Jev is still cheaper. I’ve tried it myself.
What it is
TypeSafe AI was founded by Diogo Almeida, who says he worked at OpenAI on the research behind ChatGPT. The company calls this kind of model “System One models”, after Daniel Kahneman’s split between fast and slow thinking. Simon Willison prefers a plainer name: decision models.
You send Jev two things:
- The state: the data you’re asking about, as text, JSON or a list of strings. A customer message, say, or a product record.
- The questions: each one is one of four types:
- Noul: a yes/no question. It returns the probability that the answer is yes, from 0 to 1. There’s no separate confidence score here, because the probability already says it: a value near 0.5 means the model is unsure. The name comes from Bernoulli.
- Choice: picks from a list of up to 255 options, with a probability for each option and a confidence score.
- Score: places the data on a scale of levels you write, from lowest to highest, with a confidence score.
- Box: finds where something is in an image. Added in version 1.14 and still experimental.
There’s no separate limit on the number of questions: the state plus all questions must fit in 64,000 tokens, and the state plus any one question in 32,000. Jev answers each question on its own and all of them at once, so adding a question barely changes the response time. TypeSafe says a request takes 70 to 500 milliseconds end to end, measured from its team’s laptops on the US West Coast, where the service runs.
It costs $0.042 per million input tokens, and output is free. The company says it doesn’t train Jev on customer requests.
TypeSafe says Jev “can’t hallucinate”. It means the answer always matches the shape you defined: an option from your list, or a number in the right range, never text instead of a number. Its site explains that this guarantee covers the shape of the answer and doesn’t mean every answer is right. For confidence scores, the company trains the model with a method it calls RLCD, so that higher confidence means higher accuracy, by its own account.
The current version is Jev 1.14, from 14 October 2026. The company says it is better at languages other than English, and it brought the Box type. The same day, TypeSafe opened up PNG and JPEG image input for this version and the one before. It calls images experimental and not yet ready for production use, and they need a special header on every request. Jev doesn’t read audio or video.
Jev suits anything you can frame as sorting: spam detection, suggesting labels, setting priorities. Simon Willison has been reranking search results with it: fetch 100 matches with a cheap method such as BM25, then have Jev score each one for relevance. One of TypeSafe’s own demos is a bot that plays Doom at about 10 requests a second, for roughly $7 an hour, reading the game state as text rather than images.
What does Jev send back instead of text?
The numbers are from an example in the llm-typesafe README; the price and timing are TypeSafe's. The example stays in English because TypeSafe doesn't mention Arabic.
Jev · one request
Question: which team should handle this message?
- Text Jev writes
- None
- technical
- 0.98
- other
- 0.02
- billing
- 0.0
- Confidence
- 0.97
- Time
- 70–500 ms
- Input
- $0.042 per million tokens
- Output
- Free
TypeSafe's figure
How it compares with Gemini and OpenAI
Two models with the same idea and the same first three question types followed Jev: OpenAI’s Decisions API in October 2026, and Google’s Gemini Decisions API on 11 November. The differences:
- Price: Jev costs $0.042 per million input tokens. OpenAI and Gemini cost $0.10. Output is free on all three.
- What it reads: Jev reads text and JSON, with experimental image input. OpenAI reads text and images. Gemini reads text, images, audio, video and PDFs.
- Access: Jev is in early access. Gemini is available now through the Gemini API, with a free tier for prototyping in AI Studio.
If your data is text and you send a lot of requests, Jev costs less than half as much. For audio, video or PDFs, only Gemini reads them.
How to start
You need:
- An account at console.typesafe.ai. Jev is in early access, so you may wait on a list before you get a key.
- A terminal with Python or uv, to install Simon Willison’s llm tool.
- About 15 minutes, by my estimate.
- Cost: you pay for input only, and the example questions here are short, so they cost less than a cent.
The examples are in English because TypeSafe doesn’t mention Arabic specifically.
-
Sign up at console.typesafe.ai. Once you have access, create an API key on the Keys page. Don’t put it in any file you share.
-
Install llm, a tool for using models from the terminal. Pick one of these lines:
uv tool install llm pip install llm brew install llmTerminalCheck:
llm --versionprints a version number. -
Install the Jev plugin, then save your key. The second command asks you to paste the key and press Enter:
llm install llm-typesafe llm keys set typesafeTerminalCheck:
llm models | grep jevprints a line containing jev-latest. -
Ask a yes/no question:
llm -m jev 'Please refund my last payment.' \ -s 'Does this message explicitly request a refund?'TerminalCheck: you should see a line like
{"type": "noul", "noul": 0.99}. The number is the probability that the answer is yes. Change the message toWhen will my order arrive?and run it again. Expect a much lower number, since that message doesn’t ask for a refund. -
Ask it to pick a team from a list:
llm -m jev 'I was charged twice for the same order.' \ -s 'Which team should handle this message? If billing and technical issues both occur, choose billing.' \ -o answer_type choice \ -o criteria '{ "billing":"Charges, invoices, payments, or refunds", "technical":"Problems installing or using the product", "other":"Neither category fits" }'TerminalCheck: you get JSON with
choice(most likely billing here),probabilitiesfor each team, andconfidence. For a score, use-o answer_type scorewith a-o criterialist of 2 to 10 levels, lowest first. -
To add it to your own project, install the Skill TypeSafe provides, which teaches your coding agent how to use the API. In Claude Code:
claude plugin marketplace add typesafe-ai/skills claude plugin install typesafe@typesafe-aiTerminalIn Codex or another agent:
npx skills add typesafe-ai/skills --skill typesafe-ai, then choose your agent when asked. -
Put the key in the terminal you’ll run the agent from. The line waits for you to paste the key and press Enter, and the key won’t show on screen:
read -rs TYPESAFE_API_KEY && export TYPESAFE_API_KEYTerminal -
Ask the agent to build the script:
Use the TypeSafe skill. Build a small script that uses Jev to sort <what the input is, for example customer emails>. Ask these questions in one request: <your yes/no, choice or score questions, with their options or levels>. Keep any arithmetic, counting and date comparison in code, not in the questions. For Choice and Score answers, send any with confidence below <threshold, for example 0.7> to a list for a person to review. Noul answers have no confidence field: treat a noul above <yes threshold, for example 0.7> as yes, below <no threshold, for example 0.3> as no, and send anything in between for review. Use the model ID jev-1.14.0 instead of jev-latest, and log the model from each response. Read my API key from TYPESAFE_API_KEY and never write it to a file.PromptA good result is a script that prints the answers for each input and sets the unclear cases aside. Pinning the version matters because jev-latest moves to each new release, so answers can change without any change to your code.
If it doesn’t work as expected:
- Error 401: the key is missing or wrong. In llm, run
llm keys set typesafeagain. For the script, repeat step 7 in the same terminal. - Wrong answers on numbers, dates or counting: TypeSafe says Jev is weak at these. Work them out in code, then send the result in the state.
- It leans toward the first option: TypeSafe has seen the order of options affect the answer. Shuffle them and check the answer stays the same.
Limits
- A number without a reason: if Jev flags a message as spam, you won’t know what in the text tipped it. Simon Willison warned that the number can hide bias, and wrote that he hopes nobody uses Jev to rank job applicants. Yet TypeSafe itself published a case study of a hiring marketplace, Jack & Jill, that uses Jev to score candidates. If your decisions are about people, check for bias first. Simon recommends structured experiments, and they’re cheap here: thousands of requests cost a few cents.
- The company’s numbers: speed, cost and intelligence comparisons all come from TypeSafe. Speed was measured from the US West Coast, so responses may take longer from far away.
- Weak spots the company lists: arithmetic and counting, comparing dates, reading questions too literally, text written to mislead it, and a long state full of detail the question doesn’t need.
- Images and Box: experimental, and TypeSafe says they aren’t ready for production use yet.
- Arabic: the company says version 1.14 is better at languages other than English, but it doesn’t mention Arabic specifically.
- Access and price: Jev is in early access, so you may wait before you get a key. The price may change: TypeSafe says it can’t prove the price isn’t subsidised, and expects it to go down rather than up.
- The llm-typesafe plugin is still an alpha release (0.1a0).
Versions at writing
- Jev · 1.14
- llm-typesafe · 0.1a0
Sources 17
- typesafe.ai
- TypeSafe AI: Introducing System One Models & Jev (15 September 2026)TypeSafe AI: Jev 1.14 (14 October 2026)TypeSafe AI: Jack & Jill case study (7 October 2026)TypeSafe docs: Models and pricing (checked 12 November 2026)TypeSafe docs: ConfidenceTypeSafe docs: Model jaggednessTypeSafe docs: ImagesTypeSafe docs: Choice questionsTypeSafe docs: Quick startTypeSafe docs: Agent skill
- simonwillison.net
- Simon Willison: Jev and decision models (21 September 2026)Simon Willison: llm-typesafe (22 September 2026)Simon Willison: OpenAI's Decisions API (6 October 2026)Simon Willison: Gemini Decisions compared with Jev (11 November 2026)
- GitHub
- llm-typesafe on GitHub
- datasette.io
- LLM docs: Setup