shipwithjev

Catalog / Agents & browsers

0047GitHub

browser-ai

A Jev browser agent in pure Go, attached to a real Chrome.

Ngoc Phan’s agent talks CDP over a pipe or a WebSocket and attaches to a real Chrome, with no Node layer in between. The repository says it was built that way to measure the real speed of the decisions.

phanngoc/browser-aiREADME ↗
# browser-ai

A browser agent in pure Go (stdlib only) driven by **Jev**, TypeSafe's System One model.
Jev does not generate text — it picks one option from a finite, indexed action space, so a
decision is one cheap round-trip. A small OpenAI-compatible LLM writes field values only when
the chosen operation is `TYPE_TEXT`.

Chrome is driven over CDP with a hand-rolled client: **launched over `--remote-debugging-pipe`**
(no TCP, no framing) or **attached to your real running Chrome** over a minimal WebSocket
client. Everything is instrumented so you can see where each step's time goes.

Reference implementation: [browser-use/jev-ultrafast](https://github.com/browser-use/jev-ultrafast)
(Python, MIT). The DOM snapshot script and the policy instructions are ported from it.

## Performance

Real runs, headless Chrome 153, this repo, 2026-09-20. Every pass is verified from the final page,
not from the model saying DONE. Full tables and method in [docs/BENCH.md](docs/BENCH.md).

Three runs per model, same goal text, pass = verified from the final page.

| task | decision maker | pass | median | per decision |
|---|---|---|---|---|
| **Google Flights** ZRH→LON one-way, until results visible (10 steps) | **Jev** | **3/3** | **9.6 s** | **330 ms** |
| | gemini-2.5-flash | 3/3 | 23.0 s | 1.06–1.16 s |
| | gpt-5.4-mini, reasoning low | 2/3 | 29.4 s | 1.3–1.7 s |
| | gpt-5.4-mini, reasoning none | 0/3 — one run had everything set but declared DONE before Search | 22.0 s | 0.85–0.91 s |
| | gemini-2.5-flash-lite | **0/3** — same wrong path every time, then a false DONE | 13.8 s | 0.9–2.3 s |
| | gpt-5.4-nano (none / low) | 0/3 · 0/3 | 16.7 s · 37.4 s | 0.8–1.7 s |
| **Wikipedia** → Gödel's incompleteness theorems (2 steps) | **Jev** | **3/3** | **3.4 s** | **330 ms** |
| | gemini-2.5

Also filed under Agents & browsers

  1. 0226

    Flight search with Browser Use★

    Breaking: Browser Use + Jev = Ultrafast ⚡ Findings flights took 7s and cost only $0.0039 🤯 > new action space every step > DOM state space > small LLM fallback to type (this video is at 1x speed btw) Built a tiny open source browser agent. try it below ↓

    @gregpr07 · Agents & browsers · ~$0.004 · ~7 s

  2. 0619

    jevmem: automatic project memory for Claude Code

    After every Claude Code message, Jev decides in ~0.3 s whether it holds a decision, rule or bug worth keeping, and jevmem saves it as one line in JEVMEM.md.

    @jetwaniavinash · Agents & browsers · ~0.3 s

  3. 0618

    Playwright + Jev: tests in plain language

    Write Playwright steps like "add the most expensive item to the cart". Jev finds the right buttons and fields, fills forms and checks the result.

    Andrey Popov · Agents & browsers

  4. 0617

    toolgate: a tool-call firewall for agents

    A Claude Code and MCP hook where Jev answers seven yes/no risk questions per tool call to allow, ask or deny. Usage and benchmark numbers are in the repo.

    Jaz · Agents & browsers