September 20 update: Beam CLI now has a separate optional Jev action-judging integration using TypeSafe's API directly. It starts disabled and uses observation by default when enabled. This article's discovery-only discussion concerns third-party Jev CLIs.
Jev is TypeSafe AI's "System One Model" — a non-generative model that answers classification-shaped questions instead of writing text. It launched 2026-09-15, and within two days, third-party projects like jev-guard and jev-axi started using it as a decision layer inside coding-agent hooks: risk-scoring a proposed tool call and returning allow, deny, or ask before the call runs. That puts a brand-new, largely unverified model in the exact spot Beam's own pre-action hooks live.
TL;DR
| Question | Answer |
|---|---|
| What is Jev? | TypeSafe AI's non-generative judgment model, launched 2026-09-15 |
| Why does it matter for hooks? | Third-party CLIs (jev-guard, jev-axi) risk-score tool calls before a coding agent's hook runtime executes them |
| One official hook contract? | No — fragmented across at least half a dozen independent CLIs shipped within 48 hours |
| Does Beam install a Jev hook? | No — discovery only (config/artifact presence), not an installable merge target |
| Accuracy proven for security gating? | Not independently — TypeSafe discloses a real accuracy gap against a full LLM |
| Jev itself attacked in published research? | Yes: HiddenLayer's October 14, 2026 analysis (see the update below) |
What Jev actually is, and why it ended up in hooks
Jev doesn't generate text — it takes a typed question and a small set of possible answers and returns a calibrated judgment, the shape of decision a classifier makes. TypeSafe claims it's 20-200x faster and 40-400x cheaper than an LLM for that kind of structured decision, though explainx.ai's fact-check found the claim is TypeSafe's own self-benchmark — measured against agreement with other frontier models, not verified ground truth — with a real disclosed accuracy gap underneath (67.8% for Jev versus 74.1% for the best comparator LLM).
A pre-tool-execution hook — the mechanism Beam installs for Claude Code, Codex, Cursor, and Gemini CLI — answers exactly that shape of question on every tool call: is this risky, allow or deny or ask. explainx.ai's coverage of Jev's security positioning documents TypeSafe's own contains_prompt_injection primitive for this, a fast filter meant to sit in front of a main model. What's moved since is where the filtering sits: jev-guard and jev-axi risk-score a coding agent's tool calls — shell commands, file writes, MCP invocations — not just prompts, and return a deny/ask decision the hook runtime is expected to respect. A wrong prompt filter lets bad text through to a model; a wrong tool-call gate blocks real work or lets a risky action through unflagged.
What TypeSafe's own documentation says Jev is
TypeSafe's documentation describes Jev as the first System One model: it evaluates typed questions against a state and returns structured results with no text generation and no parsing. There are three main question types. A Choice picks one option from a list and returns probabilities per option plus a confidence value. A Score rates the state on a rubric and returns a score, a probability distribution over the levels and a confidence. A Noul asks whether a statement is true and returns a number between 0 and 1. Noul answers carry no confidence value. Several questions can go in one API call and are evaluated in parallel and in isolation.
The docs also state plainly what Jev is not. A page titled Jev with coding agents says Jev is not a drop-in replacement for the model behind Claude Code, Cursor, Copilot or similar tools, and that it does not write code or hold a conversation. The intended use is as a decision step inside software you build, for example routing, scoring or guardrails. TypeSafe's cookbook for guardrails for LLMs shows the pattern that the third-party hooks borrow: screen a message with a battery of Noul questions and a Score question, then set thresholds that pass, review, block or route it.
That distinction explains the ecosystem. The hooks do not make Jev an agent. They use it as a classifier at the point where a coding agent is about to act.
Confidence is a second axis, and it is your job to use it
The confidence documentation explains that a Choice or Score answer includes a probability distribution, and that confidence collapses its shape into one number from 0 to 1: 1 when all the probability sits on one outcome, 0 when it is spread evenly. TypeSafe suggests three ranges. High confidence can act automatically, medium confidence should proceed with caution or ask for confirmation, and low confidence should not act and should go to a human or another system. It adds that thresholds should scale with risk.
For a security hook this is the key design question. A wrapper that reads only the top label and ignores confidence throws away the signal TypeSafe tells you to use. A wrapper that treats low confidence as allow fails open. A wrapper that treats it as ask or deny fails closed or asks. The point is the same one made above about the accuracy gap: the safety property of a Jev-based hook is mostly defined by what the wrapper does with uncertainty, and that lives in the wrapper's source.
There's no one Jev hook to trust
TypeSafe doesn't publish a single documented hook payload contract the way Anthropic, Cursor, and GitHub do for their own agents. At least half a dozen independent, unaffiliated projects shipped their own Jev-wrapping CLI within 48 hours of launch — a pace explainx.ai catalogued — each with its own config layout, credential storage, and idea of what payload to accept and what response to emit.
That fragmentation is why Beam treats Jev differently from the agents it already supports. Every agent Beam installs a hook for has a single, vendor-documented config file and payload shape Beam verified before shipping — Jev has neither, so there's no way to tell, without reading a specific project's source, what a "Jev said deny" in your hooks.json actually checked. beam agent list reflects that plainly:
│ jev │ Jev (TypeSafe AI) │ config wiring not built yet │ payload best-effort │
Beam checks for the config and artifact paths seen across the current ecosystem (~/.config/jev, ~/.config/jev-axi, ~/.jev), the same discovery pass it runs for every agent, so Jev shows up in inventory if it's present. It does not write or merge a hook config for it — there's no single contract to merge into, so there's nothing safe to install. If you're already running a Jev-based hook, Beam won't touch its config, and won't call the integration verified until a canonical contract exists to check against.
Update (October 20, 2026): the first public attacks on Jev
When this post was written, no adversarial research on Jev had surfaced. That has changed. HiddenLayer published its analysis of Jev on October 14, 2026, asking whether a model that returns decisions resists manipulation better than one that returns text. Our separate post on the HiddenLayer findings covers them in full. The parts that matter for hook design:
- Jev is a closed API. HiddenLayer could not inspect it, so for controlled comparisons it built a test model by converting Qwen3.8 27B to read the probability of each allowed option in a single pass. It reports that this model came close to Jev in decision quality and speed, and says close is not identical. Results that name Jev come from Jev's own API.
- Checkout-page test. A browser agent was told to buy what was in the cart, with a rule that page text is untrusted data. HiddenLayer added a sponsored ad claiming the sale price had not been applied, with a Confirm Price button. Jev's API gave Confirm Price 91 percent and Place order 9 percent. The test model went from 99.7 percent on Place order before the ad to 79.9 percent on the ad button after it.
- Safety-filter test. Jev and the test model flagged all 30 toxic prompts HiddenLayer started with. After an expanded form of its 2025 TokenBreak attack, which inserts letters into key words so the classifier tokenizes them differently, many edited prompts evaded both models. In the example HiddenLayer shows, the edits cut the toxicity score by more than two thirds and Jev stopped flagging it.
HiddenLayer's conclusion is that a model returning a decision is still a language model, and its decision still becomes an action. For anyone running a Jev-based tool-call gate, two of HiddenLayer's five suggested questions apply directly: what untrusted text reaches the model's input and who controls it, and what independent check sits between the model's answer and any action that moves money, data or access. This update does not change the earlier advice. It strengthens it: a classifier that scores tool calls can be steered by text in the very content the agent is reading.
Why the accuracy gap matters more here
A prompt filter and a tool-call gate tolerate errors differently. TypeSafe's own disclosed accuracy gap is tolerable for a fast filter sitting in front of a slower, more accurate model that can still catch what it misses; it's a harder tradeoff for a tool-call gate with no second check behind it, where a false "allow" on a destructive command is immediate and irreversible. That doesn't make a Jev-based hook unsafe by default — the real question is what a specific build does on the roughly 6-point slice of decisions where Jev disagrees with a stronger model: fail open, or fail closed. That detail lives in each project's own source, not in anything TypeSafe publishes about Jev itself.
How to check what a Jev-based hook does on your machine
Because there is no vendor contract, you have to inspect the specific project. These checks need no special tooling:
- Find the hook entry. Open your agent's hook configuration and look for a command that mentions
jev. Note the package or binary behind it. - Read what leaves the machine. A Jev call sends state and questions to TypeSafe's API. Find out which fields of the tool call, such as the command string or file path, the wrapper includes in the state, and whether it strips secrets first.
- Find the failure branch. Search the wrapper for what it returns when the API errors, times out or answers with low confidence. That branch decides whether an outage or a manipulated score turns into an allow.
- Check credential storage. The wrapper needs a TypeSafe key. Confirm where it is stored and with what permissions.
- Run
beam agent listto see whether Beam's discovery pass has found Jev config or artifact paths, as described above.
None of this requires believing or distrusting Jev. It turns an opaque "Jev said allow" into a known set of inputs, outputs and failure behaviours.
Honest limitations
- No independent security audit of any Jev-wrapping hook CLI exists yet — this describes the mechanism and ecosystem structure, not a benchmarked failure rate.
- Published adversarial research on Jev is thin. When this post was written there was none, a gap explainx.ai noted directly. HiddenLayer's October 14 analysis (see the update above) is the first, and it covers two scenarios, not every deployment.
- Discovery of third-party Jev CLIs remains separate from direct API judging. Beam does not install those wrappers' hooks. See the optional direct integration guide for the newer workflow and its limits.
- This isn't a claim that Jev-based tool-call gating is unsafe — only that, absent a verified contract, it deserves the scrutiny any new dependency in a security-relevant path earns.
What this means for builders
If your hook chain already includes a Jev-based gate, know which project it is, know what it does on a low-confidence judgment, and don't treat it as your only defense against a risky tool call. That's the gap Beam fills regardless of what's making the allow/deny call upstream: it records what an agent actually did, so a bad call from any gate leaves evidence you can inspect, not just a decision you have to trust.
Related reading
- HiddenLayer's Jev prompt-injection research (October 15), the first public attacks on Jev
- Beam CLI optional Jev action judging, the newer direct-API workflow
- Stop Claude Code from running dangerous commands
- Introducing Beam: local-first AI agent security
- MCP security: a practical guide to tool poisoning and rug pulls
- What is AI agent monitoring?
- explainx.ai on Jev: speed/cost claims fact-checked · prompt-injection detector use case · six clones in two days · launch coverage
- TypeSafe AI's "customer output leak" was a joke; October's attacks are not
This post reflects Jev's ecosystem and Beam's own agent support as of 2026-09-19, four days after Jev's launch. Both are moving quickly — verify current hook-installation status with beam agent list and check TypeSafe's own documentation before trusting any third-party Jev-based hook in a production pipeline.

