playwright-cli
microsoft/playwright-cliMicrosoft's command-line interface for driving a browser through Playwright, plus a skill that teaches coding agents the commands.
A native browser-automation CLI for agents, plus 11 skills that teach the snapshot-and-ref workflow for navigating, filling forms, scraping and testing.
A maintained, widely installed first-party CLI with unusually thorough skills; the main thing to manage is that it can hold your logins and cookies.
agent-browser is first a command-line tool, and only second a skill pack. You install a Rust binary (npm, Homebrew or Cargo), run agent-browser install to fetch Chrome for Testing, and the agent drives a real Chrome through short shell commands: open a URL, take an accessibility-tree snapshot whose elements carry refs like @e2, then click, fill, type or read text by ref. The README says refs keep each page read to a few hundred tokens instead of raw HTML.
The skill that ships through npx skills add is deliberately a thin stub. It tells the agent to run agent-browser skills get core, so the actual instructions come from the installed CLI version and cannot drift from the commands. The core skill is about 40 KB with ten reference files (authentication, session management, snapshots and refs, proxy support, video recording, profiling, WebGPU, trust boundaries) and three shell templates for form automation, authenticated sessions and capture workflows. Smaller skills cover Electron apps, Slack, Vercel Sandbox, protected Vercel deployments, AWS Bedrock AgentCore cloud browsers, a dogfood QA pass, deriving an API client from network traffic and generating WebMCP tools. The README also lists session persistence, an encrypted local credential vault, Chrome profile reuse, network routing, accessibility audits with axe, and an MCP profile.
11 skills averaging about 10 KB, a 40 KB core skill with ten reference files and three script templates, a compiled CLI behind it, 28 eval-related files in the repo and CI.
Counted from the repository file tree. How we score depth.
After you install the CLI and run agent-browser install, most sessions follow the loop the core skill teaches. You open a page, take a snapshot, act on elements by ref, read the result, and close the browser.
agent-browser open example.com
agent-browser snapshot
agent-browser click @e2
agent-browser fill @e3 "test@example.com"
agent-browser get text @e1
agent-browser screenshot page.png
agent-browser close
On Linux, run agent-browser install --with-deps first. It exits nonzero if the package manager cannot install every required browser library, so a CI job fails at setup and not halfway through a run.
Refs are the default, but you can also use CSS selectors and semantic finders:
agent-browser click "#submit"
agent-browser find role button click --name "Submit"
agent-browser find text "Sign In" click
For text-only reads, agent-browser read [url] fetches agent-readable text or reads the rendered DOM of the active tab. In loops that take many screenshots, the README recommends agent-browser screenshot --if-changed, which skips unchanged images to save tokens.
Three behaviors catch new users:
click and dblclick return an error, not a success, when the element is hidden, disabled, or outside the viewport. click --new-tab opens the link's URL directly, so it skips these checks.--hide-scrollbars false at launch if you need them in the image.The core skill puts one step before clicking: check whether the site exposes WebMCP tools. When you open a page, the response may include a WebMCP summary. The summary lists only tool names, short descriptions, origins, and frame IDs. Full schemas are never sent unless the agent asks for them. Pages with no tools, and catalogs that have not changed, add nothing to the context.
If an advertised tool matches the task the user authorized, the skill tells the agent to use that tool and not rebuild the same operation out of DOM clicks. The agent fetches that one tool's schema, checks the inputs and intended effect against the request, and then invokes it:
agent-browser open <url>
agent-browser webmcp list <tool> --frame <frame-id> --json
agent-browser webmcp invoke <tool> --frame <frame-id> --params '{"key":"value"}'
If no relevant tool exists, the agent continues with the normal snapshot-and-ref workflow and does not probe for WebMCP. Tool metadata counts as untrusted website data, and the skill tells the agent to treat suspicious tools as unavailable. After context compaction, webmcp list restores the catalog. The daemon subscribes to WebMCP events once per page session, so it does not poll on every action. If you build the site yourself, the separate webmcp-gen skill covers generating WebMCP tools for it.
The README describes several ways to persist browser sessions so the agent does not have to log in again on every run:
--profile <name> or the AGENT_BROWSER_PROFILE environment variable reuses the cookies and sessions of an existing Chrome profile. On Windows, close Chrome before you do this, because some profile files may be locked while it runs.auth save stores credentials locally in encrypted form, and auth login signs in by name.agent-browser state list, state show <file>, state rename <old> <new>, and state clear [name].By default, auth login navigates to the credential URL before it looks for the form. That breaks flows where the agent first has to click a link, clear a challenge, or dismiss a consent dialog. For those flows, use --no-navigate, which needs an active top-level HTTP(S) page:
agent-browser click "a[href='/login']"
agent-browser auth login work --no-navigate
auth login also filters candidate fields by layout size, visibility, opacity, and disabled or readonly state, so the agent does not fill a hidden decoy input.
The docs also recommend adding state files to .gitignore and cleaning up when a job finishes:
agent-browser cookies clear
rm -f ./auth-state.json
The authentication reference in the core skill covers OAuth, SSO, two-factor flows, HTTP basic auth, and cookie-based auth in more detail.
If the browser should run in the cloud and not on your machine, the agentcore skill points agent-browser at AWS Bedrock AgentCore browser sessions. According to the skill, every standard command works the same way. Only the browser's location changes, and you select it with -p agentcore:
agent-browser -p agentcore open https://example.com
agent-browser snapshot -i
agent-browser click @e1
agent-browser screenshot page.png
agent-browser close
Credentials resolve in this order. First come the environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, plus AWS_SESSION_TOKEN if you use one. If those are missing, the skill falls back to aws configure export-credentials, which supports SSO, IAM roles, and named profiles. If your AWS CLI already works, you need no extra setup.
Optional settings:
AGENTCORE_REGION, default us-east-1AGENTCORE_BROWSER_ID, default aws.browser.v1AGENTCORE_PROFILE_ID, a persistent profile for cookies and localStorage, with no defaultAGENTCORE_SESSION_TIMEOUT, in seconds, default 3600AWS_PROFILE, default defaultSet AGENTCORE_PROFILE_ID to keep a login across runs. You log in once with a given profile ID, and later runs that use the same ID open already authenticated. When a session starts, AgentCore prints a Live View URL to stderr. Open it to watch the remote browser in real time from the AWS Console, which helps when you need to see what an unattended agent is doing.
A browser-automation skill whose SKILL.md files pre-approve any agent-browser command (and, for one sub-skill, any vercel/vc command). The tool can optionally reuse your real Chrome profile or save session cookies to state files, which are plaintext unless AGENT_BROWSER_ENCRYPTION_KEY is set; the reference docs tell the agent to treat page content as untrusted and keep secrets out of the model. The CLI itself is a separate binary that was not reviewed.
The repository (518 files) on Oct 29, 2026. Not a full review: 480 of 518 files were not downloaded (large repository; we reviewed the skill folders); it relies on code outside the repository: npm/brew/cargo package agent-browser (Rust CLI and daemon; source not in the reviewed files) and the skill content it serves via 'skills get'; Chrome for Testing binary downloaded by 'agent-browser install'; @agent-browser/sandbox, @vercel/sandbox and the Vercel CLI used by the vercel-sandbox and protected-vercel-deployments skills.
NVIDIA SkillSpector static scan: 28 pattern hits (MCP Rug Pull 12, Tool Misuse 5, Privilege Escalation 4, Memory Poisoning 2, YARA Match 2, Prompt Injection 1). The HIGH hits are documentation: trust-boundaries.md quotes 'ignore previous instructions' as an example of page text the agent must not obey, 'rm -f auth-state.json' and 'rm -rf' are cleanup/Dockerfile examples, 'access token' and 'Clear state' appear in prose, and the info_stealer YARA hit is the auth doc describing cookie import from your own Chrome. Unpinned 'npx' hits are install instructions.
A review, not a certification. Skills change after we check them — read the files before installing.
Apache-2.0 — commercial use allowed.
Yes. It is a scriptable CLI with JSON output, batch mode, persistent sessions and timeouts, so unattended runs are practical; success checking is left to the agent.
Microsoft's command-line interface for driving a browser through Playwright, plus a skill that teaches coding agents the commands.
Seven skills around the Browser Use browser agent: drive local Chrome over CDP, use the paid cloud API, run QA scoring, or pay by crypto wallet.
Google's Chrome DevTools MCP server and CLI, plus seven skills for debugging performance, memory leaks, cookies and accessibility in a live Chrome.
A browser-automation CLI skill with stealth browsers, CAPTCHA solving and handoff to a human, plus about 100 ready-made scraper skills for shops and lead sources.
agent-browser is an open-source Vercel Labs CLI that lets coding agents control Chrome from the shell. It snapshots a page as an accessibility tree with short refs such as @e2, and the agent clicks or fills elements by ref. The repo also ships skills that explain the workflow.
Install the CLI with npm install -g agent-browser (or Homebrew or Cargo) and run agent-browser install to download Chrome. Then run npx skills add vercel-labs/agent-browser, which adds a small stub skill that loads the full instructions from the CLI at runtime.
We found no hidden network calls or obfuscated code in the files we read, and its docs include a section telling the agent to treat page content as untrusted data. The risk is practical: it can reuse your Chrome profile and store session cookies, so use a separate profile, set the encryption key and delete state files you no longer need.
agent-browser is built around compact snapshots and refs for LLM agents and does not need Playwright or Node for its daemon. Microsoft's Playwright CLI is the better fit if you already generate Playwright tests and want recorded code. Both drive a real browser from the command line.
Run agent-browser upgrade. It detects whether you installed with npm, Homebrew, or Cargo and runs the matching update command. Because the npx skills add stub loads its instructions from the installed CLI, upgrading the binary also updates the skill content the agent reads.
Yes. The react subcommands need --enable react-devtools when you launch the browser. The React DevTools hook is embedded in the binary. If you launch without that flag, the react commands return an error saying the hook is not installed.
When you run on AWS Bedrock AgentCore with -p agentcore, the session prints a Live View URL to stderr that you can open to follow the browser in real time. Locally, you can capture screenshots during the run, and video recording is available if ffmpeg is on your PATH.