jev-ultrafast: the browser agent that books a flight in 7.1 seconds
jev-ultrafast is browser-use's browser agent: Jev picks the operation and target in one request, and a small LLM writes text only when needed.
Project facts
GitHub Ecosystem- License
- MIT
- Language
- Python
- Stars
- 22,696
- Data checked
- 2026-10-12
Snapshot figures reflect the check date and may change over time.
Most browser automation asks a multimodal model “what do I click now” at every step, which is slow and bills you for every pixel. jev-ultrafast is the browser-use team’s answer, open-sourced on 2026-09-17 (MIT, Python, 22.7k stars as of 2026-10-12): give it one natural-language goal, and each round it compiles the page’s controls into a numbered table, then spends a single TypeSafe request deciding both which operation to take and which element to take it on. A small LLM only writes text when the operation is TYPE_TEXT.

Core features
- Two decisions, one request: the operation and target heads share a single observation; speculative target questions guarantee that when the operation is CLICK, only click_target can execute, so one decision costs one network round trip.
- No screenshots in the default loop: the model consumes structured state instead of pixels (the inspector opts into screenshots); the project’s performance.md records a median Jev latency of 178 ms.
- Text generation outsourced to a small model: the text helper runs only for TYPE_TEXT, with inception/mercury-2.5 and reasoning disabled in the example config; the two city-name strings took 581 ms and 346 ms to generate.
- Validation before execution: clicks compare the document, form values, the target, and nearby context, resolve current geometry, and reject covered controls; animation alone never forces another prediction.
- Model output never becomes code: results never turn into selectors, coordinates, shell commands, or executable JavaScript, and the text helper’s output must parse as a small JSON object before it is typed.
- Small enough to read: the complete loop and text handoff live in six source files — agent.py, snapshot.js, browser.py, model.py, questions.py, demo.py.
Typical use cases
- Travel and research automation: one goal runs a full Google Flights search (7.073 seconds, independently verified), opens a specific Wikipedia article (2.798 s), or searches and filters a local hotel page (1.896 s) — each shaped as “one goal plus one result check”.
- Web form regression testing:
examples/flights.py --keep-opensaves the full trace, so a redesign is checked against independent verification instead of eyeballing. - Anyone who wants to read the paradigm: agent.py alone is the whole loop, which is faster than reading a framework’s source.
Quick start
git clone https://github.com/browser-use/jev-ultrafast.git
cd jev-ultrafast
uv sync
cp .env.example .env
# Add TYPESAFE_API_KEY and TEXT_MODEL_API_KEY.
uv run jev
Open http://127.0.0.1:8766 and click Start demo → Run automatically. The inspector shows numbered elements, operation and target probabilities, and executed actions; Choose next pauses before execution. Chrome connects through Browser Harness, installed by uv sync; run uv run browser-harness --doctor if it needs connecting, and allow remote debugging when Chrome prompts.
Benchmarks
From the project’s docs/performance.md (2026-09-30): six alternating runs, one existing Chrome profile, the same natural-language goal and independent result checker, with initial navigation excluded from the clock:
| Metric (median) | Original arm | Optimized arm |
|---|---|---|
| Task time | 9.450 s | 7.092 s |
| TypeSafe requests | 22 | 17 |
| Browser protocol calls | 1,092 | 101 |
The two-order-of-magnitude drop in protocol calls says more than the total time: one atomic DOM snapshot replaced repeated accessibility-tree walks and resolving hundreds of nodes. The document is equally clear about the limits — a sign test over three pairs gives p = 0.25, this is a small controlled-input comparison, not a broad agent benchmark, and Google, network, routing, and browser caches all remained live.
Summary
jev-ultrafast fits developers who want browser automation without maintaining per-site scripts, and anyone researching the structured-state-over-screenshots route. What it does not fit is equally explicit: shadow roots, frames, canvas, uploads, new tabs, and arbitrary keyboard widgets are outside this MVP, and the DOM reader covers common HTML and ARIA controls, not the full accessible-name algorithm. Three more things to know: it needs two keys (TYPESAFE_API_KEY plus an OpenAI-compatible TEXT_MODEL_API_KEY, an OpenRouter key in the example config); Chrome only; and the recording scripts make real, paid API calls. MIT-licensed, written in Python. For the trade-offs of sibling approaches, read our five routes to agent browser control; this project leads the ten Jev use cases roundup.