Skip to content
Projects

vercel-labs/agent-browser has 46,102 GitHub stars and 3,155 forks. GitHot measured +518 stars in 24 hours. Last checked 2026-11-06 07:23 UTC. Last push 2026-11-02.

How these counts are measured

Browser automation CLI for AI agents

Measured star growth

in 24h
+518
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

agent-browser

Browser automation for AI agents: open pages, read them as an accessibility tree, and act on elements from the shell.

Vercel Labs Product npm version: agent-browser License: Apache-2.0 npm downloads per month: agent-browser skills.sh

agent-browser is a native Rust CLI that gives an AI agent a browser it can drive one command at a time. snapshot returns the page as compact text with a ref such as @e1 for each element. The agent acts on a ref, reads the page again to check the result, and repeats. The browser stays open between commands, so each step is one short shell call.

Install

npm install -g agent-browser
agent-browser install           # download Chrome for Testing (first time only)
  • Homebrew: brew install agent-browser, then agent-browser install.
  • Linux: agent-browser install --with-deps also installs the browser's system libraries.
  • No install: npx agent-browser open example.com.

Project installs, building from source, upgrade, and doctor are covered in Installation.

Quick start

agent-browser open example.com
agent-browser snapshot -i       # interactive elements, each with a ref
agent-browser click @e1         # act on a ref from that snapshot
agent-browser get url           # check the result
agent-browser close

The snapshot for example.com:

- link "Learn more" [ref=e1]
  • Refs describe the page at the time of the snapshot. After navigation or a DOM change, take a new snapshot before using refs again.
  • CSS selectors, text, XPath, and semantic locators also work, for example agent-browser find role button click --name "Submit". See Selectors.
  • A click fails, instead of reporting success, when the target is hidden, disabled, outside the viewport, or covered by another element such as a consent banner. Dismiss the covering element, take a new snapshot, and retry.

The full walkthrough is in the quick start.

How it works

The CLI sends each command to a background daemon that starts on the first command and controls the browser over the Chrome DevTools Protocol. Each --session gets its own daemon and browser. By default, the daemon closes a headless browser and exits after one hour without commands, saving state first when session persistence is configured.

Chrome for Testing is the default browser. You can also attach to a running Chrome with --cdp or --auto-connect (CDP mode), select the Lightpanda or Obscura engine with --engine, drive Mobile Safari in the iOS Simulator, or use a cloud browser provider such as Browserbase, Browserless, Browser Use, Kernel, or AgentCore.

For AI agents

The CLI ships skills that match its version:

agent-browser skills get core          # the core loop, refs, waiting, and common workflows
agent-browser skills get core --full   # adds the full command reference and templates
agent-browser skills list              # specialized skills: electron, slack, dogfood, and more

Install the discovery skill into an agent harness from skills.sh:

npx skills add vercel-labs/agent-browser

The installed skill is a thin stub that tells the agent to load agent-browser skills get core, so its instructions always match the installed CLI. Or add this to your AGENTS.md:

Use `agent-browser` for browser automation. Before the first use, run
`agent-browser skills get core` and follow it.

For MCP clients, agent-browser mcp starts an MCP server over stdio. See MCP server.

Commands

Run agent-browser --help for the full list, or agent-browser <command> --help for one command.

Group Commands Docs
Navigate and read open, back, forward, reload, read, snapshot, get, is Core, Snapshots
Interact click, dblclick, fill, type, press, keyboard, hover, focus, select, check, uncheck, scroll, drag, upload, mouse, find Core, Find elements
Wait wait Wait
Capture screenshot, pdf, record, download, diff Recording, Diffing, Files
Page and network state cookies, storage, network, set, clipboard, eval, pushstate Network, Settings
Tabs, frames, and dialogs tab, frame, dialog Tabs and frames
Debug and performance console, errors, highlight, inspect, trace, profiler, vitals, react, a11y Debugging, Profiler, React
Sessions and auth session, state, auth, profiles, confirm, deny Sessions, Security
Agents and integrations skills, mcp, webmcp, chat, batch, plugin Skills, WebMCP, Plugins
Observe stream, dashboard Streaming, Dashboard
Setup install, upgrade, doctor, connect, close Installation

Flags, environment variables, and agent-browser.json are documented in Configuration.

Platforms

Native binaries ship for macOS (ARM64, x64), Linux (ARM64, x64, glibc and musl), and Windows (x64). The npm package picks the right binary for the host.

Development

Building from source requires Node.js 24 or later, pnpm 11 or later, and Rust:

pnpm install
pnpm build:source               # builds the dashboard and the native CLI
pnpm link --global
agent-browser install

Run the Rust checks from cli/:

cargo fmt -- --check
cargo clippy
cargo test
cargo test e2e -- --ignored --test-threads=1   # launches real headless Chrome

AGENTS.md lists the files to update with each change, the docs checks, and the release process.

Documentation

License

Apache-2.0

Explore related projects