deniz.in

Markets

Weather

Loading weather

· via Hacker News – Front Page (hnrss.org)

TypeSafe's Jev browser agent finishes web tasks in seconds with an indexed action space

TypeSafe's Jev browser agent turns each page into a numbered element table and picks an operation plus target in a single request, completing a Google Flights search in about seven seconds.

TypeSafe's Jev browser agent finishes web tasks in seconds with an indexed action space

What Jev is

A project called Jev Ultrafast, hosted under the browser-use organisation on GitHub and featured on the Hacker News front page on September 17, describes a browser agent built around a dynamic, indexed action space. According to the project's README, TypeSafe's Jev takes a single natural-language goal and, on each decision cycle, chooses one operation and one numbered element from the current page. A separate small language model generates text only when the chosen operation is TYPE_TEXT.

The headline demonstration is a one-way Google Flights search from Zürich to London completed in 7,073 milliseconds, with timing that starts after the initial page observation and includes model calls, generated text, browser work, stale decisions and loading waits. An independent check verifies the one-way setting, both cities, the date and that matching flight options are visible.

How the action space works

Every observation of the page produces a fresh element table: visible controls are listed with an index, a role such as button, combobox or textbox, a name and a current value. The operation set is deliberately small — CLICK, TYPE_TEXT, SELECT, SCROLL_UP, SCROLL_DOWN, WAIT, DONE and BLOCKED — and only operations a given control supports are offered.

The architectural core is a single speculative request that answers two questions at once: which operation to perform and which element to act on. Each target head contains only elements compatible with its operation, so if the model picks CLICK, only clickable targets compete for execution. The README stresses that the policy contains no site-specific action scripts and no prewritten field strings; the same policy reportedly also opened a requested Wikipedia article in 2.798 seconds and passed a local hotel search-and-filter task in 1.896 seconds.

Where the speed comes from

Several engineering choices in the README target latency directly:

  • The default loop uses no screenshots. Jev consumes structured state, and screenshots are opt-in for the inspector demo.
  • One browser protocol call per snapshot reads visible controls, their names, values and text atomically, keeping references to live DOM nodes.
  • Selected targets are validated before input: the executor rechecks page freshness and rejects covered controls, and animation alone does not force a new prediction.
  • Waits are bounded. After typing into a combobox, the agent waits for visible suggestions capped at 200 milliseconds; other interactions get at most two animation frames or 50 milliseconds.
  • Focus emulation keeps background tabs rendering without switching Chrome's visible tab, and only visible text is sent to the model context.

Measured results, with caveats

In six alternating runs with identical models and settings, both compared versions of the agent passed three out of three attempts. Median task time dropped from 9.450 seconds to 7.092 seconds — a 25 percent reduction — while median browser protocol calls fell from 1,092 to 101, roughly two orders of magnitude fewer. The README is explicit that this is three repeats of one task on one browser profile, not a general reliability benchmark, and that runs, failures and measurement boundaries are documented in the project's performance notes.

Guardrails and limits

The design keeps model output tightly constrained. Generated output never becomes selectors, coordinates, shell commands or executable JavaScript, and text from the helper must parse as a small JSON object before it is typed. A DONE choice still requires independent outcome verification.

The current MVP has clear boundaries: the DOM reader handles common HTML and ARIA controls but not the full accessible-name specification, and shadow roots, frames, canvas content, file uploads, pop-up tabs, nested scrolling and arbitrary keyboard widgets remain unsupported. Owned tabs share the existing Chrome profile.

Trying it

The repository can be cloned and run with the uv package manager, requiring a TypeSafe API key and a text-model key; the example configuration uses an OpenRouter key running inception/mercury-2.5 with reasoning disabled, with Gemini, GLM and DeepSeek also supported through the OpenAI-compatible helper. A local demo at port 8766 provides an inspector showing numbered elements, operation and target probabilities, and executed actions, and a Python library exposes the agent as a context manager accepting a URL and a goal.

Why it matters

Most browser agents lean on screenshots and vision models or sprawling action descriptions, paying latency and cost at every step. Jev's contribution is architectural: shrink each decision to an operation plus an index against a per-observation element table, and bring in a small model only when text must be written. If the approach generalises beyond the handful of demonstrated tasks, it points toward agents that are faster, cheaper and easier to verify — though the project itself is careful to frame its current evidence as narrow.

  • #browser-agent
  • #llm
  • #automation
  • #open-source
  • #agent-architecture

Related posts