Skip to content

About

Browser automation CLI for AI agents

Resources

Stars

45.4k stars

Watchers

101 watching

Forks

Latest commit

 

History

787 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 --ref commands  # one reference, such as the full command list
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

About

Browser automation CLI for AI agents

Resources

Stars

45.4k stars

Watchers

101 watching

Forks

Releases

Packages

Used by

Contributors

Languages