Skip to content
Back to skills

Agent Browser

ASecurity

Use when you need to screenshot or drive a dev server and the shared Chrome is unavailable or contended — e.g. parallel Conductor workspaces: headless per-workspace browser via npx agent-browser.

  • 5 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added September 2, 2026
toolsrustgobashnodetestingdebugging

Works with

  • cli

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 2, 2026

npx -y skills add itsvedantkumar/vstack --skill agent-browser --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agent Browser?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Agent Browser
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/itsvedantkumar-agent-browser/badge)](https://www.skillsdirectory.com/skills/itsvedantkumar-agent-browser)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: agent-browser
description: "Use when you need to screenshot or drive a dev server and the shared Chrome is unavailable or contended — e.g. parallel Conductor workspaces: headless per-workspace browser via npx agent-browser."
---

# agent-browser — headless per-workspace browser

Browser automation CLI from Vercel Labs. Native Rust binary driving Chrome/Chromium over
CDP — no Playwright, no shared Chrome window. Each `--session` gets its own browser
instance, cookies, and history, so parallel Conductor workspaces never fight over tabs.

Needs node/npx. Run every command through `npx agent-browser ...` (or `agent-browser` if
installed globally with `npm i -g agent-browser`). First use on a machine may need
`npx agent-browser install` to download Chrome for Testing; existing Chrome, Brave,
Playwright, and Puppeteer installs are detected automatically.

## Isolate the workspace first

```bash
SESSION="$(npx agent-browser session id --scope worktree --prefix dev-loop)"
# Then pass --session "$SESSION" on every call, or export AGENT_BROWSER_SESSION="$SESSION"
```

The browser persists via a background daemon, so chaining commands with `&&` is safe.

## The ui-iterate loop

Screenshot the affected route at all three widths, then critique the images:

```bash
URL="http://localhost:${CONDUCTOR_PORT:-3000}/route-you-changed"

npx agent-browser --session "$SESSION" open "$URL"
npx agent-browser --session "$SESSION" wait --load networkidle

npx agent-browser --session "$SESSION" set viewport 375 812   # phone
npx agent-browser --session "$SESSION" screenshot /tmp/ui-375.png

npx agent-browser --session "$SESSION" set viewport 768 1024  # tablet
npx agent-browser --session "$SESSION" screenshot /tmp/ui-768.png

npx agent-browser --session "$SESSION" set viewport 1440 900  # desktop
npx agent-browser --session "$SESSION" screenshot /tmp/ui-1440.png
```

Read each PNG with the Read tool and critique it (hierarchy, spacing, states) per the
ui-iterate skill. Add `--full` to `screenshot` for the full page instead of the viewport.

## Interact via accessibility-tree refs

`snapshot` prints the accessibility tree with stable `@eN` element refs — more reliable
than CSS selectors for driving state (hover, open menus, filled forms) before a shot:

```bash
npx agent-browser --session "$SESSION" snapshot -i        # interactive elements only, with refs
npx agent-browser --session "$SESSION" click @e2          # click by ref
npx agent-browser --session "$SESSION" fill @e3 "test@example.com"  # clear + fill by ref
npx agent-browser --session "$SESSION" snapshot -i        # re-snapshot after the page changes
```

Refs go stale on navigation or DOM changes — always re-run `snapshot` before reusing them.
If a click fails because another element covers the target (consent banner, modal), dismiss
the reported covering element and take a fresh snapshot before retrying.

## Done? Close it

```bash
npx agent-browser --session "$SESSION" close
```

More commands (`wait --text`, `hover`, `press`, `scroll`, `diff screenshot`, auth/state):
`npx agent-browser --help`, or `npx agent-browser skills get core` for the full workflow
guide served by the installed CLI. `skills get dogfood` is an adversarial exploratory-QA pass,
which complements a design review of a surface you already know about.

## Which browser tool, and when

Two browser lanes exist here and they must not fight over the same Chrome.

**claude-in-chrome** drives your real, logged-in browser. Use it when the session needs your
cookies, an authenticated app, or you want to watch what happens.

**agent-browser** runs its own headless Chrome. Use it whenever the shared browser would be
contended or is unavailable: parallel Conductor workspaces, background runs, anything
unattended. Always pass `--session <workspace>` and `--pin-tab`, which is what keeps two
workspaces from adopting each other's tabs.

Requires Node 24 or newer. On an older Node the CLI still runs but npm prints an engine
warning; if a command behaves strangely, check the Node version before debugging further.

## Accessibility, without hand-rolling it

```bash
npx agent-browser --session "$SESSION" a11y --tags wcag2a,wcag2aa
```

Runs axe-core in-page, offline and CSP-safe, scoped by selector and aware of iframes. Prefer it
to writing WCAG checks by hand in a review.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.