Jev Ultrafast: 10k Stars in 4 Days — Architecture, 7s Google Flights & 12306 Compatibility Fixes

The article analyzes Jev Ultrafast, a minimal browser agent combining Browser Use and TypeSafe Jev that completes Google Flights searches in 7 seconds by converting pages into dynamic action tables, and details the author's 12306 test revealing three compatibility gaps fixed with generic keyboard events, cursor-pointer elements, and tab-switching logic.

ShiZhen AI
ShiZhen AI
ShiZhen AI
Jev Ultrafast: 10k Stars in 4 Days — Architecture, 7s Google Flights & 12306 Compatibility Fixes

Project Overview

Jev Ultrafast is a minimal browser agent built from Browser Use and TypeSafe Jev. As of September 20, 2026, the repository has gained 10,665 stars and 642 forks in four days, with only three commits on the main branch and no formal release. The core Python code plus snapshot scripts total about 850 lines. The project is licensed under MIT, requires Python 3.12+, Chrome, and uv, and uses TypeSafe Jev for action decisions (available via OpenRouter as typesafe/jev-1.13) and a text model (default example uses Inception Mercury 2.5).

Why It's Fast: Pages Become Action Tables

Each time Jev Ultrafast observes a page, it reads the visible HTML and ARIA controls, building a dynamic index of interactive elements — buttons, inputs, comboboxes — each assigned a code-maintained numeric ID. The model can only choose from currently observed elements and supported actions; it cannot invent CSS selectors, coordinates, shell commands, or executable JavaScript.

[1] button   Change ticket type · Round trip
[2] combobox Where from?        · San Francisco
[3] combobox Where to?          · empty

Supported actions: CLICK, TYPE_TEXT, SELECT, scroll up/down, WAIT, DONE, BLOCKED. The key optimization: "what to do next" and "which element for each action" are answered in a single TypeSafe request via speculative fan-out. For example, if the page has click, input, and dropdown targets, the system poses multiple questions in parallel; only the chosen action's target is consumed, others discarded. This merges two judgments into one network round-trip.

Small Model Only for Typing

Action selection and text generation are separated. Most steps involve only limited-choice decisions. Only when TYPE_TEXT is chosen does the system call a small OpenAI-compatible model to generate the input text based on the original goal, field meaning, page context, and recent actions. In the Google Flights demo, the text model was called twice: generating "Zurich" took 581 ms, "London" 346 ms. The response must be a JSON with a single text field; parse failures abort input.

Browser-Side Optimizations

One browser call captures the DOM snapshot.

Only visible text in the current viewport is sent by default.

Input autocomplete waits at most 200 ms.

Other interactions wait at most two animation frames or 50 ms.

Before execution, the system re-checks page state, target visibility, and occlusion to avoid stale decisions.

This design acts more like a "selector" than a free-form vision agent, trading some page coverage for smaller state, fewer browser round-trips, and faster per-step decisions.

7.073 Seconds: Real but Not a General Benchmark

The published measurement starts at the first prediction and ends when the agent emits DONE, including model calls, text generation, browser operations, expired decisions, and page loads. It excludes browser initialization, first page load, and post-run result verification. The repository ran three alternating control trials: both original and optimized versions passed 3/3, median task time dropped from 9.450 s to 7.092 s (25% improvement), and median browser protocol calls fell from 1,092 to 101. However, the author explicitly notes this is a single task, one browser configuration, three repeats — not a general reliability benchmark.

The claimed per-task cost of $0.0039 is attributed to the author; the public measurement file only confirms two text-model calls totaling $0.00006272. TypeSafe responses include token counts but no full dollar breakdown, and browser costs are not included.

Running the Agent: Two Keys or OpenRouter Only

The official code expects two credentials: TYPESAFE_API_KEY for action decisions and TEXT_MODEL_API_KEY for text generation. The example config uses OpenRouter's inception/mercury-2.5 with reasoning disabled. Setup commands:

git clone https://github.com/browser-use/jev-ultrafast.git
cd jev-ultrafast
uv sync
cp .env.example .env
uv run jev

Then open http://127.0.0.1:8766, click Start demo and Run automatically. A local inspector shows element IDs, action probabilities, target probabilities, and executed actions.

The agent can also be used as a library, passing a URL and goal. The repo includes Wikipedia and local hotel filtering tasks besides Google Flights. Project URL: https://github.com/browser-use/jev-ultrafast

If TypeSafe registration is unavailable, OpenRouter provides typesafe/jev-1.13 via its Decisions Alpha API. The author added a provider configuration locally to share a single OpenRouter key for both decision and text models:

JEV_PROVIDER=openrouter OPENROUTER_API_KEY=sk-or-... JEV_BASE_URL=https://openrouter.ai/api/alpha/decisions JEV_MODEL=typesafe/jev-1.13 TEXT_MODEL_API_KEY=sk-or-... TEXT_MODEL_BASE_URL=https://openrouter.ai/api/v1 TEXT_MODEL=~openai/gpt-luna-latest

Minimal API test returned typesafe/jev-1.13-20260917; both decision and text requests bill correctly. The Decisions API remains Alpha and may change.

12306 Real-World Test: Three Compatibility Fixes

The author tested a query for September 21, 2026, from Beijing South to Shanghai Hongqiao, checking only availability (no booking). The final version succeeded in 7 actions and 20.391 seconds, reaching the availability page; independent verification confirmed URL, departure, arrival, and date.

Action model: OpenRouter typesafe/jev-1.13 Text model: OpenRouter ~openai/gpt-luna-latest Actual actions: 7

Total time: 20.391 s

Page-change recovery: 1 (stale decision rejected, re-observed)

Final verification: Beijing South, Shanghai Hongqiao, 2026-09-21, availability page URL all passed

Safety boundary: No booking, waitlist, order submission, or payment clicks

The initial version failed at three points:

12306's station autocomplete relies on per-keystroke events. Bulk text entry filled the input but did not update the candidate list.

Station candidates ("Beijing South", "Shanghai Hongqiao") are custom div elements with only cursor:pointer, lacking standard button, link, or ARIA roles. The original snapshot saw the text but could not treat them as executable targets.

Clicking "Query" opens a new tab. The original browser driver stayed on the old homepage, causing the model to declare completion on the wrong page.

The author added three generic capabilities — dispatching real keyboard events per character; including visible, short-text, top-layer cursor:pointer elements in the controlled action space; and following newly opened result tabs. After modifications, offline tests, code checks, and 23 browser regression guards all passed.

Limitations: Boundaries Outside the DOM

Jev Ultrafast supports common HTML and ARIA controls but does not fully implement the browser's accessible-name spec. Shadow DOM, iframes, Canvas, file uploads, new tabs, nested scrolling, and complex keyboard components can stall it. Hard limits: max 60 actions, 120 decision requests, candidate actions truncated at 250. The 12306 fixes are local patches not yet upstreamed.

Model-emitted DONE does not equal task success. The demo separately verifies one-way, origin, destination, date, and result page correctness. Code re-reads geometry and checks occlusion before clicks to avoid "model thinks it clicked, page didn't respond." The modified version passed 32 pytest tests, 23 browser regression guards, Ruff, and two JavaScript lint checks before the 12306 online run. One success does not prove stable coverage of all 12306 flows, nor readiness for ticket snatching or ordering; but it turns "can model decisions land on real Chinese sites" from a demo video into a reproducible test.

Jev Ultrafast's engineering choices are restrained: if the model can make a limited choice, don't let it free-generate; if you can ask in parallel once, don't run serial rounds. For structurally clean, DOM-friendly search and form tasks, this path shows promise; complex pages and production workflows are not yet suitable for direct handoff.
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

PythonAI AgentBrowser Automation12306OpenRouterBrowser AgentTypeSafeJev Ultrafast
ShiZhen AI
Written by

ShiZhen AI

Tech blogger with over 10 years of experience at leading tech firms, AI efficiency and delivery expert focusing on AI productivity. Covers tech gadgets, AI-driven efficiency, and leisure— AI leisure community. 🛰 szzdzhp001

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.