Eight bounded operations replace free-form browser commands
Jev Ultrafast constrains each decision to 8 operations and selects a compatible target in 1 TypeSafe request: click, type, select, scroll in either direction, wait, finish, or declare the task blocked. A snapshot turns visible controls into a numbered table, and the executor resolves the selected choice back to the observed DOM node. Model output never becomes a CSS selector, coordinate, shell command, or JavaScript program.
This is a sharp design choice for latency and inspection. The tested checkout held 40 files and about 2,049 lines of source, with the loop concentrated in agent.py, model.py, browser.py, and snapshot.js. Each executed target is checked against page freshness and click obstruction before input. The agent also records action probability, model latency, browser state changes, and the selected target, giving a reviewer more than a final success message to inspect.
Text entry still needs a second model and two API keys
Jev Ultrafast needs 2 model services for text entry: TypeSafe selects the field, then an OpenAI-compatible model produces its value from the goal and page context. The example configuration uses jev-latest for decisions and inception/mercury-2.5 through OpenRouter for text. A live demo therefore needs both TYPESAFE_API_KEY and TEXT_MODEL_API_KEY. The executor accepts only a small JSON object from the helper and rejects empty, oversized, or malformed text.
The separation keeps prepared field strings out of the policy, though it creates another failure and billing path. If the text provider times out, returns bad JSON, or chooses the wrong value, the browser task stops or types bad data. A stale-page retry may reuse generated text only when the helper input matches. Open issue 198 identifies a gap in that input: same-labeled fields do not carry element identity or nearby form context, leaving the helper to infer which field it has been given.
What happened when we ran it
Our measurement setup was a fresh Debian sandbox, where we measured a 19-second install for commit 1231850, with 48 packages added and 62 MB used on disk. The build passed in 3 seconds. Pytest passed 31 of 31 tests in 4 seconds, and pip-audit reported 0 known vulnerabilities. The container had 3 CPUs, 8 GB of RAM, Python 3.12, no secrets, and no elevated privileges.
Those 31 tests are offline, as the README says. Our run covered the supplied code paths without spending money or driving a real website. We did not supply either API key, connect Chrome, run Google Flights, or measure live task latency. Treat the result as evidence that the package builds and its test fixtures pass at the measured commit. It does not confirm the project's browser-speed claims on our hardware.
The speed evidence covers six runs of one flight task
The project's performance report puts median task time at 7.092 seconds across 6 alternating Google Flights runs on one existing Chrome profile. Both versions passed 3 of 3 attempts, and the original median was 9.450 seconds. Median browser protocol calls fell from 1,092 to 101. The authors explicitly call three pairs too few for a broad benchmark and exclude initial navigation plus independent post-run verification from the clock.
That disclosure is better than a naked fastest-agent claim. It also limits the conclusion: the measured optimization helped one task, profile, model pairing, and browser setup. A separate Wikipedia check and a local hotel fixture show the same policy can do more than flights, but they are smoke checks rather than matched comparisons. Before adopting Jev for your site, record several real tasks and score completion outside the agent loop.
The MVP excludes frames, uploads, and new tabs
Version 0.1.0 reads common HTML and ARIA controls, yet it does not implement the full accessible-name rules. The README excludes shadow roots, frames, canvas, file uploads, pop-up tabs, nested scrolling, and arbitrary keyboard widgets. Owned tabs also share the connected Chrome profile. Use a dedicated browser profile until you have reviewed what the agent can see and which authenticated pages it can reach.
Completion needs similar care. The policy may choose DONE when the visible page looks right, but the project says that choice is not independent evidence. Its flights example checks route, date, trip type, and visible results after the agent stops. Copy that pattern. A purchase flow, account change, or submitted form should have a code-owned verifier and a human approval boundary before any irreversible action.
October's 187-item queue shows interest and unsettled behavior
GitHub showed 21,922 stars and 187 combined open issues and pull requests on October 4, 2026. A separate search split that queue into 41 issues and 146 pull requests. The default branch was last pushed on September 30, while pull-request activity continued on October 3. There was no tagged GitHub release, and the package metadata still said version 0.1.0.
The queue contains useful work on disconnect recovery, same-label fields, scrolling, uploads, and model errors. It proves people are testing the edges. It also means many fixes are proposals rather than shipped behavior. Jev Ultrafast is worth studying if constrained choices match your automation problem. For unattended production work, pin the tested commit, add site-specific verification, and wait for the fixes your forms actually need.

