Jev Ultrafast: A browser agent with a dynamic, indexed action space
TL;DR Highlight
Numbering page elements for the model cut a Google Flights search to 7.1 seconds.
Who Should Read
A developer whose browser agent is slow and expensive and who wants to run it on structured DOM state instead of screenshots
Core Mechanics
- Page elements become a numbered table
- Every observation builds a fresh table like [1] button, [2] combobox.
- The operations are CLICK, TYPE_TEXT, SELECT, SCROLL_UP, SCROLL_DOWN, WAIT, DONE, and BLOCKED.
- Only supported operations and targets are shown to the model.
- Operation and target in one request
- The operation head and target heads read the same state in one network round trip.
- Target questions are speculative, so if the operation is CLICK only click_target executes.
- A small LLM writes text only for TYPE_TEXT.
- Structured state, no screenshots
- The default loop uses no screenshots.
- Only visible text is sent, so offscreen bodies and footers do not fill the context.
- One browser call per snapshot reads control names, values, and text atomically.
- Model output never becomes code
- Every executed target is resolved from an observed node.
Community Reactions
- Opinion that a cloud model is disappointing
- Commenters wanted a model that runs fast on consumer hardware.
- One did not want to pay an AI tax to gatekeepers on every use.
- Experience raising telemetry concerns
- One commenter inspected browser-use and said default-on PostHog telemetry is excessive.
- They claimed browser-harness can leak credentials.
- Question about the timing boundary
- A commenter asked whether the initial page observation, excluded from timing, is the slowest part.
- Reports that it does not run
- One person got an error on the run demo button, with no build error.
- Another simply said it does not work.
- Opinion that Google Flights needs no agent
- A commenter said the flight URL can be constructed with protobuf.
How to Apply
- Try the numbered table with a prompt
- Convert your agent's DOM dump into lines like [id] role name · value.
- Restrict the model's reply to an operation and an id in JSON.
- The prompt below lets you test it in 30 minutes.
- Remove screenshots from the default loop
- Send only visible control text and values as a structured snapshot.
- Turn screenshots on only for debugging.
- Limit model output to node ids
- Accept only observed element ids instead of selectors or coordinates.
- Re-resolve the node and check for page changes and covered elements right before acting.
- Add independent verification after DONE
- Even when the agent says it is finished, recheck route, date, and results in code.
Try It
# Paste into Claude or ChatGPT (simplified version of the Jev approach: pick an action from a numbered element table)
You are the policy model of a browser agent. Pick exactly one next action from the element table below.
Allowed operations: CLICK, TYPE_TEXT, SELECT, SCROLL_UP, SCROLL_DOWN, WAIT, DONE, BLOCKED
Reply with one line of JSON only: {"operation":"...","target":number or null}
Do not use ids that are not in the table, and no selectors or coordinates.
Goal: {{goal}}
Element table:
{{element table, e.g. [1] button Change ticket type · Round trip
[2] combobox Where from? · San Francisco
[3] combobox Where to? · empty
[4] textbox Departure · empty}}
Next to try: when TYPE_TEXT comes back, generate the text in a separate request with a small model and compare response speed.Terminology
Related Papers
Same Simulation, Different Evidence: Where Retrieved Tool Output Costs LLM Agents Accuracy
Saving long tool output to files cut GPT-5.1 accuracy by 11.3 points; naming the authoritative file restored it.
Fake News, Real Crashes: Information Injection Attacks on LLM Financial Trading Agents
Fake headlines hijacked LLM trading agents 62% of the time versus 14% for prompt injection.
Harness Engineering 101: The LLM is the brain, the harness is the body
An agent is a loop managing a JSON array; 16 chapters build one from scratch
Harness2 by Google Research – Recursive Agent Harnessing
Recursively refining the harness with fixed model weights raised benchmark scores by up to 11.8 points.
Ousted Savannah police officer gave ICE agent husband access to Flock system
A police officer shared her Flock login with her ICE-agent husband; an audit found 983 searches and she was fired
Tmux and Claude Code: Sessions, Send-Keys, and the Ceiling
Running Claude Code agents in tmux works well, but limits appear around four agents.