mrkeyoor.com_
Tue 10 Nov 00:35 UTC
Automationevaluationupdated 03 Oct 2026

agent-browser review

agent-browser is a command-line browser controller built for coding agents. It turns a live page into short accessibility references, then lets an agent click, fill forms, inspect state, take screenshots, or connect through MCP without writing a browser driver first.

+2,318stars / 7d
Verdict

Our install of commit 39a74c7 took 138 seconds, pulled 1,097 packages, and left 931 MB on disk, while the checkout exposed no build or test target. Use agent-browser when a coding agent needs concise Chrome actions, fresh page references, and a typed MCP path. Keep Playwright for durable test suites, and enable the domain, state, and action controls before giving agent-browser an authenticated production session.

We ran it

Lab card: what happened when we ran agent-browserScreenshot of agent-browser (agent-browser.dev)
Install✓ · 138s1097 packages · 931 MB
Buildn/ano build script
Testsn/ano test script
Repo474 files~127,195 lines of source · 9.3 MB · 2 CI workflows · tests dir

Answers from our run

Does agent-browser build from source?

Dependencies installed in 138 seconds (1097 packages), and the project has no separate build step. We cloned commit 39a74c7 into a clean Debian container with 3 CPUs and no project-specific setup.

Does agent-browser have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use agent-browser?

Firefox test suites: the documented engines are Chrome or Chromium plus Safari on iOS, with no Firefox path.

What are the alternatives to agent-browser?

Playwright, Puppeteer, Browser Use. Our install of commit 39a74c7 took 138 seconds, pulled 1,097 packages, and left 931 MB on disk, while the checkout exposed no build or test target.

Setup3/5138-second source install, then Chrome and Linux libraries
Docs5/5Commands, sessions, MCP profiles, providers, and safety are documented
Community5/543,470 stars, an October 3 push, and active issue traffic
Maturity4/5v0.38.2 is active, though our checkout had no test target

Who it’s for

Coding-agent users who want browser actions expressed as inspectable terminal commands.
Teams giving Claude Code, Codex, Cursor, or another coding assistant a browser skill.
MCP clients that benefit from typed browser tools and selectable tool profiles.
Developers who need the same command shape across local Chrome, remote CDP sessions, and supported cloud browsers.

Who it’s NOT for

Firefox test suites: the documented engines are Chrome or Chromium plus Safari on iOS, with no Firefox path.
Locked-down Linux hosts that cannot download Chrome for Testing or install its system libraries.
Teams that require a standard source checkout to prove itself through declared build and test targets: our measured commit exposed neither target.
High-risk browsing where operators will not configure safeguards: the README says content boundaries, domain allowlists, action policies, and confirmations are opt-in.
Production work that depends on WebMCP stability today: the README labels that page-tool integration experimental.

Setup reality

Our sandbox installed commit 39a74c7 in 138 seconds, pulling 1,097 pnpm packages and using 931 MB. The 9.3 MB checkout held 474 files and about 127,195 source lines. No build script or target was exposed, so build was skipped. No test script or target was exposed, so tests were skipped.

The normal install still needs a browser: agent-browser install downloads Chrome for Testing, while Linux can need install --with-deps. Local Chrome control needs no hosted credential. Browserless, Browserbase, Kernel, Browser Use, AWS AgentCore, AI chat, and some authenticated workflows need provider keys, browser state, or both.

The current source instructions call for Node 24+, pnpm 11+, and Rust. Sessions can retain cookies and local storage, plugins run external executables, and the safety controls are opt-in. Shared runners need explicit domains, disposable profiles, state encryption, action policy, and cleanup settings.

Accessibility refs make browser steps short enough for agents

A snapshot returns an accessibility tree with references such as @e2, which the next command can click or fill. That is the useful idea here. An agent can inspect the current page, choose a visible control, act on it, then take another snapshot after navigation. The transcript stays much smaller than a pasted DOM, and a human can still read what the agent asked the browser to do.

The CLI also accepts CSS selectors and semantic locators, but refs fit the agent loop best. It covers tabs, frames, dialogs, downloads, screenshots, PDFs, network inspection, traces, and page diffs. JSON output makes the same commands usable from a program. The Rust daemon keeps the browser alive between calls and exits an idle headless session after 1 hour by default, which avoids paying browser startup on every action.

Contributing from source brought 1,097 packages

Our measured checkout was only 9.3 MB, yet pnpm installed 1,097 packages and occupied 931 MB. That is the contributor workspace, not the footprint of the packaged Rust binary, but it still matters for a team cloning the repository in CI. The current README asks source builders for Node 24 or newer, pnpm 11 or newer, and Rust. Normal users can install through npm, Homebrew, or Cargo.

Every route has a second setup step. agent-browser install downloads Chrome for Testing, and Linux may need agent-browser install --with-deps for browser libraries. Existing Chrome, Brave, Playwright, or Puppeteer installations may be detected. Local use does not need a service account. Remote modes for Browserbase, Browserless, Kernel, Browser Use, or AWS AgentCore add their own credentials and retention rules.

What happened when we ran it

Our sandbox installed commit 39a74c7 in 138 seconds on 3 CPUs with 8 GB of RAM. The unprivileged Node 22 container had no secrets. Installation succeeded, leaving 931 MB on disk. The repository contained 474 files, about 127,195 source lines, 2 CI workflow files, monorepo workspaces, and a tests directory. No Dockerfile was present.

The harness found no build script or target, so it skipped build. It found no test script or target, so it skipped tests. We therefore did not prove that the native CLI compiled, that the tests passed, or that Chrome launched at this commit. Those are missing checks, not failed checks. The measured result supports one narrow claim: the pnpm dependency installation completed successfully in 138 seconds.

Every safety control is opt-in

The README explicitly says its agent safety features are opt-in. Those controls include content boundary markers, a domain allowlist, action policies, confirmation for selected action classes, and output length limits. The allowlist can also block subresources and disable WebRTC in supported Chromium sessions. That is useful containment, provided the operator turns it on and includes every domain the application genuinely needs.

Authenticated browsing raises the stakes. Saved state can contain session tokens, the auth vault can fill credentials, and the full command surface includes uploads plus JavaScript evaluation. AES-256-GCM encryption is available for saved session data, while vault credentials are kept out of ordinary output. On a shared runner, use a fresh profile, a short domain list, encrypted state, and disposable credentials with the least authority required.

MCP and Claude Code are first-class entry points

agent-browser mcp starts a stdio server with a smaller core profile by default. Optional profiles expose network, stored state, debugging, tabs, React inspection, and mobile controls. Typed fields for URLs, selectors, text, sessions, and allowed domains give an MCP client more context for approval than a raw shell string. The repository also supplies a Claude Code skill through npx skills add vercel-labs/agent-browser.

WebMCP is a different layer and remains experimental. It discovers tools supplied by the page itself, limits automatic summaries to 16 tools and 4 KiB, and labels page metadata as untrusted. The README is blunt that those labels do not stop prompt injection. A host still has to reject website text that asks for secrets, shell commands, or broader authority. Discovery is convenient; permission remains the caller's job.

v0.38.2 is active, while the command surface still moves

GitHub showed 43,470 stars, 824 open issues and pull requests combined, and a last push on October 3, 2026. Release v0.38.2 arrived on October 1 with fixes for auth-vault form selection, Chrome stderr handling, small shared-memory mounts, and several cloud-browser integrations. Those dates show active maintenance. The combined open count is not a bug count, but it is a large queue to search before adopting a less common path.

One open October 1 report says a lost daemon response can cause a mutating command such as click or fill to be sent again. The report includes a proposed patch, but the issue remained open when checked. Treat consequential browser actions as operations whose outcome may be uncertain after a transport error. Pin the version, exercise the exact login and submission flow, and make payment or publishing steps idempotent outside the browser.

Alternatives

ProjectWhat it isPick it when
Playwright gh↗A browser automation and test framework with fixtures, assertions, tracing, and several browser engines.pick this instead when you are maintaining a test suite with code-level assertions and repeatable fixtures.
Puppeteer gh↗A JavaScript library for controlling Chrome and Firefox from a Node.js program.pick this instead when browser control belongs inside application code and a direct JavaScript API is preferable.
Browser Use gh↗A Python framework that combines model-driven decisions with browser actions and managed sessions.pick this instead when you want the agent loop included rather than supplying your own agent around a browser CLI.
Stagehand gh↗A TypeScript browser framework that mixes natural-language actions with deterministic automation.pick this instead when AI-assisted browser steps need to live inside a TypeScript application.

What people are saying

  1. [github-trending] vercel-labs/agent-browser

Sources

  1. agent-browser README
  2. agent-browser v0.38.2 release
  3. agent-browser command retry issue 2032
  4. agent-browser security documentation

More automation reviews

hummingbot · spotify-downloader · bbot · switch · Horizon · ai-goofish-monitor · the whole board →