mrkeyoor.com_
Sun 04 Oct 08:12 UTC
Automationevaluationupdated 04 Oct 2026

jev-ultrafast review

Jev Ultrafast is a Python browser agent that chooses from visible page controls instead of asking a language model to invent selectors or scripts. It is built for short, bounded web tasks where fewer model round trips matter, with a second small model supplying text only when the agent selects a field.

Verdict

Our Jev Ultrafast run installed 48 packages in 19 seconds and passed all 31 tests, so the code is easy to evaluate even though the browser coverage is still MVP-sized. Use it for bounded experiments where every outcome has an independent check and the supported DOM controls match the site. Wait for the open field-context fixes and a tagged release before trusting it with repeated-label forms or unattended, consequential work.

We ran it

Lab card: what happened when we ran jev-ultrafastScreenshot of jev-ultrafast (browser-use.com)
Install✓ · 19s48 packages · 62 MB
Build✓ · 3s
Tests✓ · 4s31 passed · 0 failed of 31 (pytest)
Known vulns0(pip-audit)
Repo40 files~2,049 lines of source · 2.6 MB · 0 CI workflows · tests dir

Answers from our run

Does jev-ultrafast build from source?

Dependencies installed in 19 seconds (48 packages), and the build succeeded in 3 seconds. We cloned commit 1231850 into a clean Debian container with 3 CPUs and no project-specific setup.

Do jev-ultrafast's tests pass?

Yes: 31 of 31 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does jev-ultrafast have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use jev-ultrafast?

Workflows that depend on frames, shadow roots, canvas controls, uploads, pop-up tabs, nested scrolling, or arbitrary keyboard widgets: the README lists all of them outside the MVP.

What are the alternatives to jev-ultrafast?

Browser Use, Playwright MCP, Stagehand. Our Jev Ultrafast run installed 48 packages in 19 seconds and passed all 31 tests, so the code is easy to evaluate even though the browser coverage is still MVP-sized.

Setup3/5Fast local setup, then two API keys and Chrome connection work
Docs5/5Code map, limits, measurements, and verification boundaries are explicit
Community4/521,922 stars and active PRs, with a crowded young queue
Maturity2/5Version 0.1.0, no tagged release, and documented MVP limits

Who it’s for

Browser-agent researchers testing whether indexed DOM choices can cut latency and browser calls.
Python developers building bounded web tasks with their own independent outcome checks.
Teams willing to run Chrome through Browser Harness and pay for TypeSafe plus a text-model provider.
Engineers who want a roughly 2,049-line agent they can read before allowing it to act.

Who it’s NOT for

Workflows that depend on frames, shadow roots, canvas controls, uploads, pop-up tabs, nested scrolling, or arbitrary keyboard widgets: the README lists all of them outside the MVP.
High-stakes automation without a separate verifier: the project says a DONE choice is not independent evidence that the task succeeded.
Forms with repeated labels such as multiple passenger names: open issue 198 says the text helper lacks element identity and nearby form context, so it may have to guess which field it is filling.
Teams unwilling to send decisions and text requests to two model services: the documented demo requires TYPESAFE_API_KEY and TEXT_MODEL_API_KEY.
Buyers who require tagged releases, upstream CI, and a supplied container: GitHub had no release, while our checkout had no CI workflow and no Dockerfile.

Setup reality

Our fresh Debian sandbox installed commit 1231850 in 19 seconds, adding 48 packages and using 62 MB. The build passed in 3 seconds. Pytest then passed all 31 tests in 4 seconds, and pip-audit found 0 known vulnerabilities.

A live run needs Python 3.12 or newer, Chrome connected through Browser Harness, a TYPESAFE_API_KEY, and a TEXT_MODEL_API_KEY. The example sends text generation through OpenRouter, though the helper accepts other OpenAI-compatible endpoints and models.

Chrome remote debugging must be enabled when prompted, and agent-owned tabs share the existing browser profile. Our 40-file checkout had tests but no CI workflow or Dockerfile. Live examples make paid API calls, while the supplied tests stay offline.

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.

Alternatives

ProjectWhat it isPick it when
Browser Use gh↗A broader Python and TypeScript browser-agent stack with local and hosted browser options.pick this instead when you need wider browser capabilities, cloud browsers, or a general agent framework rather than Jev's experimental fast loop.
Playwright MCP gh↗An MCP server that exposes Playwright through structured accessibility snapshots.pick this instead when an existing agent should drive the browser through explicit tools and persistent MCP state.
Stagehand gh↗A browser SDK that mixes natural-language actions and extraction with direct Playwright control.pick this instead when you need to combine model-guided steps with deterministic code and schema-checked extraction.

What people are saying

  1. [velocity-scout] browser-use/jev-ultrafast

Sources

  1. Jev Ultrafast README
  2. Jev Ultrafast performance report
  3. Jev Ultrafast agent loop at tested commit
  4. Open issue 198 on same-labeled fields
  5. Jev Ultrafast releases

More automation reviews

typesafe-computer-use · jev-trader · omniget · WA-AKG · MacDuo · flycoinrh · the whole board →