vs agent-browser

Different products that look alike. Measured, with respect — and a clear rule for which to pick.

agent-browser is Vercel Labs' browser-automation CLI for agents. It's good — fast, token-efficient, and its snapshot/ref loop set the bar (Chrome Relay's own loop ergonomics owe it a debt, openly). If you're choosing tooling, here's the honest comparison.

The one-line difference

agent-browser gives your agent a browser. Chrome Relay gives your agent yours.

agent-browser downloads its own Chrome for Testing and drives it headless behind a daemon — a fresh, disposable sandbox. Chrome Relay attaches to the Chrome you're already using, with everything that implies: your logins, your extensions, your localhost, and a human sharing the browser.

agent-browser Chrome Relay
Browser its own Chrome for Testing, headless by default the one you have open
Auth state none (profile copy is a read-only snapshot) everything you're signed into
Anti-bot (Cloudflare etc.) fingerprinted as automation, often blocked indistinguishable from you
Parallel isolated sessions yes — its core strength one browser; isolation via workspaces
CI / headless servers yes no — needs a running desktop Chrome
Human + agent simultaneously n/a — the agent owns the browser yes — background tabs, no focus stealing
Attach to a real Chrome via --cdp debug port (requires relaunching Chrome; port exposes everything to localhost) native: extension + native messaging, no relaunch, Chrome-gated

We tested both on the same machine, same minute, same URL: agent-browser's Chrome saw logged-out Hacker News; Chrome Relay saw a logged-in session. Every page behind auth only exists in one of those worlds.

The ergonomics are now comparable

The historical knock on real-browser bridges was clunky loops. Measured today, same page (HN front page):

agent-browser Chrome Relay
Interactive snapshot 13.5 KB 14.3 KB
Act on an element click @e12 click @e12
Click round-trip ~40 ms ~150 ms

The remaining latency gap is Node process startup vs a Rust binary — real, and irrelevant next to LLM turn time. Two places Chrome Relay's loop goes further:

agent-browser counters with breadth Chrome Relay doesn't have: built-in wait primitives, snapshot diffs, batch execution, video, traces, proxies, cloud-provider backends. If you need those today, that's a real reason to pick it.

The rule

They compose, too: plenty of workflows scrape with a sandbox and act with the real browser. Nothing about installing one precludes the other.