---
schema_version: 1
route: /t/agent-browser.md
tool: "agent-browser"
---

# sincecutoff.com /t/agent-browser — Agent Browser

- name: Agent Browser
- kind: cli
- children: none
- homepage: <https://github.com/vercel-labs/agent-browser>

Changes to the tools coding agents drive, since a model's training cutoff, each linked to its first-party source. Check installed versions and limitations before acting; a cutoff date does not establish what a model knows.
Original editorial content: [Apache 2.0](https://sincecutoff.com/v1/data-license.txt), by [0xPatrick](https://0xpatrick.dev). Preserve applicable license and [NOTICE](https://sincecutoff.com/notice.txt) attribution when redistributing. Third-party source text and examples retain their own rights. [License scope and attribution](https://sincecutoff.com/v1/license.json).
To stay current, read the changes feed: [`/v1/changes.md?tool=agent-browser`](https://sincecutoff.com/v1/changes.md?tool=agent-browser) (or `.json`), adding `since=YYYY-MM-DD` for your training cutoff. Entries for registered children are included; the registry itself is `/v1/tools.json`. How to page and save your place: [llms.txt](https://sincecutoff.com/llms.txt).

### agent-browser responses announce WebMCP catalog updates (2026-09-16)
- slug: agent-browser-responses-announce-webmcp-catalog-updates-faf6e866fdfc
- score: 0.95

How to use it:

When agent-browser responses announce WebMCP tools on first discovery or a catalog change, select a relevant tool and fetch its schema before invoking it. After compaction or joining an existing session, list tools to recover context.

Examples:

```
agent-browser webmcp list <tool> --frame <frame-id> --json
```

```
agent-browser webmcp list --json
```

```
agent-browser webmcp list
```

- why_it_matters: When inspecting a page that exposes WebMCP tools, select a relevant tool from the response summary and retrieve its full schema before invoking it.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.38.0>, <https://github.com/vercel-labs/agent-browser/pull/1842>, <https://github.com/vercel-labs/agent-browser/blob/v0.38.0/README.md>
- gotchas: "Version: v0.38.0"; "<tool> (required): Tool name selected from the response summary."; "--frame <frame-id>: Select the tool in the specified frame; use when duplicate names require frame-aware selection."; "--json: Request JSON output; with no tool, retrieves the full catalog."; "--no-webmcp: Disable WebMCP launch features and proactive context; enabled by default in agent-browser-managed Chrome."; "Prerequisite: WebMCP is enabled by default in agent-browser-managed Chrome; the README installation instructions require installing Chrome with `agent-browser install` for first use, unless an existing supported browser installation is detected."; "WebMCP is enabled by default in agent-browser-managed Chrome."; "Automatic summaries are limited to 16 tools and 4 KiB of JSON; descriptions are shortened to 160 bytes plus a truncation marker, and oversized records are omitted."; "Summaries contain names, brief descriptions, origins, and frame IDs; schemas and annotations are not included proactively."; "Unchanged catalogs and pages without tools add no context."; "After conversation compaction or joining an existing browser session, use `webmcp list` to recover context."; "A catalog update can be triggered by full-record changes even when the brief description stays the same; refresh previously fetched schemas after an update."; "The daemon subscribes to CDP WebMCP events once per page session; late events appear on the next ordinary action."

### agent-browser screenshot --if-changed skips unchanged captures (2026-09-16)
- slug: agent-browser-screenshot-if-changed-skips-unchanged-captures-1eb41d6909a9
- score: 0.96

How to use it:

When checking whether a page changed between captures, run `agent-browser screenshot --if-changed`; add `--threshold <0-1>` to treat small pixel changes as unchanged.

Examples:

```
agent-browser screenshot --if-changed
```

```
agent-browser screenshot --threshold <0-1>
```

- why_it_matters: When checking whether a page changed between captures, take a conditional screenshot and tolerate small pixel differences if needed.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.38.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.38.0/skill-data/core/references/commands.md>
- gotchas: "Version: v0.38.0"; "--if-changed: Skip unchanged captures. Conditional history is isolated by tab and capture scope."; "--threshold <0-1>: Maximum changed-pixel ratio treated as unchanged; implies `--if-changed`."; "Screenshot history is scoped to each tab and capture mode."; "Unchanged captures omit the image path."

### agent-browser snapshot --delta returns structural changes (2026-09-16)
- slug: agent-browser-snapshot-delta-returns-structural-changes-da9c071b3e02
- score: 0.98

How to use it:

When inspecting a page across browser interactions, run `agent-browser snapshot --delta` for an initial full snapshot and subsequent unchanged revisions or structural changes. Reuse refs for surviving DOM elements across same-document updates; run `agent-browser snapshot --delta --full` to refresh the baseline and take a fresh snapshot after navigation or to observe page changes.

Examples:

```
agent-browser snapshot --delta
```

```
agent-browser snapshot --delta --full
```

- why_it_matters: When inspecting a page across browser interactions, retrieve compact snapshot changes while retaining usable references to surviving elements.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.38.0>, <https://github.com/vercel-labs/agent-browser/pull/1812>, <https://github.com/vercel-labs/agent-browser/blob/main/README.md>
- gotchas: "Version: v0.38.0"; "--delta: Return full state once, then unchanged or structural deltas; history is per tab and option set."; "--full: Force full state and update the delta baseline; documented with `--delta`."; "Virtual accessibility nodes have snapshot-local refs."

### agent-browser adds experimental WebMCP support (2026-09-01)
- slug: agent-browser-adds-experimental-webmcp-support-644a0cc149df
- score: 0.96

How to use it:

When browsing with locally managed Chrome, discover current-page WebMCP tools with `agent-browser webmcp list` and invoke a selected tool with its parameters. To expose WebMCP through the MCP server, start it with `agent-browser mcp --tools webmcp`; disable WebMCP with `--no-webmcp` or `AGENT_BROWSER_NO_WEBMCP` when needed.

Examples:

```
agent-browser open <url>
agent-browser webmcp list
agent-browser webmcp invoke <tool> --params '{"key":"value"}'
```

```
agent-browser webmcp invoke <tool> --params @input.json --detach
agent-browser webmcp result <invocation-id>
agent-browser webmcp cancel <invocation-id>
```

```
agent-browser mcp --tools webmcp
```

- why_it_matters: Discover and invoke tools provided by the current page while browsing with locally managed Chrome.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.36.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.36.0/skill-data/core/references/commands.md>, <https://github.com/vercel-labs/agent-browser/blob/v0.36.0/cli/src/mcp.rs>
- gotchas: "Version: v0.36.0"; "Availability: Experimental; WebMCP is enabled by default for locally managed Chrome."; "<url>: Page URL to open; `open` without a URL launches about:blank."; "<tool> (required): Page-provided WebMCP tool name to invoke."; "--params <JSON|@file>: Tool input object as JSON or from a file; no default parameters are documented."; "--detach: Run invocation detached so its result can be retrieved later."; "--tools <profile>: Select MCP server tool profiles; `webmcp` enables page-tool discovery, invocation, detached results, and cancellation. Profiles can be combined; `all` enables every tool."; "--no-webmcp: Disable experimental WebMCP Chrome features; `AGENT_BROWSER_NO_WEBMCP` is the environment-variable alternative."; "Prerequisite: WebMCP is enabled by default for locally managed Chrome."; "Prerequisite: MCP server startup defaults to the `core` tools profile; select `webmcp` explicitly to expose its tools."; "WebMCP applies to locally managed Chrome by default."; "WebMCP can be disabled with `--no-webmcp` or `AGENT_BROWSER_NO_WEBMCP`."; "The MCP tool profile is opt-in."; "Support includes frame-aware tool selection, detached results, cancellation, and bounded metadata and output handling."

### agent-browser persists named CDP session-to-tab bindings (2026-08-11)
- slug: agent-browser-persists-named-cdp-session-to-tab-bindings-332de9d8de1c
- score: 0.93

How to use it:

For named sessions sharing Chrome through `--cdp` or `--auto-connect`, start with `--pin-tab` to persist the session’s CDP target binding and fail with `tab_gone` if that tab closes. Use the target ID as a tab reference; recover with `tab new <url>` or select a tab from `tab list`.

Examples:

```
agent-browser --session <name> --cdp <port|url> --pin-tab open <url>
```

```
agent-browser --session <name> --json tab list
```

```
agent-browser --session <name> tab new <url>
```

- why_it_matters: When using a named session connected through `--cdp` or `--auto-connect`, keep commands and daemon restarts bound to the same Chrome tab, and detect when that tab is closed externally.
- before: Without `--pin-tab`, `open` preserves legacy behavior and can navigate the shared active tab.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.34.0>, <https://github.com/vercel-labs/agent-browser/blob/main/docs/src/app/sessions/page.mdx>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/session-management.md>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/commands.md>, <https://github.com/vercel-labs/agent-browser/blob/main/CHANGELOG.md>, <https://github.com/vercel-labs/agent-browser>
- gotchas: "Version: v0.34.0"; "--session <name> (required): Names the session whose tab binding is persisted."; "--cdp <port|url> (required): Connects to Chrome through CDP."; "--auto-connect: Alternative connection mode named in the v0.34.0 release note; its exact CLI syntax is not documented in the pages found."; "--pin-tab (required): Enables strict binding: commands fail with `tab_gone` if the bound tab closes. The flag is sticky per session."; "--json: Enables JSON output; `tab_gone` output includes `data.targetId` and optional sanitized `data.lastUrl`."; "tab <targetId>: Uses a CDP target ID directly as a tab reference; target IDs remain stable across daemon restarts."; "batch recovery `result`: Batch JSON places the same recovery object under `result` instead of `data`."; "Prerequisite: Connect the named session to a shared Chrome instance using `--cdp` or `--auto-connect`; use `--pin-tab` for strict binding."; "The persistent binding applies to named sessions connected through `--cdp` or `--auto-connect`."; "Strict binding requires starting the session with `--pin-tab`."; "`data.lastUrl` is optional and sanitized."

### agent-browser stream encoding accepts quality and dimension settings (2026-08-02)
- slug: agent-browser-stream-encoding-accepts-quality-and-dimension-settings-c9c53deb4763
- score: 0.96

How to use it:

When streaming frames and bandwidth is constrained, set the daemon’s JPEG quality and, if downscaling is needed, both maximum frame dimensions. These settings are read once at daemon startup; the dimensions cap encoded frames without resizing the page.

Examples:

```
AGENT_BROWSER_STREAM_QUALITY=20 AGENT_BROWSER_STREAM_MAX_WIDTH=640 AGENT_BROWSER_STREAM_MAX_HEIGHT=360 agent-browser stream enable
```

- why_it_matters: Reduce bandwidth while streaming browser frames without lowering the frame rate.
- before: Frames used hardcoded JPEG quality 80 at the session viewport; frame rate was the only bandwidth lever.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.33.2>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/streaming.md>, <https://github.com/vercel-labs/agent-browser/blob/main/CHANGELOG.md>
- gotchas: "Version: v0.33.2"; "AGENT_BROWSER_STREAM_QUALITY: JPEG quality from 0 to 100; default 80. Lower values reduce bandwidth."; "AGENT_BROWSER_STREAM_MAX_WIDTH: Maximum encoded frame width in pixels; defaults to the viewport and does not resize the page."; "AGENT_BROWSER_STREAM_MAX_HEIGHT: Maximum encoded frame height in pixels; defaults to the viewport. Set both width and height to downscale a larger viewport."; "Prerequisite: Set encoding environment variables before daemon startup; encoding settings are daemon-wide and read once at startup."; "Prerequisite: Streaming is available through the agent-browser stream commands; the official guide documents `agent-browser stream enable`."; "Settings are read once per daemon."; "Width and height default to the session viewport; a larger viewport is not downscaled unless both are set."

### agent-browser adds axe-core accessibility audits (2026-07-23)
- slug: agent-browser-adds-axe-core-accessibility-audits-bdef7e42b331
- score: 0.99

How to use it:

When auditing a page, run the `a11y` command with its URL, optionally filtering axe tags, scoping to a selector, or requesting JSON output. The audit uses an embedded axe-core engine and requires a CDP browser.

Examples:

```
agent-browser a11y <url>
```

```
agent-browser a11y <url> --tags wcag2a,wcag2aa --selector "#main" --json
```

- why_it_matters: Audit a web page's accessibility while developing or reviewing its code.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.33.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.33.0/skill-data/core/references/commands.md>
- gotchas: "Version: v0.33.0"; "<url>: URL to navigate to before auditing; omit it to audit the current page."; "--tags <tags>: Limit rules by comma-separated axe tags, such as `wcag2a,wcag2aa`."; "--selector <selector>: Scope the audit to a subtree selected by CSS."; "--json: Return structured results, including counts, violations, and incomplete checks."; "Prerequisite: Requires a CDP browser; unavailable with Safari or iOS WebDriver sessions."

### agent-browser derive-client skill generates API clients from HAR traffic (2026-07-19)
- slug: agent-browser-derive-client-skill-generates-api-clients-from-har-traffic-977ec7481b59
- score: 0.93

How to use it:

When reverse-engineering a site’s internal API, load the derive-client skill and record the browser flows you need in a HAR. Use the HAR to identify endpoints, derive a standalone client or CLI, and verify its calls against the live API.

Examples:

```
agent-browser skills get derive-client
```

```
agent-browser network har start --content text
# Exercise the site flows to capture
agent-browser network har stop /tmp/site.har
```

```
agent-browser network har start --content all
```

- why_it_matters: Generate a reusable API client while reverse-engineering a site's internal API.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.32.3>, <https://github.com/vercel-labs/agent-browser/pull/1578>, <https://github.com/vercel-labs/agent-browser/blob/v0.32.3/docs/src/app/skills/page.mdx>, <https://github.com/vercel-labs/agent-browser/blob/v0.32.3/skill-data/derive-client/SKILL.md>
- gotchas: "Version: v0.32.3"; "derive-client (required): Skill name for the workflow that derives an internal API client from recorded browser traffic."; "--content text: Default mode; embeds text-like response bodies, up to 2 MB per body."; "--content all: Embeds all response bodies; binary bodies are base64-encoded. Mutually exclusive with other --content modes."; "--content none: Disables response-body embedding. Mutually exclusive with other --content modes."; "<output.har>: Path where `network har stop` saves the HAR."; "Prerequisite: Install agent-browser and a discovery skill with `npx skills add vercel-labs/agent-browser`; the agent-browser CLI serves the version-matched skill content."; "Prerequisite: If the site requires login, log in before starting the HAR; the skill says session cookies are exported separately."; "Prerequisite: Exercise each client flow at least twice with different inputs; verify every generated function against the live API."

### agent-browser network har start captures response bodies (2026-07-19)
- slug: agent-browser-network-har-start-captures-response-bodies-80e28b394522
- score: 0.98

How to use it:

When recording a site's API traffic, start HAR capture; text-like response bodies are embedded by default. Choose `--content all` for all bodies or `--content none` for metadata only, then stop capture to save the HAR.

Examples:

```
agent-browser network har start
agent-browser open <url>
agent-browser network har stop <output.har>
```

```
agent-browser network har start --content all
```

```
agent-browser network har start --content none
```

- why_it_matters: Record a site's API traffic in a HAR so you can inspect request and response data while developing an integration.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.32.3>, <https://github.com/vercel-labs/agent-browser/pull/1578>, <https://github.com/vercel-labs/agent-browser/blob/v0.32.3/README.md>, <https://github.com/vercel-labs/agent-browser/blob/v0.32.3/docs/src/app/network/page.mdx>
- gotchas: "Version: v0.32.3"; "--content: Select body capture mode: `text` (default; text-like bodies, up to 2 MB per body), `all` (all bodies; binary as base64), or `none` (sizes and MIME types only). These are alternative values for one option."; "<url> (required): URL to open while recording."; "<output.har>: Path to save the HAR when stopping recording; if omitted, a temporary path is used."; "Text-like response bodies are embedded by default, up to 2 MB per body."; "The `all` mode embeds binary content as base64."; "The `none` mode records sizes and MIME types without bodies."; "HAR files include request headers, response headers, cookies, POST data, and response bodies; treat them as sensitive when pages use cookies, bearer tokens, or API keys."

### agent-browser --webgpu launch preset (2026-07-13)
- slug: agent-browser-webgpu-launch-preset-60ee83f8d133
- score: 0.94

How to use it:

When a browser task needs WebGPU rendering, launch it with `--webgpu` and wait for the app to render before capturing. Run `agent-browser doctor --webgpu` to check rendering and screenshot capture; use `--headed` to probe capture on Windows or Linux.

Examples:

```
agent-browser --webgpu open <https://your-webgpu-app.example.com>
agent-browser screenshot <output.png>
```

```
agent-browser doctor --webgpu
```

```
agent-browser doctor --webgpu --headed
```

- why_it_matters: When launching a browser session that needs WebGPU rendering, configure the session with the WebGPU preset and probe rendering.
- before: Headless Chrome does not expose WebGPU by default; the page can load and screenshots can succeed while the canvas remains black.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.31.2>, <https://github.com/vercel-labs/agent-browser/blob/v0.31.2/skill-data/core/references/webgpu.md>
- gotchas: "Version: v0.31.2"; "--webgpu: Enables the WebGPU launch preset; the CLI equivalent of `AGENT_BROWSER_WEBGPU=1` or `\"webgpu\": true` in agent-browser.json."; "doctor --webgpu (required): Runs render and screenshot checks in a scratch session; screenshot capture is expected to fail headless on Windows and Linux."; "--headed: Shows the browser window; add it to the doctor command to validate capture. On displayless Linux, automatic Xvfb requires Xvfb to be installed and no `DISPLAY` set."; "AGENT_BROWSER_WEBGPU=1: Environment variable to enable the WebGPU launch preset."; "webgpu: Boolean config key in agent-browser.json; `true` enables the WebGPU launch preset. No mutually exclusive config sub-keys are documented."; "Prerequisite: Linux software Vulkan path requires the system Vulkan loader and Mesa ICD: `apt-get install -y libvulkan1 mesa-vulkan-drivers`."; "Prerequisite: Displayless headed Linux screenshot probing requires Xvfb installed; Windows screenshot probing requires a logged-in desktop session."; "Prerequisite: The target page must use a secure context (`https://`, `http://localhost`, or `file://`) for `navigator.gpu`."; "Hardware backends are supported on macOS and Windows; Linux uses software Vulkan."; "Automatic Xvfb applies to displayless headed sessions."

### agent-browser restores validated browser state by stable session (2026-06-25)
- slug: agent-browser-restores-validated-browser-state-by-stable-session-f9ff9e1bdb47
- score: 0.97

How to use it:

For workflows that reuse an authenticated browser session across restarts, generate a stable worktree-scoped session ID and run commands with `--session <id> --restore`. Add a restore check to validate state before saving; `auto` skips autosave after failed restore or validation.

Examples:

```
SESSION="$(agent-browser session id --scope worktree --prefix <prefix>)"
agent-browser --session "$SESSION" --restore --restore-check-text <text> open <url>
```

- why_it_matters: When maintaining a repository workflow that reuses an authenticated browser session across restarts, persist and validate that session's state.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.31.0>, <https://github.com/vercel-labs/agent-browser/pull/1486>, <https://github.com/vercel-labs/agent-browser/blob/v0.31.0/README.md>
- gotchas: "Version: v0.31.0"; "--scope <scope> (required): For session ID generation, use `worktree` to scope to the Git worktree root when available, then Git root, then canonical current directory."; "--prefix <prefix> (required): Prefix for the generated stable session ID."; "--session <id> (required): Selects the session; with bare `--restore`, this is the persistence key."; "--restore (required): Automatically loads and saves session state; bare option uses the current session as the persistence key."; "--restore-check-text <text>: Validate that restored page text contains the specified text."; "--restore-check-url <glob>: Validate restored state against a URL pattern."; "--restore-check-fn <js>: Validate restored state against a truthy JavaScript expression."; "--restore-save <policy>: Autosave policy: `auto` (default; skips autosave after failed restore or validation), `always`, or `never`."; "--namespace <namespace>: Namespace for daemon sockets and restore-state directories."; "agent-browser session info --json: Displays daemon, launch, and restore status."; "Prerequisite: Install `agent-browser` and run `agent-browser install` to download Chrome, unless a supported existing Chrome, Brave, Playwright, or Puppeteer installation is detected."; "Restore validation can check a URL pattern, page text, or a truthy JavaScript expression."; "`--restore-save` policies are `auto`, `always`, or `never`."; "Auto-save avoids overwriting good state after failed restore or failed validation."

### agent-browser read extracts agent-readable text (2026-06-24)
- slug: agent-browser-read-extracts-agent-readable-text-aa5e5a847b4c
- score: 0.97

How to use it:

When extracting documentation or rendered-page text, run `agent-browser read <url>`; use `--llms index` or `--filter <text>` to narrow documentation results, or omit the URL to read the active tab’s rendered DOM.

Examples:

```
agent-browser read <url>
```

```
agent-browser read <url> --llms index --filter <text>
```

```
agent-browser read
```

- why_it_matters: Extract documentation or rendered-page text while inspecting a repository or its development documentation.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.30.0>, <https://github.com/vercel-labs/agent-browser/blob/main/README.md>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/commands.md>
- gotchas: "Version: v0.30.0"; "<url>: Page URL to fetch; omitting it reads the active tab’s rendered DOM."; "--llms index | full: Read the nearest-ancestor `llms.txt` link list (`index`) or `llms-full.txt` (`full`). These values select distinct modes."; "--filter <text>: Narrow page sections, `llms.txt` links or sections, or outline headings by text."; "--outline: Print a compact heading outline for one page."; "--raw: Print the response body without HTML extraction."; "--json: Return the command output as JSON."; "--require-md: Fail unless the server returns `Content-Type: text/markdown`."; "--headers <json>: Send HTTP headers scoped to the URL’s origin."; "--allowed-domains: Restrict allowed domains for read fetches."; "--max-output: Set the output limit; applies to read output."; "Prerequisite: Install the CLI (`npm install -g agent-browser`); the README’s installation section also says to run `agent-browser install` to download Chrome for first-time use."

### agent-browser adds an MCP server (2026-06-16)
- slug: agent-browser-adds-an-mcp-server-a1d5da57ef5e
- score: 0.99

How to use it:

When exposing agent-browser automation to an MCP client, start the stdio server with `agent-browser mcp`; use the default `core` profile or select `all` or comma-separated profiles with `--tools`.

Examples:

```
agent-browser mcp
```

```
agent-browser mcp --tools all
```

```
agent-browser mcp --tools core,network,react
```

- why_it_matters: Expose browser automation tools to an MCP client.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.28.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.28.0/skill-data/core/references/commands.md>
- gotchas: "Version: v0.28.0"; "--tools: Select MCP tool profiles; defaults to `core`. `all` selects every MCP tool; comma-separated profile names compose profiles. The docs do not state that profiles are mutually exclusive."; "core: Default profile: navigation, snapshots, interaction, waits, reads, screenshots, JavaScript eval, close, tab basics, and profile discovery."; "network: Profile for network routes, request inspection, HAR, headers, credentials, and offline controls."; "state: Profile for cookies, storage, auth, saved state, sessions, profiles, and skills."; "debug: Profile for console/errors, tracing, profiling, recording, clipboard, plugins, doctor, dashboard, install, upgrade, chat, diff, batch, and confirm/deny."; "tabs: Profile for back/forward/reload, tabs, windows, frames, and dialogs."; "react: Profile for React tree/inspect/renders/suspense, vitals, and pushstate."; "mobile: Profile for viewport/device/geolocation/media, touch, swipe, mouse, and keyboard."; "all: Every MCP tool, including the full typed CLI parity surface."; "Prerequisite: Configure the MCP client to launch command `agent-browser` with args `[\"mcp\"]`; the server communicates over stdio."; "The server uses stdio."; "The default `core` profile keeps context small."

### agent-browser `cookies set` imports cookies from files (2026-05-07)
- slug: agent-browser-cookies-set-imports-cookies-from-files-1b105985adb9
- score: 0.95

How to use it:

When importing cookies from a file to set up an authenticated browser session, run `agent-browser cookies set --curl <file>`. It auto-detects JSON, cURL, and bare Cookie-header formats.

Examples:

```
agent-browser cookies set --curl <file>
```

```
agent-browser cookies set --curl <file> --domain <domain>
```

- why_it_matters: Import cookies from a file to set up a browser session for testing an authenticated web application.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.27.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.27.0/skill-data/core/references/commands.md>
- gotchas: "Version: v0.27.0"; "--curl <file> (required): Read the cookie import file. Accepted formats: JSON array of `{name, value}`, a cURL dump, or a bare Cookie header; format is auto-detected."; "--domain <domain>: Scope imported cookies to the specified domain."; "The import auto-detects JSON, cURL, and Cookie-header formats."

### agent-browser `network route` filters by resource type (2026-05-07)
- slug: agent-browser-network-route-filters-by-resource-type-5cc715fa90f9
- score: 0.95

How to use it:

When debugging a web application, intercept requests for selected CDP resource types with `agent-browser network route <url> --resource-type <csv>`.

Examples:

```
agent-browser network route '*' --abort --resource-type script
```

```
agent-browser network route '*' --resource-type image,font --body ''
```

- why_it_matters: Intercept selected network requests while debugging a web application.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.27.0>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/commands.md>
- gotchas: "Version: v0.27.0"; "<url> (required): URL pattern for requests to intercept; `*` matches all requests."; "--resource-type <csv>: Filter intercepted requests by comma-separated CDP resource types, such as `script` or `image,font`."; "--abort: Block matching requests."; "--body <json>: Set a mocked response body."; "The filter uses CDP resource types."; "The resource types are supplied as CSV."

### agent-browser `pushstate` performs SPA navigation (2026-05-07)
- slug: agent-browser-pushstate-performs-spa-navigation-bbc377e30184
- score: 0.96

How to use it:

When an agent needs to navigate to another route in an SPA, run `agent-browser pushstate <url>` for client-side navigation without a full page load.

Examples:

```
agent-browser pushstate <url>
```

- why_it_matters: Navigate a browser session to another route in a single-page application without reloading the page.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.27.0>, <https://github.com/vercel-labs/agent-browser/blob/main/docs/src/app/react/page.mdx>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/commands.md>
- gotchas: "Version: v0.27.0"; "<url> (required): Target URL or path for the SPA navigation."; "Navigation is client-side and does not perform a full page load."

### agent-browser React introspection commands and init scripts (2026-05-07)
- slug: agent-browser-react-introspection-commands-and-init-scripts-2801dd64650c
- score: 0.98

How to use it:

For a React app, install the React DevTools hook at launch before inspecting it. Run `react tree`, `react inspect <fiberId>`, `react renders start` then `react renders stop`, or `react suspense` to inspect the tree, a fiber, renders, or Suspense boundaries.

Examples:

```
agent-browser open --enable react-devtools <url>
```

```
agent-browser react tree
agent-browser react inspect <fiberId>
agent-browser react renders start
agent-browser react renders stop
agent-browser react suspense
```

```
agent-browser open --init-script <path> <url>
```

- why_it_matters: Inspect a React application in a browser session by examining its component state, render behavior, and Suspense boundaries.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.27.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.27.0/skill-data/core/references/commands.md>, <https://github.com/vercel-labs/agent-browser/blob/v0.27.0/skill-data/core/SKILL.md>
- gotchas: "Version: v0.27.0"; "<url> (required): URL to open; React commands require the hook enabled at launch."; "--enable <feature>: Enables a built-in init-script feature; `react-devtools` is the feature documented for React inspection. Repeatable."; "AGENT_BROWSER_ENABLE: Comma-separated built-in init-script features, such as `react-devtools`."; "<fiberId> (required): Fiber identifier to inspect; command reports props, hooks, state, and source."; "--init-script <path>: Registers a page init script before first navigation; repeatable."; "AGENT_BROWSER_INIT_SCRIPTS: Comma-separated init-script paths."; "Prerequisite: The React DevTools hook must be installed at launch with `--enable react-devtools`; without it, `react` commands error."; "Init scripts are registered before first navigation."; "The `--init-script` and `--enable` flags are repeatable."; "The React DevTools hook is vendored and embedded in the binary with zero runtime dependencies."

### agent-browser doctor diagnoses and repairs installs (2026-04-16)
- slug: agent-browser-doctor-diagnoses-and-repairs-installs-c745f7fc8c26
- score: 0.95

How to use it:

When you need to diagnose an agent-browser installation, run `agent-browser doctor` to check the environment, Chrome, daemons, config, security, providers, connectivity, and perform a live headless launch test. Add `--offline`, `--quick`, `--fix`, or `--json` to adjust those checks, opt into repairs, or request structured output.

Examples:

```
agent-browser doctor
```

```
agent-browser doctor --offline --quick
```

```
agent-browser doctor --fix --json
```

- why_it_matters: Diagnose an agent-browser installation that may have environment, Chrome, daemon, configuration, security, provider, or connectivity issues.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.26.0>
- gotchas: "Version: v0.26.0"; "--offline: Skip network probes."; "--quick: Skip the live headless launch test."; "--fix: Opt in to repairs: install missing Chrome, close version-mismatched daemons, and prune expired state files."; "--json: Return structured output."; "`--offline` skips network probes."; "`--quick` skips the launch test."; "`--fix` is opt-in and can install missing Chrome, close version-mismatched daemons, and prune expired state files."

### agent-browser tab refs support stable ids and labels (2026-04-16)
- slug: agent-browser-tab-refs-support-stable-ids-and-labels-4ac238716a88
- score: 0.98

How to use it:

When creating or addressing browser tabs without relying on changing positions, create a tab with a label and switch or close it by its label or stable `t<N>` id. Bare-integer tab refs are rejected.

Examples:

```
agent-browser tab new --label <name> [<url>]
```

```
agent-browser tab <t<N>|label>
```

```
agent-browser tab close <t<N>|label>
```

- why_it_matters: Create and switch between browser tabs without relying on their changing positions.
- before: Use positional tab references; bare-integer input is rejected with a teaching error.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.26.0>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/commands.md>
- gotchas: "Version: v0.26.0"; "--label <name> (required): Assigns a user-chosen tab label; labels must be unique within a session and are interchangeable with stable tab ids."; "[<url>]: Optional URL to open in the new tab."; "<t<N>|label> (required): Tab reference accepted for switching or closing; bare positional integers are not accepted."; "Bare-integer input is rejected."; "Stable string ids do not shift when other tabs close or popups appear."

### agent-browser adds skills discovery, installation, and evaluation (2026-04-12)
- slug: agent-browser-adds-skills-discovery-installation-and-evaluation-a686fe908ad0
- score: 0.97

How to use it:

For skill discovery and installation, run `agent-browser skills list` and load selected guidance with `agent-browser skills get <name>`; install the discovery skill with `npx skills add vercel-labs/agent-browser`. The v0.25.4 evaluation docs cover CLI skill-loading/selection evals, but do not document evaluation against live browser sessions.

Examples:

```
agent-browser skills list
```

```
agent-browser skills get <name>
```

```
npx skills add vercel-labs/agent-browser
```

- why_it_matters: Discover or install agent skills, or evaluate a skill against a live browser session.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.25.4>, <https://github.com/vercel-labs/agent-browser/blob/v0.25.4/docs/src/app/skills/page.mdx>
- gotchas: "Version: v0.25.4"; "<name> (required): Skill name to retrieve; the command outputs that skill's full content."

### agent-browser batch accepts inline command arguments (2026-04-06)
- slug: agent-browser-batch-accepts-inline-command-arguments-68a817cd442a
- score: 0.94

How to use it:

When running multiple browser commands in one invocation, pass each command as a quoted argument to `agent-browser batch`. Add `--bail` to stop on the first error; stdin JSON is also supported.

Examples:

```
agent-browser batch "open https://example.com" "snapshot -i" "screenshot"
```

```
agent-browser batch --bail "open https://example.com" "click @e1" "screenshot"
```

```
echo '[ ["open", "https://example.com"], ["snapshot", "-i"], ["click", "@e1"], ["screenshot", "result.png"] ]' | agent-browser batch --json
```

- why_it_matters: When running several browser commands as one invocation in a repository workflow, pass each command as a quoted argument to `batch`.
- before: Before inline argument mode, batch read a JSON array of command arrays from stdin; use `--json` for structured output.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.25.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.25.0/README.md>
- gotchas: "Version: v0.25.0"; "batch commands (required): Quoted arguments; each is a full command. Alternatively, pipe JSON via stdin."; "--bail: Stop on the first error; default is to continue all commands."; "--json: For stdin JSON mode, request results as a JSON array."; "Prerequisite: Install agent-browser and run `agent-browser install` to download Chrome from Chrome for Testing (first time only)."; "The command supports quoted arguments or JSON via stdin."; "`--bail` stops on the first error."

### agent-browser chat command adds AI browser control (2026-04-06)
- slug: agent-browser-chat-command-adds-ai-browser-control-7ee4e5b379b3
- score: 0.97

How to use it:

When using AI Gateway for natural-language browser control, set `AI_GATEWAY_API_KEY` and run `agent-browser chat "open google.com"` for a single instruction or `agent-browser chat` for the interactive REPL. Add `--model <name>` or set `AI_GATEWAY_MODEL` to choose a model; add `--json` for structured output.

Examples:

```
agent-browser chat "open google.com"
```

```
agent-browser chat
```

```
agent-browser --json --model <model-name> chat "open google.com"
```

- why_it_matters: When using AI Gateway for natural-language control while inspecting or testing a browser session, run a chat instruction through agent-browser.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.25.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.25.0/README.md>, <https://github.com/vercel-labs/agent-browser/blob/v0.25.0/docs/src/app/configuration/page.mdx>
- gotchas: "Version: v0.25.0"; "AI_GATEWAY_API_KEY (required): Vercel AI Gateway API key; required to enable AI chat."; "<instruction>: Natural-language browser instruction; include it for single-shot mode, or omit it to start the interactive REPL."; "--model <name>: Select the AI model for the chat command; CLI flags take precedence over environment variables."; "AI_GATEWAY_MODEL: Select the default AI model for chat; the README example gives `anthropic/claude-sonnet-4.6` as the default."; "--json: Request structured output suitable for agent consumption."; "Prerequisite: Set `AI_GATEWAY_API_KEY` to enable AI chat."; "Requires `AI_GATEWAY_API_KEY`."; "In interactive mode, type `quit` to exit."

### agent-browser snapshot adds --urls (2026-04-06)
- slug: agent-browser-snapshot-adds-urls-fbad25b468bb
- score: 0.97

How to use it:

When inspecting a page’s accessibility tree for link destinations, run `agent-browser snapshot -i --urls` to include href URLs for link elements in the output.

Examples:

```
agent-browser snapshot -i --urls
```

- why_it_matters: When inspecting a page's accessibility tree for link destinations, include the link URLs in the snapshot output.
- before: Inspect link destinations through additional queries.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.25.0>, <https://github.com/vercel-labs/agent-browser/blob/main/docs/src/app/snapshots/page.mdx>
- gotchas: "Version: v0.25.0"; "-i, --interactive: Show only interactive elements, including buttons, links, and inputs."; "-u, --urls: Include href URLs for link elements."

### agent-browser --profile reuses Chrome profile login state (2026-04-04)
- slug: agent-browser-profile-reuses-chrome-profile-login-state-2a0c4a9aefd9
- score: 0.98

How to use it:

When browser automation needs an existing Chrome profile’s login state, cookies, or extensions, list profiles with `agent-browser profiles` and launch with `agent-browser --profile <name> open <url>`. The profile is copied to a temporary directory, leaving the original unchanged.

Examples:

```
agent-browser profiles
```

```
agent-browser --profile <name> open <url>
```

```
agent-browser profiles --json
```

- why_it_matters: Run browser automation that needs an existing Chrome profile's login state, cookies, or extensions.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.24.1>, <https://github.com/vercel-labs/agent-browser/blob/v0.24.1/README.md>
- gotchas: "Version: v0.24.1"; "--profile <name>: Selects a Chrome profile by name; the profile is copied to a temporary directory for reuse."; "open <url> (required): Navigates to the target URL."; "--json: Enables JSON output for `profiles`. The release note does not document any other behavior for this flag."; "Prerequisite: Use agent-browser v0.24.1 or later for Chrome profile name reuse and the `profiles` command."; "Prerequisite: Install agent-browser and download Chrome with `agent-browser install`."; "Prerequisite: The profile name must identify an available Chrome profile."; "The profile name must identify an available Chrome profile."

### agent-browser automatically accepts alert and beforeunload dialogs (2026-03-30)
- slug: agent-browser-automatically-accepts-alert-and-beforeunload-dialogs-36223f180310
- score: 0.93

How to use it:

When testing a page that may show JavaScript dialogs, run the browser with agent-browser v0.23.1; `alert` and `beforeunload` dialogs are accepted automatically by default. Disable that behavior with `--no-auto-dialog` or `AGENT_BROWSER_NO_AUTO_DIALOG=1`; `confirm` and `prompt` still need explicit handling.

Examples:

```
agent-browser open <url>
```

```
agent-browser --no-auto-dialog open <url>
```

```
AGENT_BROWSER_NO_AUTO_DIALOG=1 agent-browser open <url>
```

- why_it_matters: Test a web page that may show JavaScript alert or beforeunload dialogs during browser automation.
- before: The v0.23.1 changelog says agent-browser previously hung when native browser dialogs appeared, waiting for manual intervention.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.23.1>, <https://github.com/vercel-labs/agent-browser/pull/1075>, <https://github.com/vercel-labs/agent-browser/blob/v0.23.1/README.md>, <https://github.com/vercel-labs/agent-browser/blob/v0.23.1/CHANGELOG.md>
- gotchas: "Version: v0.23.1"; "--no-auto-dialog: Boolean flag that disables automatic dismissal of `alert` and `beforeunload` dialogs."; "AGENT_BROWSER_NO_AUTO_DIALOG: Environment variable that disables automatic dismissal of `alert` and `beforeunload` dialogs; the documented disabling example sets it to `1`."; "Prerequisite: Install agent-browser. The README recommends `npm install -g agent-browser` and `agent-browser install` to download Chrome the first time."; "`confirm` and `prompt` dialogs still require explicit handling."

### agent-browser adds an observability dashboard (2026-03-27)
- slug: agent-browser-adds-an-observability-dashboard-8508fef808ce
- score: 0.97

How to use it:

When you need to inspect agent-browser sessions while developing or debugging, install the dashboard once, then start it; sessions stream to it automatically. Use `--port <n>` to choose the dashboard port, and stop it with `agent-browser dashboard stop`.

Examples:

```
agent-browser dashboard install
agent-browser dashboard start
agent-browser open <url>
agent-browser dashboard stop
```

```
agent-browser dashboard start --port 8080
```

```
AGENT_BROWSER_STREAM_PORT=9223 agent-browser open <url>
```

- why_it_matters: Inspect live browser sessions and command activity while developing or debugging with agent-browser.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.23.0>, <https://github.com/vercel-labs/agent-browser/pull/1034>, <https://github.com/vercel-labs/agent-browser/blob/v0.23.0/README.md>, <https://github.com/vercel-labs/agent-browser/blob/v0.23.0/docs/src/app/streaming/page.mdx>, <https://github.com/vercel-labs/agent-browser/blob/v0.23.0/docs/src/app/commands/page.mdx>
- gotchas: "Version: v0.23.0"; "Requires agent-browser dashboard install"; "--port <n> (dashboard start): Dashboard listening port; default is 4848."; "--port <port> (stream enable): Pins the session WebSocket streaming server to a specified port."; "AGENT_BROWSER_STREAM_PORT: Sets the WebSocket streaming port; otherwise the session uses an OS-assigned port."; "Dashboard runs as a standalone background process on port 4848 and remains available even when no sessions are running."; "Every session automatically starts a WebSocket stream server on an OS-assigned port."; "The dashboard's live viewport uses real-time JPEG frames."; "The WebSocket server streams the browser viewport and accepts input events."; "Dashboard port can be set with `--port`; stream port can be set with `AGENT_BROWSER_STREAM_PORT`."; "Runtime streaming can be managed with `stream enable`, `stream disable`, and `stream status`."

### agent-browser close --all closes every active session (2026-03-27)
- slug: agent-browser-close-all-closes-every-active-session-dd76242e1456
- score: 0.95

How to use it:

After a repository automation or debugging run, run `agent-browser close --all` to close every active browser session at once.

Examples:

```
agent-browser close --all
```

- why_it_matters: Close all browser sessions after a repository automation or debugging run.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/agent-browser%400.23.0>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/commands.md>
- gotchas: "Version: 0.23.0"; "--all (required): Closes every active browser session at once; the flag is optional for the `close` command generally."

### agent-browser network request detail and filtering (2026-03-23)
- slug: agent-browser-network-request-detail-and-filtering-d83cdc89ed52
- score: 0.97

How to use it:

When debugging browser behavior, inspect tracked traffic with `agent-browser network requests`, using filters to narrow it; then pass a listed request ID to `agent-browser network request <requestId>` for detail.

Examples:

```
agent-browser network requests --type xhr,fetch --method POST --status 400-499
```

```
agent-browser network request <requestId>
```

- why_it_matters: Inspect and filter network traffic while debugging a repository's browser behavior.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.22.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.22.0/README.md>
- gotchas: "Version: v0.22.0"; "<requestId> (required): Request ID to inspect; obtain it from `network requests`."; "--type <csv>: Filter by resource type, e.g. `xhr,fetch`."; "--method <method>: Filter by HTTP method, e.g. `POST`."; "--status <status-or-range>: Filter by status, e.g. `200`, `2xx`, or `400-499`."; "Prerequisite: Install agent-browser and download Chrome with `agent-browser install` before first use."

### agent-browser supports cross-origin iframe snapshots and interactions (2026-03-23)
- slug: agent-browser-supports-cross-origin-iframe-snapshots-and-interactions-e5135718857b
- score: 0.95

How to use it:

When the target content is inside a cross-origin iframe, switch into that frame, then take a snapshot and interact with its elements. In v0.22.0, agent-browser supports this through `Target.setAutoAttach` automatically.

Examples:

```
agent-browser frame <iframe-selector>
agent-browser snapshot
agent-browser click <element-selector-or-ref>
```

- why_it_matters: Inspect or interact with content inside a cross-origin iframe in a browser session.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.22.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.22.0/README.md>
- gotchas: "Version: v0.22.0"; "<iframe-selector> (required): Selector for the iframe to switch into; `main` switches back to the main frame."; "<element-selector-or-ref> (required): Element selector or snapshot ref passed to `click`."; "Target.setAutoAttach: The v0.22.0 release says cross-origin iframe snapshot and interaction support is provided via this mechanism; no user-supplied parameters are documented for the CLI task."; "Prerequisite: Install agent-browser and download Chrome with `agent-browser install` before first use."

### agent-browser batch command executes commands from stdin (2026-03-17)
- slug: agent-browser-batch-command-executes-commands-from-stdin-3d9068e41a8b
- score: 0.98

How to use it:

When running multiple browser commands in one invocation, pass a JSON array of string arrays to `batch`. Add `--bail` to stop at the first error, and `--json` for structured output.

Examples:

```
echo '[ ["open", "https://example.com"], ["snapshot", "-i"] ]' | agent-browser batch --bail
```

```
echo '[ ["open", "https://example.com"], ["snapshot", "-i"] ]' | agent-browser batch --json
```

- why_it_matters: Run a sequence of browser commands in one agent-browser invocation and stop at the first failure when needed.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.21.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.21.0/README.md>, <https://github.com/vercel-labs/agent-browser/blob/v0.21.0/cli/src/main.rs>
- gotchas: "Version: v0.21.0"; "stdin JSON array (required): An array of string arrays; each inner array is a command and its arguments."; "--bail: Stop after the first command error."; "--json: Return results as JSON."; "Prerequisite: Install agent-browser and download Chrome with `agent-browser install` before first use."; "Input is a JSON array of string arrays."; "Results are returned sequentially."

### agent-browser network HAR capture (2026-03-17)
- slug: agent-browser-network-har-capture-1f8f62a78fee
- score: 0.98

How to use it:

When debugging browser behavior, start HAR capture before exercising the page, then stop it and save the capture to a file. HAR output uses version 1.2.

Examples:

```
agent-browser network har start
# ... interact with the page ...
agent-browser network har stop ./trace.har
```

- why_it_matters: Capture network traffic while debugging browser behavior and export it for inspection.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.21.0>, <https://github.com/vercel-labs/agent-browser/blob/main/docs/src/app/changelog/page.mdx>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/commands.md>
- gotchas: "Version: v0.21.0"; "network har start (required): Starts HAR recording."; "network har stop [output.har] (required): Stops recording and saves the HAR; the output path is optional in current command reference."; "output.har: Destination path for the saved HAR file."; "Exports use HAR 1.2 format."

### agent-browser clipboard command reads and writes browser clipboard (2026-03-13)
- slug: agent-browser-clipboard-command-reads-and-writes-browser-clipboard-5292922eb5b3
- score: 0.93

How to use it:

To read or update the browser clipboard, run `agent-browser clipboard` with `read`, `write <text>`, `copy`, or `paste`; `copy` simulates Ctrl+C and `paste` simulates Ctrl+V.

Examples:

```
agent-browser clipboard read
```

```
agent-browser clipboard write "<text>"
```

```
agent-browser clipboard copy
agent-browser clipboard paste
```

- why_it_matters: Read or update clipboard contents while automating browser interactions.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.19.0>, <https://agent-browser.dev/changelog>
- gotchas: "Version: v0.19.0"; "read (required): Reads from the browser clipboard."; "write <text> (required): Writes the supplied text to the browser clipboard."; "copy (required): Simulates Ctrl+C."; "paste (required): Simulates Ctrl+V."

### agent-browser get cdp-url exposes the active page's CDP WebSocket URL (2026-03-12)
- slug: agent-browser-get-cdp-url-exposes-the-active-page-s-cdp-websocket-url-a4fe0a79bdd9
- score: 0.96

How to use it:

When debugging the active page with an external tool, run `agent-browser get cdp-url` to retrieve its Chrome DevTools Protocol WebSocket URL.

Examples:

```
agent-browser get cdp-url
```

- why_it_matters: When debugging the active page with an external tool, retrieve its Chrome DevTools Protocol WebSocket URL.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.18.0>
- gotchas: "Version: v0.18.0"

### agent-browser inspect opens DevTools for the active page (2026-03-12)
- slug: agent-browser-inspect-opens-devtools-for-the-active-page-b68c02e96182
- score: 0.98

How to use it:

When debugging the active Chrome page, run `agent-browser inspect` to open DevTools; browser commands continue to work while DevTools is open.

Examples:

```
agent-browser inspect
```

- why_it_matters: When debugging the active page in Chrome, open DevTools while continuing to run browser commands.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.18.0>
- gotchas: "Version: v0.18.0"; "Implemented in both Node.js and native paths."

### agent-browser adds Lightpanda engine selection (2026-03-08)
- slug: agent-browser-adds-lightpanda-engine-selection-3a9befce6ec8
- score: 0.96

How to use it:

When automating a browser task with Lightpanda, run `agent-browser --engine lightpanda open <url>`; this selects Lightpanda and implies native mode. Alternatively, set `AGENT_BROWSER_ENGINE=lightpanda` for the CLI invocation.

Examples:

```
agent-browser --engine lightpanda open <url>
```

```
AGENT_BROWSER_ENGINE=lightpanda agent-browser open <url>
```

- why_it_matters: When running browser automation with Lightpanda, select that browser engine for the task.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.17.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.17.0/README.md>
- gotchas: "Version: v0.17.0"; "--engine <name>: Select browser engine; documented values are `chrome` (default) and `lightpanda`. Selecting an engine implies `--native`."; "AGENT_BROWSER_ENGINE: Environment variable for selecting the browser engine; documented values are `chrome` (default) and `lightpanda`."; "<url> (required): URL passed to the `open` command."; "Prerequisite: Install `agent-browser` before running the command; the README documents global, project, and `npx` installation options."

### agent-browser adds download path and scroll selector options (2026-02-25)
- slug: agent-browser-adds-download-path-and-scroll-selector-options-a0b59e405970
- score: 0.95

How to use it:

When setting a default download directory, use `--download-path`, `AGENT_BROWSER_DOWNLOAD_PATH`, or the `downloadPath` config key. To scroll within a container, pass `--selector <selector>` to `scroll`.

Examples:

```
agent-browser --download-path <directory> open <url>
```

```
AGENT_BROWSER_DOWNLOAD_PATH=<directory> agent-browser open <url>
```

```
agent-browser scroll <up|down|left|right> [px] --selector <selector>
```

- why_it_matters: Set a default download directory or scroll within a specific container while automating a repository workflow.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.15.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.15.0/README.md>
- gotchas: "Version: v0.15.0"; "--download-path <path>: Default download directory. Environment equivalent: `AGENT_BROWSER_DOWNLOAD_PATH`."; "downloadPath: Config key for the default download directory; set it to a path string."; "scroll <dir> (required): Scroll direction: `up`, `down`, `left`, or `right`."; "[px]: Optional scroll distance in pixels."; "--selector <sel>: Selects the container to scroll within."

### agent-browser adds keyboard input, color scheme preference, and runtime fixes (2026-02-23)
- slug: agent-browser-adds-keyboard-input-color-scheme-preference-and-runtime-fixes-dba40fc952f6
- score: 0.95

How to use it:

When an element is already focused, use `keyboard` to type, insert text, or press keys without a selector; set a persistent color scheme with `--color-scheme` or `AGENT_BROWSER_COLOR_SCHEME`. For the listed IPC, CDP, state-load, and annotation-warning fixes, use v0.14.0; its default timeout is 25 seconds and can be set with `AGENT_BROWSER_DEFAULT_TIMEOUT`.

Examples:

```
agent-browser keyboard type "Hello world"
```

```
agent-browser keyboard inserttext "pasted text"
```

```
agent-browser --color-scheme dark open https://example.com
```

- why_it_matters: When automating a page where an element is already focused, send keystrokes or choose a persistent browser color scheme, or diagnose IPC, CDP reconnection, state-load, timeout, or annotation-warning behavior.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.14.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.14.0/docs/src/app/changelog/page.mdx>
- gotchas: "Version: v0.14.0"; "keyboard type <text> (required): Types the provided text with real keystrokes at the currently focused element; no selector is needed."; "keyboard inserttext <text> (required): Inserts the provided text at the currently focused element; no selector is needed."; "keyboard press <key>: Release note says keyboard can press shortcuts, but the v0.14.0 docs found do not specify the syntax or key argument."; "--color-scheme <value>: Sets a persistent browser color-scheme preference. The release note describes dark/light; docs found do not enumerate allowed flag values."; "AGENT_BROWSER_COLOR_SCHEME: Environment variable for persistent dark/light color-scheme preference; exact allowed values not documented in v0.14.0 docs found."; "AGENT_BROWSER_DEFAULT_TIMEOUT: Configures the default Playwright timeout; v0.14.0 release note sets the default to 25 seconds but does not document the variable's unit or accepted syntax."; "Prerequisite: Use agent-browser v0.14.0 or later to get the changes described in the release note."; "The `keyboard` command acts at the currently focused element and does not need a selector."; "The color scheme preference is persistent across browser sessions."; "The default Playwright timeout is 25s and is configurable via `AGENT_BROWSER_DEFAULT_TIMEOUT`."

### agent-browser adds page-state diff commands (2026-02-20)
- slug: agent-browser-adds-page-state-diff-commands-a4da64654ed1
- score: 0.95

How to use it:

When reviewing web UI changes, compare page states with `agent-browser diff snapshot`, `diff screenshot --baseline <file>`, or `diff url <url1> <url2>`. Add selectors and depth for scoped accessibility diffs, or `--screenshot` to include visual comparison for two URLs.

Examples:

```
agent-browser diff snapshot --selector "<css-selector>" --depth <n>
```

```
agent-browser diff screenshot --baseline <baseline-image> --selector "<css-selector>"
```

```
agent-browser diff url <url1> <url2> --screenshot --wait-until <load|domcontentloaded|networkidle>
```

- why_it_matters: Compare two page states while reviewing a repository's web UI changes.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.13.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.13.0/docs/src/app/diffing/page.mdx>, <https://github.com/vercel-labs/agent-browser/blob/v0.13.0/README.md>
- gotchas: "Version: v0.13.0"; "--baseline <file> (required): Saved snapshot or baseline image to compare against for snapshot or screenshot diff; required for screenshot diff. Snapshot diff can omit it to use the last session snapshot."; "--selector <sel>: Scope snapshot diff to a CSS selector or @ref; screenshot diff to an element."; "--compact: Use compact snapshot format."; "--depth <n>: Limit snapshot tree depth."; "--output <file>: Path for generated screenshot diff image; defaults to temporary directory."; "--threshold <0-1>: Screenshot color-distance threshold; default 0.1, higher is more tolerant."; "--full: Use full-page screenshots."; "--screenshot: For URL diff, also perform visual screenshot comparison."; "--wait-until <strategy>: URL navigation wait strategy: `load` (default), `domcontentloaded`, or `networkidle`."; "Prerequisite: Install agent-browser and download Chromium: `npm install -g agent-browser` then `agent-browser install`."; "Accessibility tree snapshot comparisons support customizable depth and selectors."; "URL comparisons can optionally include screenshot comparison."

### agent-browser annotated screenshots via --annotate (2026-02-19)
- slug: agent-browser-annotated-screenshots-via-annotate-c714449ff34f
- score: 0.97

How to use it:

When inspecting a page’s visual layout, run `agent-browser screenshot --annotate` to label interactive elements and print their refs; use the resulting `@eN` refs for subsequent interactions.

Examples:

```
agent-browser screenshot --annotate <output.png>
```

```
agent-browser click @e2
```

```
AGENT_BROWSER_ANNOTATE=1 agent-browser screenshot <output.png>
```

- why_it_matters: Inspect a page’s visual layout and identify interactive elements by their annotated references.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.12.0>, <https://github.com/vercel-labs/agent-browser/blob/main/docs/src/app/changelog/page.mdx>, <https://github.com/vercel-labs/agent-browser/blob/main/docs/src/app/snapshots/page.mdx>
- gotchas: "Version: v0.12.0"; "--annotate: Enables numbered labels on interactive elements and prints a legend mapping labels to refs."; "AGENT_BROWSER_ANNOTATE: Environment variable alternative for enabling annotated screenshots; the docs do not specify accepted values."; "@eN: Ref corresponding to numbered screenshot label [N]; usable for subsequent interactions."

### agent-browser adds persisted browser sessions and click new-tab option (2026-02-13)
- slug: agent-browser-adds-persisted-browser-sessions-and-click-new-tab-option-9c5cf308b3cf
- score: 0.98

How to use it:

When resuming work across browser restarts, use `--session-name` to persist cookies and localStorage; set an encryption key to encrypt saved state. When a click should open its link in a separate tab, add `--new-tab`.

Examples:

```
agent-browser --session-name <name> open <url>
```

```
agent-browser click <selector> --new-tab
```

```
agent-browser state list
agent-browser state show <file>
agent-browser state rename <old-name> <new-name>
agent-browser state clear <name>
agent-browser state clean --older-than <days>
```

- why_it_matters: When resuming browser work across restarts or opening a clicked link in a separate tab, preserve session state or open the link in a new tab.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.10.0>, <https://github.com/vercel-labs/agent-browser/blob/main/CHANGELOG.md>, <https://github.com/vercel-labs/agent-browser/blob/main/docs/src/app/sessions/page.mdx>
- gotchas: "Version: v0.10.0"; "--session-name <name>: Name for automatic saved-state persistence. Current docs mark this as legacy; they document `--restore` with a stable `--session` for automatic persistence."; "AGENT_BROWSER_ENCRYPTION_KEY: 64-character hexadecimal key; when set, encrypts saved state with AES-256-GCM. Generate with `openssl rand -hex 32`."; "click <selector> --new-tab: `<selector>` identifies the element to click; `--new-tab` opens the link in a new tab."; "state show <file> (required): File to show a saved-state summary for."; "state rename <old-name> <new-name> (required): Existing state name and replacement name."; "state clear <name>: Session name whose saved states to clear; `--all` clears all saved states."; "state clean --older-than <days> (required): Delete saved states older than the specified number of days."; "Docs conflict: The current sessions documentation describes `--session-name` as legacy and recommends `--restore` with a stable `--session` for persistence; this differs from the v0.10.0 release note."

### agent-browser connect persists a CDP browser connection (2026-01-23)
- slug: agent-browser-connect-persists-a-cdp-browser-connection-6467aedcb678
- score: 0.93

How to use it:

When a browser is available through CDP, run `agent-browser connect <port>` once, then run inspection commands such as `agent-browser snapshot` without `--cdp`.

Examples:

```
agent-browser connect 9222
agent-browser snapshot
```

- why_it_matters: Run subsequent browser inspection commands against a browser available through CDP.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.6.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.6.0/README.md>
- gotchas: "Version: v0.6.0"; "<port> (required): CDP port for the existing browser."; "snapshot (required): Returns the accessibility tree with refs."; "Prerequisite: Start Chrome with remote debugging enabled, for example `google-chrome --remote-debugging-port=9222`."

### agent-browser get styles extracts computed element styles (2026-01-23)
- slug: agent-browser-get-styles-extracts-computed-element-styles-6d73b4c56ad7
- score: 0.93

How to use it:

When debugging a web application, inspect an element’s computed styles with `agent-browser get styles` and its selector. The command was added in v0.6.0.

Examples:

```
agent-browser get styles "button"
```

- why_it_matters: Inspect the computed styles of an element while debugging a web application.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.6.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.6.0/README.md>
- gotchas: "Version: v0.6.0"; "selector (required): Element selector; the release example uses the CSS selector `button`."; "Prerequisite: Install `agent-browser` and download Chromium with `agent-browser install`. On Linux, install system dependencies with `agent-browser install --with-deps`."

### agent-browser --proxy configures a browser proxy (2026-01-23)
- slug: agent-browser-proxy-configures-a-browser-proxy-e4c4fca945cf
- score: 0.92

How to use it:

When opening a site through a proxy, pass its URL with `--proxy` before `open`. Include credentials in the proxy URL when authentication is needed.

Examples:

```
agent-browser --proxy "<proxy-url>" open <site-url>
```

- why_it_matters: Open a web application through a proxy while inspecting or testing it in a browser.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.6.0>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/proxy-support.md>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/commands.md>
- gotchas: "Version: v0.6.0"; "--proxy <url>: Proxy server URL; credentials may be included in the URL. The flag is optional; its URL value is needed when using it."; "open <url> (required): Navigate to the site URL."; "Proxy authentication is optional."

### agent-browser records browser sessions to WebM (2026-01-23)
- slug: agent-browser-records-browser-sessions-to-webm-21141d6bbc83
- score: 0.93

How to use it:

When capturing a demo, open the application, start a WebM recording, perform the browser actions, then stop the recording to save it.

Examples:

```
agent-browser open <app-url>
agent-browser record start ./demo.webm
agent-browser click <selector>
agent-browser record stop
```

- why_it_matters: Record a browser session while capturing a demo of a web application.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.6.0>, <https://github.com/vercel-labs/agent-browser/blob/v0.6.0/README.md>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/video-recording.md>
- gotchas: "Version: v0.6.0"; "<app-url> (required): URL to open before recording."; "./demo.webm (required): Output path; recording documentation requires a filename extension."; "<selector> (required): Element selector for the click action; refs such as @e1 are supported."; "Prerequisite: Install agent-browser and its Chromium browser with `npm install -g agent-browser` and `agent-browser install`."; "Prerequisite: The recording reference requires ffmpeg on PATH with libvpx and libx264 encoders; this requirement appears in current documentation, not the v0.6.0 release note."; "Recording uses Playwright's native recording."; "Docs conflict: The v0.6.0 release note says recording uses Playwright's native recording; current official recording docs describe piping frames to ffmpeg. The current implementation detail conflicts with the release note and is not used as a card fact."

### agent-browser adds cloud browser providers, persistent profiles, remote CDP, downloads, and browser launch flags (2026-01-23)
- slug: agent-browser-adds-cloud-browser-providers-persistent-profiles-remote-cdp-downlo-1793737c5c0a
- score: 0.97

How to use it:

When repository browser tests need a remote browser, persisted profile, downloads, or custom launch settings, configure `agent-browser` with the documented provider, profile, CDP, download, or launch options.

Examples:

```
agent-browser -p browserbase open https://example.com
agent-browser -p browseruse open https://example.com
export AGENT_BROWSER_PROVIDER=browserbase
agent-browser open https://example.com
```

```
agent-browser --profile <profile-path> open <url>
agent-browser --cdp "wss://<browser-service>/cdp?token=<token>" snapshot
```

```
agent-browser download @e1 ./file.pdf
agent-browser wait --download ./output.zip --timeout 30000
agent-browser --args "--disable-gpu,--no-sandbox" open <url>
agent-browser --user-agent "<user-agent>" open <url>
agent-browser --proxy-bypass "localhost,*.internal" open <url>
```

- why_it_matters: When testing repository browser behavior with a remote browser, persisted login state, downloads, or custom launch settings, configure agent-browser for the required browser workflow.
- sources: <https://github.com/vercel-labs/agent-browser/releases/tag/v0.7.0>, <https://github.com/vercel-labs/agent-browser/blob/main/docs/src/app/changelog/page.mdx>, <https://github.com/vercel-labs/agent-browser/blob/main/skill-data/core/references/commands.md>
- gotchas: "Version: v0.7.0"; "-p <provider>: Selects a browser provider; documented examples are `browserbase` and `browseruse`."; "AGENT_BROWSER_PROVIDER: Environment variable selecting the browser provider; example value `browserbase`."; "--profile <path>: Persistent browser profile directory; the release note says it stores cookies, localStorage, and login sessions across browser restarts."; "--cdp <port|url>: Connects through CDP; accepts a remote WebSocket URL."; "download <ref> <path> (required): Triggers a download for the referenced element and saves to the supplied path."; "wait --download <path> (required): Waits for a file download at the supplied path; release example also uses `--timeout 30000`."; "--args <args>: Sets browser launch arguments; comma-separated in the documented CLI example."; "--user-agent <ua>: Sets the custom User-Agent string."; "--proxy-bypass <hosts>: Sets hosts to bypass the proxy."; "Cloud browser providers named are Browserbase and Browser Use."; "Persistent profiles store cookies, localStorage, and login sessions across browser restarts."; "Download handling includes ref support."
