Learn Jev by running it

TypeSafe's decision model. Send a state, ask typed questions, get answers with probabilities.

Answers in under a second · $0.042 per million input tokens · no signup for the demo

An agent wants to run

$ rm -rf ~/projects

task: Clean up the build folder before the release

Safe without asking?

noul

0.01

Damage if it goes wrong?

choice

  • low
  • medium
  • high 1.00

Matches the task?

score

Loosely related

gate(answers)blockJev answered in 399 ms. The rule that blocks it is yours.

Three ways to ask Jev a question

Send one state. Ask typed questions. Get answers your code can act on.

State

“I was billed $49 twice on March 3 for the Team plan. … If it isn't sorted this week I'm moving us to another provider.”

Choice

Which one?

Which team should handle this ticket?

  • billing 1.00
  • bug
  • account
  • sales

Returns one pick, plus a probability for every option.

Use when each option leads to a different code path.

Noul

Yes or no?

Is the customer likely to cancel if this is not resolved?

0.81

Returns one probability of yes.

Use when your code needs an if statement.

Score

What level?

How soon does this ticket need a reply?

  1. Can wait
  2. This week
  3. Today
  4. Right now

Returns a level on your scale, plus a distribution.

Use when you set a threshold on a rubric.

See the raw request and response

Request

{
  "model": "~typesafe/jev-latest",
  "state": {
    "agent_task": "Clean up the build folder before the release",
    "proposed_tool_call": {
      "tool": "shell",
      "args": {
        "command": "rm -rf ~/projects"
      }
    }
  },
  "questions": {
    "safe": {
      "type": "noul",
      "instructions": "Is it safe to run this tool call without asking a human first?"
    },
    "risk": {
      "type": "choice",
      "instructions": "How much damage could this tool call do if it is wrong?",
      "criteria": {
        "low": "Read-only, or a small change inside the task's scope that is easy to undo",
        "medium": "Changes shared state, installs software, or acts outside the repo, but can be undone",
        "high": "Destroys data, weakens security, or cannot be undone"
      }
    },
    "on_task": {
      "type": "score",
      "instructions": "How closely does the tool call match the agent's task?",
      "criteria": [
        "Unrelated to the task",
        "Loosely related",
        "Partly matches",
        "Mostly matches",
        "Exactly what the task needs"
      ]
    }
  }
}

Response · 399 ms

{
  "model": "typesafe/jev-1.13-20260917",
  "answers": {
    "safe": {
      "type": "noul",
      "noul": 0.01
    },
    "risk": {
      "type": "choice",
      "choice": "high",
      "probabilities": {
        "medium": 0,
        "high": 1,
        "low": 0
      },
      "confidence": 1
    },
    "on_task": {
      "type": "score",
      "score": 0.89,
      "probabilities": {
        "0": 0.29,
        "1": 0.54,
        "2": 0.16,
        "3": 0.01,
        "4": 0
      },
      "confidence": 0.61
    }
  }
}

Ask Jev about your own state

Edit the state and the questions, then run them on the live model.

Proposed command:
Questions
Question 1
Question 2
Question 3

Jev's answer

Recorded 2026-09-24 · 399 ms · 511 input tokens · $0.000021
safenoul

Is it safe to run this tool call without asking a human first?

Probability of yes0.01
riskchoice

How much damage could this tool call do if it is wrong?

low0.00
medium0.00
high1.00

choice high · confidence 1.00

on_taskscore

How closely does the tool call match the agent's task?

0 · Unrelated to the task0.29
1 · Loosely related0.54
2 · Partly matches0.16
3 · Mostly matches0.01
4 · Exactly what the task needs0.00

score 0.89 is the expected value · most probable level 1

Model: typesafe/jev-1.13-20260917

Jev vs an LLM, measured in production

Jev replaced an LLM agent loop inside Preporato's study tutor.

Where it won

  • Decisions that follow the written rules

    Jev20/20
    LLM agent loop13/20
  • Same move when a state repeats

    Jev10/10
    LLM agent loop7/10
  • Median latency (shorter is better)

    Jev520 ms
    LLM agent loop18 s

Where it failed

  • 32/64

    Predicting a learner's next move

    Worse than always guessing the most common move (59%).

  • No fit

    Spotting hints that leak the answer

    No threshold separated giveaways from safe hints.

  • 0.94

    Confidence on a wrong route

    "shorter please" was routed as a question.

The rule: Ask about what is in the state, keep hard rules in code, fall back when unsure. Full comparison

The Jev roadmap

Five stages from a first request to a decision layer you can ship.

  1. 1

    Make your first decision

    State, questions, and reading the probabilities.

    Free, no signup

  2. 2

    Guard an agent's tool calls

    Allow, ask or block before a command runs.

    Free lab

  3. 3

    Route between a small and a large model

    Cheap model for easy requests, big for hard.

    Pro lab

  4. 4

    Calibrate your thresholds

    Make 0.9 mean 90%, then set the threshold.

    Pro lab

  5. 5

    Know where it fails

    Spot the questions Jev cannot answer.

    Pro lab

Jev API at a glance

Checked against the live API on 2026-09-24. Jev is in beta.

OpenRouter endpoint
POST /api/alpha/decisions
Model id (jev-1.13 today)
~typesafe/jev-latest
Per million input tokens
$0.042
Output tokens
Free
Context tokens
32K
Latency, per TypeSafe
70–500 ms
Max choice options
255
Max score levels
10
Input modality
Text
Since 15 Sep 2026
Beta

Frequently asked questions

The long answers live in the Jev API tutorial.

Build your first Jev guardrail

Free lab · about 45 minutes · nothing to install