agent-browser
App Featured
Browser automation CLI for AI agents
- Downloads
- 9,253
- Dependents
- Not applicable
- Stars
- 47,653
- Forks
- 3,259
- Contributors
- 118
- Commits
- 818
- Latest release
- 0.19.0 ·
About
Browser automation for AI agents: open pages, read them as an accessibility tree, and act on elements from the shell.
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, thenagent-browser install. - Linux:
agent-browser install --with-depsalso 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]
Read the full README
- 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, flow, 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
- agent-browser.dev: introduction, guides, and reference
- Commands and Configuration
- Security: the auth vault, domain allowlists, action policies, and content boundaries
- Next.js and Vercel and eve: running agent-browser in Vercel Sandbox and eve agents
- Changelog
License
Apache-2.0
Compatibility
- Runs on
- GPU support unknown
What shows it
- no dependency or feature matches a backend row
- Native code
- None found
- No native code found
- Python bindings
- No Python binding crate found
- License
- Apache-2.0
Compare with similar projects
Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.
| Project | Downloads | Dependents | Stars | Latest release | Runs on (GPU) | Native code | License |
|---|---|---|---|---|---|---|---|
|
Browser automation CLI for AI agents |
9,253 binary downloads per release | Not applicable | 47,653 | 0.19.0 | GPU support unknown | No native code found | Apache-2.0 |
|
baml Featured
The programming language for agents |
2,113 downloads over 30 days | 7 | 9,494 | 0.226.3 | GPU support unknown | Binds native code: baml-sys, baml_cffi | Apache-2.0 |
|
autoagents Listed
Agent Framework for Building Autonomous Agents |
8,627 downloads over 30 days | 4 | 779 | 0.4.0 | CUDA, WebGPU, Metal, ROCm, Vulkan | Binds native code: llama-cpp-sys-2, ort-sys, alsa-sys (feature audio-capture), intel-mkl-src (feature full), rquickjs-sys (feature codeact) | Apache-2.0 OR MIT |
|
adk-rust Listed
Rust Agent Development Kit - Build AI agents in Rust with modular components for models, tools, memory, and more. |
5,419 downloads over 30 days | 25 | 743 | 2.3.0 | CUDA, Metal | Binds native code: alsa-sys (feature desktop-audio), audiopus_sys (feature openai-webrtc), cxx (feature livekit), espeak-rs-sys (feature kokoro), libsqlite3-sys (feature sqlite) and 4 more | Apache-2.0 |
|
mofa Listed
MoFA - Modular Framework for Agents. Modular, Compositional and Programmable. |
613 downloads over 30 days | 0 | 296 | 0.1.1 | GPU support unknown | Binds native code: ort-sys (feature kokoro), pnet_sys (feature dora) | Apache-2.0 |
|
cortex-mem Listed
🧠 The production-ready cognitive foundation for autonomous systems such as Embodied-AI and OpenClaw. For memory management, from extraction and search to automated optimization, with SKILL, CLI, API, MCP, and insights dashboard out-of-the-box. |
126 downloads over 30 days | 6 | 318 | 2.7.0 | GPU support unknown | No native code found | MIT |
|
An open protocol that gives AI agents a secure, sandboxed place to run code and use tools — with lean context usage. AXP works alongside MCP |
Not measured | Not applicable | 3 | Not measured | Not measured | Not measured | Apache-2.0 |
Why FeaturedIt passes every Featured gate.
What it meets
- Its use signals read: binary downloads 27761, Homebrew 46375, Repology families 4, Docker growth unknown. Featured needs 2 of these to reach their limits.
- It also passes the repository route, which counts as one use signal: 47,653 stars, 3,259 forks and 118 contributors. It needs 4,539 stars, 434 forks and 79 contributors together.
- The last activity is on 8 Nov 2026, 1 day ago. The rules expect an update within 365 days. Dormancy rule
Exact rules: Featured app. The check on applied thresholds version 9.
Every rule outcome, as the check records it
expected-interval: app: E = 365 daysdormancy: last activity 2026-11-08, 1 days ago, E = 365: activefeatured: featured: binary downloads 27761, Homebrew 46375, Repology families 4, Docker growth unknown, repository route stars 47653 (needs 4539), forks 3259 (needs 434), contributors 118 (needs 79)
Measurements and sources
Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.
Sources8 sources
- Description: the GitHub repository description
- crates.io database dump, fetched
- GitHub releases, fetched
- GitHub repository, fetched
- crates.io package, fetched
- Homebrew formula, fetched
- Repology project, fetched
- GitHub contributors, fetched
Adoption9,253 binary downloads per release4 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Active dependents | Not measured | Yes | ||
| New dependents (365 days) | Not measured | Yes | ||
| Peak active dependents | Not measured | Yes | ||
| Active dependents as a share of the peak | Not measured | Yes | ||
| Binary downloads per release | 9253 | GitHub releases | Yes |
MaintenanceLatest human commit: 1 day ago4 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Latest human commit | 2026-11-08 | GitHub repository | Yes | |
| Latest release | 2026-11-03 | GitHub releases | Yes | |
| First release | 2026-03-14 | crates.io database dump | Yes | |
| Latest version | 0.19.0 | crates.io database dump | No | |
| Days the oldest outside issue waits for a reply | 21 | GitHub repository | Yes | |
| Maintainer replies over 365 days | 3 | GitHub repository | Yes | |
| Repository archived | false | GitHub repository | Yes | |
| Repository gone | false | GitHub repository | Yes | |
| Release commit or manifest in the repo | true | crates.io package | No | |
| Published docs | Not measured | Yes | ||
| Latest release fails cargo check | Not measured | Yes | ||
| Build check date | Not measured | Yes | ||
| Build check toolchain | Not measured | Yes |
SecurityNot measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Unpatched vulnerabilities past the grace window | Not measured | Yes | ||
| RustSec unmaintained advisory | Not measured | Yes | ||
| Deprecation notice | Not measured | Yes | ||
| Deprecated requirement | Not measured | Yes |
Distribution1 releases, 1,643 downloads over 30 days4 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Releases | 1 | crates.io database dump | No | |
| Downloads over 30 days | 1643 | crates.io database dump | No | |
| Binary downloads over the last 3 releases | 27761 | GitHub releases | Yes | |
| Homebrew installs on request over 365 days | 46375 | Homebrew formula | Yes | |
| Repology repository families | 4 | Repology project | Yes | |
| Docker pull growth over 90 days | Not measured | Yes | ||
| Docker pulls at the growth baseline | Not measured | Yes | ||
| Every version a prerelease | false | crates.io database dump | Yes | |
| Every version 0.0.x | false | crates.io database dump | Yes | |
| Every version yanked | Not measured | Yes | ||
| Crate deleted from crates.io | Not measured | Yes |
Repository47,653 stars, 3,259 forks, 118 contributors, 818 commits. Stars alone never qualify a project.
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| GitHub stars | 47653 | GitHub repository | Yes — one part of the repository route | |
| GitHub forks | 3259 | GitHub repository | Yes — one part of the repository route | |
| Contributors with a GitHub account | 118 | GitHub contributors | Yes — one part of the repository route | |
| Commits on the default branch | 818 | GitHub repository | No | |
| Repository's main crate left out of the entry | none | crates.io database dump | Yes |
Facts that never count
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| License | Apache-2.0 | crates.io database dump | No | |
| Runs on, from listed crates and their direct dependencies | GPU support unknown | crates.io database dump | No | |
| What shows each backend | no dependency or feature matches a backend row | crates.io database dump | No | |
| Native code, from listed crates and their dependencies | No native code found | crates.io database dump | No | |
| Python bindings, from direct dependencies of listed crates | No Python binding crate found | crates.io database dump | No | |
| Crates that depend on a listed crate directly | Not measured | No |
Corrections and review history
No correction applies to this entry.
Judgments
A judgment enters only through an approved issue and a merged pull request.
No judgment applies to this entry.