Browser agents were the first breakout use case for Jev, and the reason is structural. A browser loop is a long series of small decisions — which element, which action, which value — and the expensive model does not need to make any of them. Hand those decisions to Jev and the language model only shows up when text has to be written or a plan has to change.
One request per step, no screenshots
jev-ultrafast is the reference implementation. Each observation produces an indexed element table, and one TypeSafe request returns the operation plus every target head: click_target, type_text_target, select_target. Only the target matching the chosen operation executes, so speculative questions cost nothing extra. The measured demo runs a Zürich to London Google Flights search in 7.1 seconds including text generation and loading waits.
The default loop never sees a screenshot. Jev consumes structured DOM text, and the waits are explicit: up to 200 ms for combobox suggestions, otherwise two animation frames or 50 ms. When the operation is TYPE_TEXT, a small LLM writes the string; everything else is decided by Jev.
jev-browser applies the same shape with a smaller footprint: one ~300 ms request per round answers which element, which action, which value, and whether the step is done, blocked, or erroring. Its latest reported run was 40 of 42 tasks correct on live sites with zero false done claims, and a five-step checkout measured about 14 seconds end to end.
Keep the expensive agent in charge
A second pattern delegates only the mechanical steps. Jev Browser Use plugs into an existing Codex Computer Use session: Jev receives accessibility text and returns the next action, while Codex keeps text input, visual judgment, and final verification, and takes over whenever a step needs help. The install is a single npx skills add.
Mobile Jev does the same for Android. Jev chooses among OPEN_APP, TAP, TYPE_TEXT, scrolling, navigation, WAIT, DONE, and BLOCKED; code validates the target before Mobilerun executes it. Its demo re-reads the screen and verifies the switch is actually on instead of trusting a model DONE.
Computer use beyond the browser
typesafe-computer-use is the clearest cost argument in the category: macOS Vision OCR plus the accessibility tree feed one TypeSafe request with up to three Choices to pick the next action, measured at $0.0002 per decision and 0.13–0.38 s model latency, against $0.032 and 5.2 s for Claude Opus 5 on the same screenshot. It stops on done or none, confidence below 0.4, two consecutive no-ops, a step limit, or Ctrl-C.
jev-use adds the safety pattern these loops need: jev_gate is an opt-in PreToolUse gate that can only deny or ask, never silently allow, and an unreachable backend escalates instead of waving a command through.
What to copy
- One request per decision cycle, with target heads batched speculatively.
- Structured text as state, not pixels, unless the task truly needs vision.
- A separate model for the rare step that needs prose.
- Explicit stop conditions and a verification read after acting.
- Gates that fail closed once they are load-bearing.
Open models in the loop
The same loop runs on weights you can download. OpenDecider Nano answers at 47 ms per question from an ONNX file in a browser tab and serves the Jev API shape from a 400M encoder; Julia 1's WebGPU build answers 100 decisions in a median 7.55 seconds entirely client-side. Neither needs a key or a network call once loaded, which removes the per-step cost argument from the decision entirely.
For the form-filling slice of computer use, Cua-S1 Forms is the smallest serious entry at 706,048 parameters: it scores candidate values for a UI element in one forward pass, and its card reports 99.7% on a synthetic form task against 83.6% for the hosted Jev API — with the honest footnote that the real-world 100% figure rests on 196 decisions across six documents. The card also carries a security note worth repeating: a pickle checkpoint was removed from the repo, and only the safetensors pair should be loaded.
Vision comes into the loop through JEV-27B-VL, whose demos completed 95% of 60 computer-use tasks when numbered boxes were paired with element text — and only 10% with boxes alone, because it declared tasks complete too early. That gap is the whole reason the browser tools above keep structured text as state and reserve pixels for the steps that truly need them.
What a local model changes
- The loop survives a network outage and a revoked key; keep the model resident between steps as the demos do.
- Fail-closed gates matter more, not less: a local model cannot be swapped server-side, so your checkout is the only version that exists.
- Parity is not accuracy. Browser exports publish output-agreement tests, not reruns of the accuracy suite.
- The stop conditions still belong in code: verification reads, step limits, and confidence floors are the same regardless of where the model runs.
The tools category collects the rest of these integrations, from desktop control to terminal agents.