Jev Ultrafast: A browser agent with a dynamic, indexed action space
Jev Ultrafast is a browser agent built around a dynamic, indexed action space. The user supplies one natural-language goal, and TypeSafe's Jev selects both an operation and an element to act on. A small LLM is called to write text only when the chosen operation is TYPE_TEXT. As a benchmark, it performs a Zurich → London search on Google Flights in 7.1 seconds, with that time including the natural-language goal, actual text generation, and loading waits. The project links to an MP4 demo, measurements, and the agent loop.
Every observation produces a new element table. The excerpt's example table lists [1] button Change ticket type · Round trip, [2] combobox Where from? · San Francisco, [3] combobox Where to? · empty, and [4] textbox Departure · empty, followed by more entries. The available operations are CLICK, TYPE_TEXT, SELECT, SCROLL_UP, SCROLL_DOWN, WAIT, DONE, and BLOCKED. Only supported operations and targets are offered at each step. In one TypeSafe request, the flow is page → element table → operation, click_target, type_text_target, and select_target if present. The matching target is then used: for example CLICK [7] or TYPE_TEXT [3] goes to the browser, while a small LLM generates text for TYPE_TEXT and sends it to the browser. Target questions are speculative. If the operation is CLICK, only click_target can execute. The system makes two decisions in one network round trip, and each target head contains only compatible elements. Native dropdown choices carry an observed element/option index. There are no site-specific action scripts or prepared field strings in the policy. The Flights example supplies a goal and independently verifies the outcome. The screenshot renderer adds labels afterward; it does not drive the browser.
To try it, clone https://github.com/browser-use/jev-ultrafast.git, cd into jev-ultrafast, run uv sync, copy .env.example to .env, and add TYPESAFE_API_KEY and TEXT_MODEL_API_KEY. Then run uv run jev, open http://127.0.0.1:8766, and click Start demo → Run automatically. The inspector shows numbered elements, operation probabilities, target probabilities, and executed actions. Choose next pauses before execution. Chrome connects through Browser Harness, which is installed by uv sync; run uv run browser-harness --doctor if it needs connecting, and allow remote debugging in Chrome when prompted. TEXT_MODEL_API_KEY is an OpenRouter key in the example configuration. The current demo uses inception/mercury-2.5 with reasoning disabled. Gemini, GLM, and DeepSeek can also use the OpenAI-compatible text helper; configure the appropriate model, endpoint, and reasoning setting.
The library can be used directly: from jev_ultrafast import Agent, then with Agent(`https://www.google.com/travel/flights?hl=en`, `Find one-way flights from Zurich to London on September 20, 2026, for one adult in economy. Stop when matching flight options are visible.`) as agent: for state in agent.run(): print(state[`elapsed_ms`], state[`status`]). Run it with uv run --env-file .env python your_script.py. The same policy can run a different task: uv run --env-file .env python examples/run.py --url https://en.wikipedia.org/wiki/Main_Page --goal 'Find and open the Wikipedia article about Gödel’s incompleteness theorems.' Also, uv run --env-file .env python examples/flights.py --keep-open perf.