pi-agent-browser-native 0.2.34 → 0.2.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/README.md +25 -15
- package/docs/ARCHITECTURE.md +19 -13
- package/docs/COMMAND_REFERENCE.md +274 -44
- package/docs/ELECTRON.md +3 -3
- package/docs/RELEASE.md +11 -11
- package/docs/REQUIREMENTS.md +5 -5
- package/docs/SUPPORT_MATRIX.md +43 -24
- package/docs/TOOL_CONTRACT.md +50 -30
- package/extensions/agent-browser/index.ts +518 -2402
- package/extensions/agent-browser/lib/argv-descriptor.ts +90 -0
- package/extensions/agent-browser/lib/argv-grammar.ts +128 -0
- package/extensions/agent-browser/lib/command-policy.ts +71 -0
- package/extensions/agent-browser/lib/command-taxonomy.ts +336 -0
- package/extensions/agent-browser/lib/electron/cleanup.ts +1 -0
- package/extensions/agent-browser/lib/executable-path.ts +19 -0
- package/extensions/agent-browser/lib/input-modes/params.ts +6 -6
- package/extensions/agent-browser/lib/orchestration/batch-stdin.ts +65 -0
- package/extensions/agent-browser/lib/orchestration/browser-run/browser-action-model.ts +154 -0
- package/extensions/agent-browser/lib/orchestration/browser-run/click-dispatch.ts +149 -0
- package/extensions/agent-browser/lib/orchestration/browser-run/diagnostics.ts +56 -30
- package/extensions/agent-browser/lib/orchestration/browser-run/final-result.ts +13 -3
- package/extensions/agent-browser/lib/orchestration/browser-run/index.ts +33 -27
- package/extensions/agent-browser/lib/orchestration/browser-run/prepare.ts +48 -22
- package/extensions/agent-browser/lib/orchestration/browser-run/process-output.ts +39 -10
- package/extensions/agent-browser/lib/orchestration/browser-run/prompt-guards.ts +93 -0
- package/extensions/agent-browser/lib/orchestration/browser-run/session-state.ts +98 -124
- package/extensions/agent-browser/lib/orchestration/browser-run/types.ts +40 -1
- package/extensions/agent-browser/lib/orchestration/electron-host/index.ts +860 -0
- package/extensions/agent-browser/lib/playbook.ts +10 -10
- package/extensions/agent-browser/lib/prompt-policy.ts +122 -0
- package/extensions/agent-browser/lib/results/action-recommendations.ts +3 -23
- package/extensions/agent-browser/lib/results/presentation/navigation.ts +2 -34
- package/extensions/agent-browser/lib/runtime.ts +93 -227
- package/extensions/agent-browser/lib/session-page-state.ts +31 -14
- package/extensions/agent-browser/lib/temp.ts +148 -23
- package/package.json +4 -4
- package/scripts/agent-browser-capability-baseline.mjs +198 -1
|
@@ -18,7 +18,7 @@ This project intentionally blocks normal `agent-browser` bash usage in most agen
|
|
|
18
18
|
|
|
19
19
|
<!-- agent-browser-capability-baseline:start upstream-baseline -->
|
|
20
20
|
<!-- Generated from scripts/agent-browser-capability-baseline.mjs. Run `npm run docs -- command-reference write` to update. Do not edit manually. -->
|
|
21
|
-
This reference is baselined to the locally installed `agent-browser 0.27.0` command/help surface. Upstream `agent-browser` remains the source of truth for command semantics; this file is the local fallback for Pi agent sessions where direct binary help is blocked or discouraged.
|
|
21
|
+
This reference is baselined to the locally installed `agent-browser 0.27.0` command/help surface, audited against vercel-labs/agent-browser@4ad284890cb59564af603e6de403dd75dd19e832. Upstream `agent-browser` remains the source of truth for command semantics; this file is the local fallback for Pi agent sessions where direct binary help is blocked or discouraged.
|
|
22
22
|
|
|
23
23
|
The lightweight drift check is `npm run verify -- command-reference`. Run it whenever the installed upstream `agent-browser` version changes or this reference is edited.
|
|
24
24
|
|
|
@@ -72,7 +72,7 @@ Tool parameters (use exactly one of `args`, `semanticAction`, `job`, `qa`, `sour
|
|
|
72
72
|
- `sessionMode`:
|
|
73
73
|
- `"auto"` reuses the extension-managed session when possible.
|
|
74
74
|
- `"fresh"` rotates that managed session to a fresh upstream launch so launch-scoped flags like `--profile`, `--session-name`, `--cdp`, `--state`, `--auto-connect`, `--init-script`, `--enable`, `-p` / `--provider`, or iOS `--device` apply.
|
|
75
|
-
- If a fresh launch fails or times out, read `details.managedSessionOutcome` for `preserved` vs `abandoned` (and related fields). A model-visible `Managed session outcome: …` line is appended only for failing calls that used `sessionMode: "fresh"`; `"auto"` failures can still populate the struct without that extra line.
|
|
75
|
+
- If a fresh launch fails or times out, read `details.managedSessionOutcome` for `preserved` vs `abandoned` (and related fields). A model-visible `Managed session outcome: …` line is appended only for failing calls that used `sessionMode: "fresh"`; `"auto"` failures can still populate the struct without that extra line. If you explicitly close the current wrapper-managed session with `--session <name> close`, later default auto calls rotate to a new wrapper-generated session instead of reusing the closed name; repeated closes and branch restores keep those generated names monotonic.
|
|
76
76
|
|
|
77
77
|
### Debug, diff, stream, dashboard, and chat families
|
|
78
78
|
|
|
@@ -91,6 +91,21 @@ Keep routine browser work simple: open a page, inspect it with `snapshot -i`, in
|
|
|
91
91
|
{ "args": ["snapshot", "-i"] }
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
+
### Headed demo and local-page checks
|
|
95
|
+
|
|
96
|
+
Use upstream's global `--headed` flag on the first launch when the user needs to watch the browser. Because headed/headless state belongs to the browser launch, use `sessionMode: "fresh"` when a managed session may already exist or when changing from a previous headless run.
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{ "args": ["--headed", "open", "https://example.com"], "sessionMode": "fresh" }
|
|
100
|
+
{ "args": ["screenshot", "/tmp/agent-browser-headed-check.png"] }
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Treat headed success as browser-context success, not proof that a window is visible on the user's display. Remote shells, containers, virtual framebuffers, or upstream/provider-owned browser hosts can still put the visible window somewhere the user cannot see. If a user reports no window, gather evidence with `screenshot`, `tab list`, `get url`, or `snapshot -i`; then relaunch with the right display/profile/provider setup rather than assuming the user missed it.
|
|
104
|
+
|
|
105
|
+
For local fixtures, remember that `localhost` and `127.0.0.1` are resolved from the browser host, which may differ from the shell that started a temporary HTTP server. `net::ERR_EMPTY_RESPONSE` on `http://localhost:<port>` usually means the browser could not reach that server, not that the page itself rendered blank. Prefer a host-reachable address when your environment provides one; otherwise use `file://` only for static fixtures and note its limits. `file://` does not provide HTTP headers and may change MIME/CORS/storage/debugger behavior. If `eval --stdin` on a `file://` page returns `null` for even simple DOM expressions, treat the result as inconclusive and verify with `snapshot -i`, `get text` on current refs, or screenshots until the fixture can run over reachable HTTP.
|
|
106
|
+
|
|
107
|
+
Temporary HTTP servers and their port/process lifecycle stay outside the native tool. Extension maintainers running real-upstream contract tests can reuse `startAgentBrowserContractFixtureServer()` in [`test/helpers/agent-browser-harness.ts`](../test/helpers/agent-browser-harness.ts) instead of ad-hoc `python3 -m http.server` processes.
|
|
108
|
+
|
|
94
109
|
### React, SPA, and Web Vitals flows
|
|
95
110
|
|
|
96
111
|
React introspection requires the React DevTools init hook to be installed before the page's first JavaScript runs. Launch or relaunch that browser session with `--enable react-devtools`; if the implicit session is already active, use `sessionMode: "fresh"`.
|
|
@@ -153,9 +168,9 @@ Do not assume Playwright selector dialects such as `text=Close` or `button:has-t
|
|
|
153
168
|
|
|
154
169
|
Treat `@e…` refs as page-scoped. After a successful `snapshot`, the wrapper records the latest refs and page target for that session; mutation-prone ref commands such as `click @e4`, `select @e5 chocolate`, or batch steps with old refs fail with `failureCategory: "stale-ref"` when the page target changed or the ref is absent from the latest same-page snapshot. If a session `snapshot -i` fails with `No active page`, the wrapper invalidates prior refs for that session; later mutation-prone `@e…` calls fail before upstream until a successful fresh `snapshot -i` records refs again. Inside `batch` stdin JSON, the wrapper also walks steps in order before spawn: steps whose first token can navigate or mutate set a latch; a later step whose first token is `snapshot` clears that latch for following rows; guarded steps that still mention `@e…` after an uncleared latch fail with the same `stale-ref` bucket without launching upstream. Same-snapshot form fills are allowed before a click or submit step, so a login-style `fill`, `fill`, `click` batch can run from one snapshot; split dynamic or autosubmit forms with a fresh snapshot if a fill itself rerenders the targets. Follow the `refresh-interactive-refs` next action (it includes `--session <name>` when needed) and prefer stable `find` or `semanticAction` locators when navigation or rerendering is likely. Contract detail: [`TOOL_CONTRACT.md`](TOOL_CONTRACT.md#details) (`refSnapshot`, `refSnapshotInvalidation`).
|
|
155
170
|
|
|
156
|
-
A successful `click` result means upstream reported a target, not that the app definitely handled the event. When the workflow depends on a mutation, use `details.pageChangeSummary`, a wait, URL/text extraction, or a fresh `snapshot -i` before trusting the state; if nothing changed, retry with a current visible ref or stable selector and report the workflow issue. Preserve explicit user stop boundaries: if the user says to stop before a final order, post, purchase, or submit action, gather evidence from that page and do not click the final action. The wrapper
|
|
171
|
+
A successful `click` result means upstream reported a target, not that the app definitely handled the event. For top-level non-Electron clicks, the wrapper installs a bounded DOM-event probe; when upstream reports success but no trusted event reaches the target, it fails the tool and exposes `details.clickDispatch` plus a `Click dispatch diagnostic` line with explicit retry/inspect next actions (no in-page click replay). When the workflow depends on a mutation, use `details.pageChangeSummary`, a wait, URL/text extraction, or a fresh `snapshot -i` before trusting the state; if nothing changed, retry with a current visible ref or stable selector and report the workflow issue. Preserve explicit user stop boundaries: if the user says to stop before a final order, post, purchase, or submit action, gather evidence from that page and do not click the final action. The wrapper also blocks likely final order/submit click targets under those prompts and returns `details.promptGuard` with `failureCategory: "policy-blocked"`.
|
|
157
172
|
|
|
158
|
-
When a **top-level** `click` succeeds (not a `click` hidden inside a `batch`/`job` tool call—the unified command must be `click`), the upstream payload includes `data.clicked`, and the wrapper sees the active tab URL unchanged after the same normalization it uses for ref guards (**`#fragment` ignored**), it may run one extra `snapshot -i` and surface `Possible overlay blockers` plus `details.overlayBlockers` (`candidates`, `summary`, and a `snapshot` map that can refresh `refSnapshot`) when that snapshot shows strong modal context (`dialog` / `alertdialog`) **and** up to three close/dismiss-like controls; page-wide words such as privacy, sign in, or banner alone do not trigger it. The URL check compares the session’s prior pinned tab target to `details.navigationSummary.url` after the click; that summary is gathered with one read-only `eval` when the click JSON omits **both** string `data.url` and `data.title`—if upstream already echoes either field, overlay diagnostics are skipped on this path. The diagnostic is skipped if the wrapper already applied tab-focus correction or about-blank recovery on that result. Appended `inspect-overlay-state` / `try-overlay-blocker-candidate-*` entries in `details.nextActions` include `--session <name>` when the session is named, same as other session-scoped follow-ups. Treat `inspect-overlay-state` as the safe first follow-up; only use a `try-overlay-blocker-candidate-*` next action when the candidate is clearly the control you intend to close.
|
|
173
|
+
When a **top-level** `click` succeeds (not a `click` hidden inside a `batch`/`job` tool call—the unified command must be `click`), the upstream payload includes `data.clicked`, no `details.clickDispatch` diagnostic fired for the same result, and the wrapper sees the active tab URL unchanged after the same normalization it uses for ref guards (**`#fragment` ignored**), it may run one extra `snapshot -i` and surface `Possible overlay blockers` plus `details.overlayBlockers` (`candidates`, `summary`, and a `snapshot` map that can refresh `refSnapshot`) when that snapshot shows strong modal context (`dialog` / `alertdialog`) **and** up to three close/dismiss-like controls; page-wide words such as privacy, sign in, or banner alone do not trigger it. The URL check compares the session’s prior pinned tab target to `details.navigationSummary.url` after the click; that summary is gathered with one read-only `eval` when the click JSON omits **both** string `data.url` and `data.title`—if upstream already echoes either field, overlay diagnostics are skipped on this path. The diagnostic is skipped if the wrapper already applied tab-focus correction or about-blank recovery on that result. Appended `inspect-overlay-state` / `try-overlay-blocker-candidate-*` entries in `details.nextActions` include `--session <name>` when the session is named, same as other session-scoped follow-ups. Treat `inspect-overlay-state` as the safe first follow-up; only use a `try-overlay-blocker-candidate-*` next action when the candidate is clearly the control you intend to close.
|
|
159
174
|
|
|
160
175
|
### Extract page data
|
|
161
176
|
|
|
@@ -176,7 +191,7 @@ Prefer `get` and scoped `eval --stdin` for read-only extraction. Getter names ar
|
|
|
176
191
|
|
|
177
192
|
Return the intended JavaScript value from `eval --stdin` instead of relying on `console.log`. For object-shaped extraction, pass a plain expression such as `({ title: document.title, url: location.href })`; if you send a function-shaped snippet, invoke it explicitly, for example `(() => ({ title: document.title }))()`. When upstream serializes a function result to `{}`, the wrapper can append `Eval stdin hint` and `details.evalStdinHint`.
|
|
178
193
|
|
|
179
|
-
On tabbed or hidden-DOM pages, `get text <selector>` reads the upstream-selected match, which may be hidden even when a later match is visible. For non-`@ref` CSS selectors with multiple matches, including successful `batch` steps, the wrapper may add `Selector text visibility warning`, `details.selectorTextVisibility` (and `details.selectorTextVisibilityAll` for multiple batched warnings), and `inspect-visible-text-candidates` next actions. The warning names the matching `details.nextActions` id so agents know to use a fresher `snapshot -i`, a visible `@ref`, or a more specific selector instead of trusting hidden tab content.
|
|
194
|
+
On tabbed or hidden-DOM pages, `get text <selector>` reads the upstream-selected match, which may be hidden even when a later match is visible. For non-`@ref` CSS selectors with multiple matches, including successful `batch` steps, the wrapper may add `Selector text visibility warning`, `details.selectorTextVisibility` (and `details.selectorTextVisibilityAll` for multiple batched warnings), and `inspect-visible-text-candidates` next actions. The warning names the matching `details.nextActions` id so agents know to use a fresher `snapshot -i`, a visible `@ref`, or a more specific selector instead of trusting hidden tab content. If the probe still leaves multiple visible candidates, do not keep reading the broad selector; switch to a current visible `@ref`, add a narrower selector such as a known panel/container id, or use a targeted `eval --stdin` expression that filters for visible elements and returns the intended index/text.
|
|
180
195
|
|
|
181
196
|
### Run a multi-step flow in one browser invocation
|
|
182
197
|
|
|
@@ -259,13 +274,13 @@ Typical lifecycle:
|
|
|
259
274
|
{ "electron": { "action": "cleanup", "launchId": "electron-…" } }
|
|
260
275
|
```
|
|
261
276
|
|
|
262
|
-
`electron.status` and `electron.cleanup` take either `launchId`, **`all: true`** (literal boolean) to walk every wrapper-tracked launch in one call, or neither when exactly one active launch exists—never both `launchId` and `all`. For `electron.launch`, `timeoutMs` bounds host CDP readiness with a **15s** default and **120s** cap in `extensions/agent-browser/lib/electron/launch.ts`. Optional `timeoutMs` on **`status`** applies to managed-session `get title` / `get url` reads (localhost CDP probes stay on a short fixed fetch budget). On **`cleanup`**, it caps upstream `close` **and** host teardown (process exit, debug-port idle check, isolated profile removal); when omitted it follows the implicit session close default (**5s** unless `PI_AGENT_BROWSER_IMPLICIT_SESSION_CLOSE_TIMEOUT_MS` overrides). On **`probe`**, it bounds each underlying upstream read subprocess—omit it to use the normal tool subprocess default, or raise it on slow desktops.
|
|
277
|
+
`electron.status` and `electron.cleanup` take either `launchId`, **`all: true`** (literal boolean) to walk every wrapper-tracked launch in one call, or neither when exactly one active launch exists—never both `launchId` and `all`. They can target the current branch-visible launch plus still-owned off-branch launch records by `launchId`; default no-arg calls are intentionally ambiguous when more than one active launch is owned. `/reload` preserves the current branch-visible active Electron launch and its isolated temp `userDataDir` for continuity, and cleans off-branch owned Electron launches; if cleanup is partial and skips or fails profile removal, the generic temp sweep preserves that `userDataDir` across reload, quit, later temp cleanup, process exit, and stale temp-root pruning after restart. For `electron.launch`, `timeoutMs` bounds host CDP readiness with a **15s** default and **120s** cap in `extensions/agent-browser/lib/electron/launch.ts`. Optional `timeoutMs` on **`status`** applies to managed-session `get title` / `get url` reads (localhost CDP probes stay on a short fixed fetch budget). On **`cleanup`**, it caps upstream `close` **and** host teardown (process exit, debug-port idle check, isolated profile removal); when omitted it follows the implicit session close default (**5s** unless `PI_AGENT_BROWSER_IMPLICIT_SESSION_CLOSE_TIMEOUT_MS` overrides). A successful managed-session close step retires that wrapper-managed session even when host process/profile cleanup remains partial. On **`probe`**, it bounds each underlying upstream read subprocess—omit it to use the normal tool subprocess default, or raise it on slow desktops.
|
|
263
278
|
|
|
264
279
|
`launch.handoff` defaults to `"snapshot"`, which attaches through upstream `connect`, lists targets, and captures a current `snapshot -i` in one call. Snapshot handoff retries briefly when the first Electron snapshot has no refs; if it still reports no refs, run `snapshot -i` once more before assuming the app is blank. Use `handoff: "tabs"` as the safer diagnostic starting point when you only need target discovery and do not want to snapshot app content yet, or `handoff: "connect"` when you want to attach first and run your own follow-up commands. `targetType` defaults to `"page"`; use `"webview"` or `"any"` for apps that expose useful webviews. When a matching CDP target exposes a WebSocket URL, launch connects to that target; otherwise it falls back to the browser port.
|
|
265
280
|
|
|
266
281
|
After launch, prefer the exact `details.nextActions` payloads when present: `status-electron-launch` checks liveness, `probe-electron-launch` runs compact diagnostics for a tracked launch, `snapshot-electron-session` refreshes current refs, `list-electron-tabs` inspects targets, and `cleanup-electron-launch` removes the wrapper-owned process/profile when the run is done. If launch times out, inspect `details.electron.failure.diagnostics` for PID, wrapper profile, `DevToolsActivePort`, and timing evidence before retrying. If status/probe detects a session or target mismatch, follow `reattach-electron-launch` or a fresh snapshot action before using old refs. If a click/fill/type looks successful but the Electron PID or debug port dies, the wrapper now fails the result with `details.electronPostCommandHealth` and same-launch status/probe/cleanup next actions instead of leaving the agent on `about:blank`. If cleanup is partial (`failureCategory: "cleanup-failed"`), inspect `details.electron.cleanup.results` and use `retry-electron-cleanup` only for the same `launchId`.
|
|
267
282
|
|
|
268
|
-
Manual path for externally launched apps: if you started the Electron app yourself with a debug port or DevTools URL, skip the wrapper lifecycle and attach directly with upstream `connect`. In this path you own app shutdown and profile cleanup; do not use `electron.cleanup`. `close` only
|
|
283
|
+
Manual path for externally launched apps: if you started the Electron app yourself with a debug port or DevTools URL, skip the wrapper lifecycle and attach directly with upstream `connect`. In this path you own app shutdown and profile cleanup; do not use `electron.cleanup`. close commands (`close`, `quit`, or `exit`) only close the browser/CDP session and do not quit the manually launched app or remove explicit artifacts.
|
|
269
284
|
|
|
270
285
|
```json
|
|
271
286
|
{ "args": ["connect", "9222"], "sessionMode": "fresh" }
|
|
@@ -327,7 +342,7 @@ A successful wait-based download renders a readable summary such as `Download co
|
|
|
327
342
|
{ "args": ["pdf", "/tmp/page.pdf"] }
|
|
328
343
|
```
|
|
329
344
|
|
|
330
|
-
The upstream screenshot aliases are `screenshot --full` for full-page capture and `screenshot --annotate` for labeled screenshots. When a user gives exact artifact paths for screenshots, recordings, downloads, PDFs, traces, or HAR files, use those paths or explicitly report why the artifact was unavailable; do not silently substitute another path in the final report.
|
|
345
|
+
The upstream screenshot aliases are `screenshot --full` for full-page capture and `screenshot --annotate` for labeled screenshots. When a user gives exact artifact paths for screenshots, recordings, downloads, PDFs, traces, or HAR files, use those paths or explicitly report why the artifact was unavailable; do not silently substitute another path in the final report. When the latest prompt names exact required screenshot paths, `close` / `quit` / `exit` can be blocked with `details.promptGuard.reason: "requested-artifacts-missing-before-close"` until those paths appear as verified explicit artifacts.
|
|
331
346
|
|
|
332
347
|
Prefer `download <selector> <path>` when the target element itself is the downloadable link/control. Use `click` plus `wait --download [path]` when a previous action starts the download indirectly.
|
|
333
348
|
|
|
@@ -355,7 +370,7 @@ The wrapper keeps a bounded, metadata-only `details.artifactManifest` of recent
|
|
|
355
370
|
|
|
356
371
|
This manifest cap controls what appears in `details.artifactManifest` and in summaries such as `Session artifacts: 42 live, 0 evicted (42/100 recent)`. It does not delete explicit files that upstream saved to paths you chose, such as screenshots, PDFs, downloads, traces, HAR files, or WebM recordings.
|
|
357
372
|
|
|
358
|
-
Browser `close`
|
|
373
|
+
Browser close commands (`close`, `quit`, or `exit`) are also not file cleanup. If `details.artifactManifest` is present with a non-empty `entries` list, a successful close command appends an `Artifact lifecycle` note and reports `details.artifactCleanup` with the current retention summary and the same host-owned cleanup `note` as the contract (`extensions/agent-browser/lib/orchestration/browser-run/diagnostics.ts`, `getArtifactCleanupGuidance`). Up to ten distinct user-chosen paths that still exist on disk appear in `explicitArtifactPaths` when matching `explicit-path` manifest rows exist in the recent window; deleted/stale paths are skipped. Otherwise that array is empty and visible text may omit the “Explicit artifact paths” line even though the lifecycle block still reminds you that close commands do not delete saved files. Delete any paths you care about with host file tools after inspection; the native browser tool intentionally does not remove arbitrary user-chosen filesystem paths.
|
|
359
374
|
|
|
360
375
|
Oversized snapshots and oversized generic outputs are different: when a persisted pi session is available, their wrapper-managed spill files are stored under the private session artifact directory and are governed by the byte budget `PI_AGENT_BROWSER_SESSION_ARTIFACT_MAX_BYTES` (default 32 MiB). Raise that byte budget as well for long QA sessions that need many full raw snapshots or large text spills to survive reload/resume.
|
|
361
376
|
|
|
@@ -438,18 +453,27 @@ Session note: `skills list`, `skills get …`, and `skills path …` are **state
|
|
|
438
453
|
| `skills get core` | Print the core usage guide. |
|
|
439
454
|
| `skills get core --full` | Print the full version-matched core command reference and templates. |
|
|
440
455
|
| `skills get <name>` | Load a specialized skill such as `electron` or `slack`. Common specialized calls include `skills get electron`, `skills get slack`, `skills get dogfood`, `skills get vercel-sandbox`, and `skills get agentcore`. |
|
|
456
|
+
| `skills get <name> --full` | Include a skill's supplementary references/templates when present. |
|
|
457
|
+
| `skills get --all` | Print all visible bundled skills for broad audit/debug work. |
|
|
441
458
|
| `skills path [name]` | Print a skill directory path. |
|
|
442
459
|
|
|
460
|
+
Skill-source debugging note: upstream honors `AGENT_BROWSER_SKILLS_DIR` as an override for bundled skill discovery. Normal agents should not need it, but it is useful when validating package layout or upstream skill packaging.
|
|
461
|
+
|
|
443
462
|
### Core page and element commands
|
|
444
463
|
|
|
445
464
|
| Command | Purpose |
|
|
446
465
|
| --- | --- |
|
|
447
|
-
| `open
|
|
466
|
+
| `open [url]` | Launch the browser and optionally navigate. URL-less `open` stays on `about:blank` so agents can stage routes, cookies, or init scripts before first navigation. |
|
|
467
|
+
| `open <url>` | Navigate to a URL; `goto <url>` and `navigate <url>` are equivalent navigation aliases when a URL is present. |
|
|
448
468
|
| `click <sel>` | Click an element or `@ref`. |
|
|
469
|
+
| `click <sel> --new-tab` | Click a link/control while requesting a new tab. |
|
|
449
470
|
| `dblclick <sel>` | Double-click an element. |
|
|
450
471
|
| `type <sel> <text>` | Type into an element. |
|
|
451
472
|
| `fill <sel> <text>` | Clear and fill an element. |
|
|
452
|
-
| `press <key>` | Press a key such as `Enter`, `Tab`, or `Control+a`.
|
|
473
|
+
| `press <key>` | Press a key such as `Enter`, `Tab`, or `Control+a`. `key <key>` is the upstream alias. |
|
|
474
|
+
| `key <key>` | Alias for `press <key>`. |
|
|
475
|
+
| `keydown <key>` | Hold a key down without releasing it, useful for modifiers. |
|
|
476
|
+
| `keyup <key>` | Release a key previously held by `keydown <key>`. Common modifier examples are `keydown Shift` and `keyup Shift`. |
|
|
453
477
|
| `keyboard type <text>` | Type text with real keystrokes and no selector. |
|
|
454
478
|
| `keyboard inserttext <text>` | Insert text without key events. |
|
|
455
479
|
| `hover <sel>` | Hover an element. |
|
|
@@ -461,14 +485,19 @@ Session note: `skills list`, `skills get …`, and `skills path …` are **state
|
|
|
461
485
|
| `upload <sel> <files...>` | Upload one or more files. |
|
|
462
486
|
| `download <sel> <path>` | Download a file by clicking an element. |
|
|
463
487
|
| `scroll <dir> [px]` | Scroll `up`, `down`, `left`, or `right`. |
|
|
464
|
-
| `
|
|
488
|
+
| `scroll <dir> [px] --selector <sel>` | Scroll a specific scrollable element/container instead of the page. |
|
|
489
|
+
| `scrollintoview <sel>` | Scroll an element into view; `scrollinto <sel>` is the upstream alias. |
|
|
490
|
+
| `scrollinto <sel>` | Alias for `scrollintoview <sel>`. |
|
|
465
491
|
| `wait <sel|ms>` | Wait for an element or a duration. |
|
|
466
|
-
| `screenshot [path]` | Take a screenshot. |
|
|
492
|
+
| `screenshot [selector] [path]` | Take a full-page or element-scoped screenshot; a single selector-like argument scopes, while a path-like argument saves to that path. |
|
|
493
|
+
| `screenshot [path]` | Take a screenshot and optionally save it to a path. |
|
|
467
494
|
| `pdf <path>` | Save the page as a PDF. |
|
|
468
|
-
| `snapshot` | Print an accessibility tree with refs for AI interaction. |
|
|
469
|
-
| `eval <js>` | Run JavaScript. Use `eval --stdin` through this wrapper for larger snippets. |
|
|
495
|
+
| `snapshot` | Print an accessibility tree with refs for AI interaction. Common options include `snapshot --interactive`, `snapshot --urls`, `snapshot --compact`, `snapshot --depth <n>`, `snapshot --selector <sel>`, and `snapshot --cursor` / `snapshot -C` for cursor/focus context when upstream returns it. |
|
|
496
|
+
| `eval <js>` | Run JavaScript. Use `eval --stdin` through this wrapper for larger snippets, or `eval -b <base64>` for shell-escaping-safe one-liners. |
|
|
470
497
|
| `connect <port|url>` | Connect to a browser through CDP. |
|
|
471
|
-
| `close [--all]` | Close the current browser or all sessions. |
|
|
498
|
+
| `close [--all]` | Close the current browser or all sessions; `quit` and `exit` are upstream close aliases. |
|
|
499
|
+
| `tap <selector>` | Touch-oriented tap alias for iOS/provider workflows. |
|
|
500
|
+
| `swipe <direction> [distance]` | Touch-oriented swipe for iOS/provider workflows. |
|
|
472
501
|
|
|
473
502
|
On dashboards and other apps with nested scroll containers, `scroll <dir> [px]` may report a successful wheel action while the viewport appears unchanged because the page-level scroller was not the one containing the content. For top-level `scroll` calls without startup-scoped launch flags, the wrapper samples viewport and prominent scroll-container positions before and after the command; when nothing changes it appends `Scroll diagnostic: no observed scroll movement`, exposes `details.scrollNoop`, and adds exact `details.nextActions` for a fresh `snapshot -i` and screenshot. Use those before repeating page scrolls; when you need a specific panel, prefer `scrollintoview <@ref>` or a scoped interaction with the actual scrollable region.
|
|
474
503
|
|
|
@@ -490,6 +519,11 @@ Comboboxes vary by app. For native `<select>` controls, prefer raw `select <sele
|
|
|
490
519
|
| `session list` | List active sessions. |
|
|
491
520
|
| `state save <path>` | Save cookies, local storage, and session storage to a state file. |
|
|
492
521
|
| `state load <path>` | Load cookies and storage from a state file. |
|
|
522
|
+
| `state list` | List saved state files. |
|
|
523
|
+
| `state show <filename>` | Show saved-state metadata without dumping secrets. |
|
|
524
|
+
| `state rename <old-name> <new-name>` | Rename a saved state file. |
|
|
525
|
+
| `state clear [session-name] [--all]` | Clear saved states for one name or all names; `state clear -a` is the upstream short alias for clearing all names. |
|
|
526
|
+
| `state clean --older-than <days>` | Delete expired saved-state files. |
|
|
493
527
|
| `frame <selector|main>` | Switch iframe context by selector/ref/name/URL, or return to the main frame. |
|
|
494
528
|
| `dialog accept [text]` | Accept an alert, confirm, or prompt dialog, optionally supplying prompt text. |
|
|
495
529
|
| `dialog dismiss` | Dismiss or cancel the current dialog. |
|
|
@@ -512,13 +546,13 @@ These calls return plain text and stay stateless: the extension does not inject
|
|
|
512
546
|
|
|
513
547
|
| Family | Surface |
|
|
514
548
|
| --- | --- |
|
|
515
|
-
| `get <what> [selector]` | `text`, `html`, `value`, `attr <name>`, `title`, `url`, `count`, `box
|
|
549
|
+
| `get <what> [selector]` | `text`, `html`, `value`, `attr <name>`, `title`, `url`, `count`, `get box <selector>`, `get styles <selector>`, and `get cdp-url`. |
|
|
516
550
|
| `is <what> <selector>` | Check `visible`, `enabled`, or `checked`. |
|
|
517
|
-
| `find <locator> <value> <action> [text]` | Locator types include `role`, `text`, `label`, `placeholder`, `alt`, `title`, `testid
|
|
551
|
+
| `find <locator> <value> <action> [text]` | Locator types include `role`, `text`, `label`, `placeholder`, `alt`, `title`, and `testid`; selector helpers include `find first <sel>`, `find last <sel>`, and `find nth <n> <sel>`. Role/text filters include `find role <role> --name <name>` and `find ... --exact`. |
|
|
518
552
|
| `mouse <action> [args]` | `move <x> <y>`, `down [btn]`, `up [btn]`, `wheel <dy> [dx]`. |
|
|
519
|
-
| `set <setting> [value]` | `viewport <w> <h>`, `device <name>`, `geo <lat> <lng>`, `offline [on|off]`, `headers <json>`, `credentials <user> <pass>`, `media
|
|
520
|
-
| `network <action>` | `route <url> [--abort|--body <json>] [--resource-type <csv>]`, `unroute [url]`, `requests [--clear] [--filter <pattern>]`, `request <requestId>`, `har
|
|
521
|
-
| `cookies [get|set|clear]` | Manage cookies.
|
|
553
|
+
| `set <setting> [value]` | `viewport <w> <h>`, `device <name>`, `geo <lat> <lng>`, `offline [on|off]`, `headers <json>`, `credentials <user> <pass>`, and `set media <features>` (`dark`, `light`, and/or `reduced-motion`). |
|
|
554
|
+
| `network <action>` | `network route <url> [--abort|--body <json>] [--resource-type <csv>]`, `network unroute [url]`, `network requests [--clear] [--filter <pattern>] [--type <csv>] [--method <method>] [--status <code|range>]`, `network request <requestId>`, `network har start`, and `network har stop [path]`. `--resource-type` filters intercepted requests by CDP resource type, such as `script`, `image`, `font`, `xhr`, or `fetch`; request listing filters accept resource types (`xhr,fetch`), methods (`POST`), and statuses (`2xx`, `400-499`). |
|
|
555
|
+
| `cookies [get|set|clear]` | Manage cookies. Full set form: `cookies set <name> <value> --url <url> --domain <domain> --path <path> --httpOnly --secure --sameSite <Strict|Lax|None> --expires <timestamp>`; also supports `cookies set --curl <file>` for JSON, cURL, or bare Cookie-header bulk imports. |
|
|
522
556
|
| `storage <local|session>` | Manage web storage. |
|
|
523
557
|
|
|
524
558
|
Privacy note: `cookies get` can expose real profile cookies. Do not run it against `--profile Default` or other authenticated profiles unless the user explicitly needs cookie inspection; prefer task-specific page actions and storage checks.
|
|
@@ -534,7 +568,7 @@ Stable tab ids look like `t1`, `t2`, and `t3`. Optional user labels such as `doc
|
|
|
534
568
|
| `tab new [url]` | Open a new tab. |
|
|
535
569
|
| `tab new --label <name> [url]` | Open a new tab with a user label. |
|
|
536
570
|
| `tab <t<N>|label>` | Switch to a tab by id or label. |
|
|
537
|
-
| `tab close [t<N>|label]` | Close the current tab or a referenced tab. |
|
|
571
|
+
| `tab close [t<N>|label]` | Close the current tab or a referenced tab. Generic references in workflows may say `tab close [target]`; use a stable `t<N>` id or label when you have one. |
|
|
538
572
|
|
|
539
573
|
### Snapshot
|
|
540
574
|
|
|
@@ -544,6 +578,7 @@ Stable tab ids look like `t1`, `t2`, and `t3`. Optional user labels such as `doc
|
|
|
544
578
|
| `snapshot -i` / `snapshot --interactive` | Include only interactive elements. |
|
|
545
579
|
| `snapshot -i --urls` | Include only interactive elements and link hrefs. |
|
|
546
580
|
| `snapshot -u` / `snapshot --urls` | Include href URLs for link elements. |
|
|
581
|
+
| `snapshot -C` / `snapshot --cursor` | Include cursor/focus context when upstream provides it. |
|
|
547
582
|
| `snapshot -c` / `snapshot --compact` | Remove empty structural elements. |
|
|
548
583
|
| `snapshot -d <n>` / `snapshot --depth <n>` | Limit tree depth. |
|
|
549
584
|
| `snapshot -s <sel>` / `snapshot --selector <sel>` | Scope to a CSS selector. |
|
|
@@ -562,16 +597,16 @@ When a snapshot is too large for inline output, the Pi wrapper renders a compact
|
|
|
562
597
|
| `wait --text <text>` | Wait for text to appear on the page; failures may include `inspect-after-text-assertion-failure` with a session-scoped `snapshot -i` payload. |
|
|
563
598
|
| `wait --download [path]` | Wait for a download started by a previous action and optionally save it to `path`; successful wrapper results include upstream-reported `savedFilePath`/`savedFile`, while `details.artifacts[].exists` is the wrapper's on-disk verification signal. |
|
|
564
599
|
| `wait --download [path] --timeout <ms>` | Set download-start timeout in milliseconds. In the native Pi wrapper, use `25000` ms or less per call to stay under the upstream CLI IPC budget. |
|
|
565
|
-
|
|
566
|
-
|
|
600
|
+
|
|
601
|
+
Current v0.27.0 source does not parse `wait <selector> --state hidden` / `wait <selector> --state detached` as distinct wait modes even though upstream help mentions those examples. Use `wait --fn "!document.querySelector('#spinner')"` or another explicit JavaScript predicate for disappearance/detach checks until upstream parser support exists.
|
|
567
602
|
|
|
568
603
|
### Diff, debug, and streaming
|
|
569
604
|
|
|
570
605
|
| Command | Purpose |
|
|
571
606
|
| --- | --- |
|
|
572
|
-
| `diff snapshot` | Compare current versus last snapshot. |
|
|
573
|
-
| `diff screenshot --baseline` | Compare current screenshot versus a baseline image. |
|
|
574
|
-
| `diff url <u1> <u2>` | Compare two pages. |
|
|
607
|
+
| `diff snapshot` | Compare current versus last snapshot. Use `diff snapshot --baseline <file> --selector <sel> --compact --depth <n>` when you need a saved baseline, scoped subtree, compact output, or depth bound. |
|
|
608
|
+
| `diff screenshot --baseline` | Compare current screenshot versus a baseline image. Use `diff screenshot --baseline <file> --output <file> --threshold <0-1> --selector <sel> --full` when you need a saved diff image, threshold tuning, element scope, or full-page capture. |
|
|
609
|
+
| `diff url <u1> <u2>` | Compare two pages. Use `diff url <u1> <u2> --screenshot --wait-until <strategy> --selector <sel> --compact --depth <n>` when you need screenshot comparison, navigation wait control, or scoped/compact snapshot comparison. |
|
|
575
610
|
| `trace start|stop [path]` | Record a Chrome DevTools trace. |
|
|
576
611
|
| `profiler start|stop [path]` | Record a Chrome DevTools profile. |
|
|
577
612
|
| `record start <path> [url]` | Start WebM video recording; output is written on `record stop`. Requires `ffmpeg` on `PATH` for the final encode. |
|
|
@@ -581,7 +616,7 @@ When a snapshot is too large for inline output, the Pi wrapper renders a compact
|
|
|
581
616
|
| `errors [--clear]` | View or clear page errors. |
|
|
582
617
|
| `highlight <sel>` | Highlight an element. |
|
|
583
618
|
| `inspect` | Open Chrome DevTools for the active page. |
|
|
584
|
-
| `clipboard <op> [text]` | Read/write clipboard: `read`, `write
|
|
619
|
+
| `clipboard <op> [text]` | Read/write clipboard: `clipboard read`, `clipboard write <text>`, `clipboard copy`, and `clipboard paste`. |
|
|
585
620
|
| `stream enable [--port <n>]` | Start runtime WebSocket streaming for this session. |
|
|
586
621
|
| `stream disable` | Stop runtime WebSocket streaming. |
|
|
587
622
|
| `stream status` | Show streaming status and active port. |
|
|
@@ -590,7 +625,7 @@ When a snapshot is too large for inline output, the Pi wrapper renders a compact
|
|
|
590
625
|
| `react renders start` | Start recording React render activity. |
|
|
591
626
|
| `react renders stop [--json]` | Stop render recording and print mount/re-render counts and changed details. |
|
|
592
627
|
| `react suspense [--only-dynamic] [--json]` | Classify Suspense boundaries with grouped root-cause recommendations. |
|
|
593
|
-
| `vitals [url] [--json]` | Report Core Web Vitals: LCP, CLS, TTFB, FCP, INP, plus React hydration timing when available. |
|
|
628
|
+
| `vitals [url] [--json]` | Report Core Web Vitals: LCP, CLS, TTFB, FCP, INP, plus React hydration timing when available. `web-vitals [url] [--json]` is the upstream alias. |
|
|
594
629
|
| `pushstate <url>` | Perform SPA client-side navigation; detects Next.js router pushes and falls back to history navigation events. |
|
|
595
630
|
| `removeinitscript <id>` | Remove an init script registered through upstream init-script mechanisms. |
|
|
596
631
|
|
|
@@ -600,16 +635,16 @@ Long-running or lifecycle commands should be explicitly paired with cleanup call
|
|
|
600
635
|
|
|
601
636
|
`trace` and `profiler` share upstream Chrome tracing machinery. Do not run them at the same time. The wrapper tracks owner state it observes in the current Pi session and blocks conflicting starts/stops with "wrapper believes ..." wording because direct upstream CLI use or browser restarts can desynchronize wrapper-local state.
|
|
602
637
|
|
|
603
|
-
### Batch, auth, confirmations, sessions, chat, dashboard, and setup
|
|
638
|
+
### Batch, auth, confirmations, sessions, chat, dashboard, devices, and setup
|
|
604
639
|
|
|
605
640
|
| Command | Purpose |
|
|
606
641
|
| --- | --- |
|
|
607
642
|
| `batch [--bail] ["cmd" ...]` | Execute multiple commands sequentially from args or stdin. |
|
|
608
|
-
| `auth save <name> [opts]` | Save an auth profile
|
|
643
|
+
| `auth save <name> [opts]` | Save an auth profile. Full credential form: `auth save <name> --url <url> --username <user> --password <pass>`; selector override form: `auth save <name> --username-selector <s> --password-selector <s> --submit-selector <s>`. Prefer `auth save <name> --password-stdin` with the tool `stdin` field; avoid putting passwords in `args`. |
|
|
609
644
|
| `auth login <name>` | Login using saved credentials. |
|
|
610
645
|
| `auth list` | List saved auth profiles. |
|
|
611
646
|
| `auth show <name>` | Show auth profile metadata. |
|
|
612
|
-
| `auth delete <name>` | Delete an auth profile. |
|
|
647
|
+
| `auth delete <name>` | Delete an auth profile; `auth remove <name>` is the upstream alias. |
|
|
613
648
|
| `confirm <id>` | Approve a pending action. |
|
|
614
649
|
| `deny <id>` | Deny a pending action. |
|
|
615
650
|
| `session` | Show current session name. |
|
|
@@ -619,13 +654,14 @@ Long-running or lifecycle commands should be explicitly paired with cleanup call
|
|
|
619
654
|
| `dashboard [start]` | Start the dashboard server on the default port `4848`. |
|
|
620
655
|
| `dashboard start --port <n>` | Start the dashboard on a specific port. |
|
|
621
656
|
| `dashboard stop` | Stop the dashboard server. |
|
|
657
|
+
| `device list` | List available iOS simulators. Use with `-p ios` when exercising iOS provider flows. |
|
|
622
658
|
| `install` | Install browser binaries. |
|
|
623
659
|
| `install --with-deps` | Install browser binaries plus Linux system dependencies. |
|
|
624
660
|
| `upgrade` | Upgrade `agent-browser` to the latest version. |
|
|
625
661
|
| `doctor [--fix]` | Diagnose install issues and optionally auto-clean stale files. Use `doctor --offline --quick` for a fast local-only check and `doctor --json` for structured output. |
|
|
626
662
|
| `profiles` | List available Chrome profiles. |
|
|
627
663
|
|
|
628
|
-
When these commands are invoked through the native `agent_browser` tool, structured diagnostic/status outputs are rendered as compact summaries. List-like outputs such as sessions, Chrome profiles, auth profiles, network requests, console messages, and page errors include counts and key fields; large outputs are previewed with a `Full output path:` spill file instead of dumping the entire payload into context. For `network requests`, the wrapper shows a failed-request summary split into actionable versus benign low-impact rows, then status, method, URL, resource/mime type, request id, and, when the installed upstream output includes body-like fields, bounded redacted payload, response, and failure/error snippets. Safe request IDs also produce `details.nextActions` for exact request details, actionable failed-request source lookup candidates, filtered request lists, or starting HAR capture before a repro. `network request <requestId>` can expose upstream full-detail body fields such as response bodies using the same bounded model-facing preview; its request URL stays diagnostic-only and does not overwrite `details.sessionTabTarget` for later ref guards. Header, cookie, auth, token, and other secret-like fields are not expanded in model-facing text or `details.data`; command echoes also redact `--body`, `--headers`, `--password`, proxy credentials, auth-bearing URLs, cookie/storage values, and bearer/basic credential text in positional arguments. Use upstream HAR or full raw details only when complete data is required.
|
|
664
|
+
When these commands are invoked through the native `agent_browser` tool, structured diagnostic/status outputs are rendered as compact summaries. Local inspection/setup calls (`auth save/list/show/delete/remove`, `dashboard start/stop`, `device list`, `doctor`, `install`, `upgrade`, `profiles`, `session list`, `state list/show/rename`, `state clean --older-than <days>`, `state clear --all`, `state clear -a`, and `state clear <session-name>`) are sessionless unless you explicitly pass `--session`; context-dependent calls such as root `session`, untargeted `state clear`, `auth login`, `chat`, and `state save/load` keep normal session behavior. List-like outputs such as sessions, Chrome profiles, auth profiles, network requests, console messages, and page errors include counts and key fields; large outputs are previewed with a `Full output path:` spill file instead of dumping the entire payload into context. For `network requests`, the wrapper shows a failed-request summary split into actionable versus benign low-impact rows, then status, method, URL, resource/mime type, request id, and, when the installed upstream output includes body-like fields, bounded redacted payload, response, and failure/error snippets. Safe request IDs also produce `details.nextActions` for exact request details, actionable failed-request source lookup candidates, filtered request lists, or starting HAR capture before a repro. `network request <requestId>` can expose upstream full-detail body fields such as response bodies using the same bounded model-facing preview; its request URL stays diagnostic-only and does not overwrite `details.sessionTabTarget` for later ref guards. Header, cookie, auth, token, and other secret-like fields are not expanded in model-facing text or `details.data`; command echoes also redact `--body`, `--headers`, `--password`, proxy credentials, auth-bearing URLs, cookie/storage values, and bearer/basic credential text in positional arguments. Use upstream HAR or full raw details only when complete data is required.
|
|
629
665
|
|
|
630
666
|
## Important global flags, config, and environment
|
|
631
667
|
|
|
@@ -650,12 +686,13 @@ When these commands are invoked through the native `agent_browser` tool, structu
|
|
|
650
686
|
- `--proxy-bypass <hosts>`: proxy bypass hosts. Environments: `AGENT_BROWSER_PROXY_BYPASS`, `NO_PROXY`.
|
|
651
687
|
- `--ignore-https-errors`: ignore HTTPS certificate errors. Environment: `AGENT_BROWSER_IGNORE_HTTPS_ERRORS`.
|
|
652
688
|
- `--allow-file-access`: allow `file://` URLs to access local files. Environment: `AGENT_BROWSER_ALLOW_FILE_ACCESS`.
|
|
653
|
-
- `--headed`: show the browser window. Environment: `AGENT_BROWSER_HEADED`.
|
|
689
|
+
- `--headed`: ask upstream to show the browser window. Environment: `AGENT_BROWSER_HEADED`. Use it on the first launch, normally with `sessionMode: "fresh"` when changing an existing managed session; verify visibility with screenshot/tab evidence because the wrapper cannot yet prove the OS window is visible to the user.
|
|
654
690
|
- `--cdp <port>`: connect through Chrome DevTools Protocol.
|
|
655
691
|
- `--color-scheme <scheme>`: `dark`, `light`, or `no-preference`. Environment: `AGENT_BROWSER_COLOR_SCHEME`.
|
|
656
692
|
- `--download-path <path>`: default browser download directory. Environment: `AGENT_BROWSER_DOWNLOAD_PATH`.
|
|
657
693
|
- `--engine <name>`: browser engine, `chrome` by default or `lightpanda`. Environment: `AGENT_BROWSER_ENGINE`.
|
|
658
694
|
- `--no-auto-dialog`: disable automatic dismissal of alert/beforeunload dialogs. Environment: `AGENT_BROWSER_NO_AUTO_DIALOG`.
|
|
695
|
+
- `--idle-timeout <ms>`: close idle sessions after the requested idle window when upstream owns that session lifecycle. The wrapper also sets `AGENT_BROWSER_IDLE_TIMEOUT_MS` for its managed-session backstop.
|
|
659
696
|
|
|
660
697
|
### Output, provider, policy, and AI flags
|
|
661
698
|
|
|
@@ -672,7 +709,7 @@ When these commands are invoked through the native `agent_browser` tool, structu
|
|
|
672
709
|
- `--confirm-interactive`: interactive confirmations; auto-denies when stdin is not a TTY. Environment: `AGENT_BROWSER_CONFIRM_INTERACTIVE`.
|
|
673
710
|
- `-p, --provider <name>`: provider such as `ios`, `browserbase`, `kernel`, `browseruse`, `browserless`, or `agentcore`. Environment: `AGENT_BROWSER_PROVIDER`.
|
|
674
711
|
- `--device <name>`: iOS device name. Environment: `AGENT_BROWSER_IOS_DEVICE`.
|
|
675
|
-
- Provider-specific iOS examples from upstream include `agent-browser -p ios device list`, `agent-browser -p ios swipe up`, and `agent-browser -p ios tap @e1`; in pi, pass those tokens through `args` rather than bash. iOS requires external Xcode/Appium setup, and cloud providers (`browserbase`, `kernel`, `browseruse`, `browserless`, `agentcore`) require their upstream accounts, credentials, and provider-specific environment variables. The wrapper forwards provider flags/env and stays thin; it does not emulate provider setup or cloud browser behavior.
|
|
712
|
+
- Provider-specific iOS examples from upstream include `agent-browser -p ios device list`, `agent-browser -p ios swipe up`, and `agent-browser -p ios tap @e1`; in pi, pass those tokens through `args` rather than bash. iOS requires external Xcode/Appium setup, and cloud providers (`browserbase`, `kernel`, `browseruse`, `browserless`, `agentcore`) require their upstream accounts, credentials, and provider-specific environment variables. Common forwarded provider variables include `BROWSERBASE_API_KEY`, `BROWSERBASE_PROJECT_ID`, `BROWSERLESS_API_KEY`, `BROWSERLESS_API_URL`, `BROWSERLESS_BROWSER_TYPE`, `BROWSERLESS_STEALTH`, `BROWSERLESS_TTL`, `BROWSER_USE_API_KEY`, `KERNEL_API_KEY`, `KERNEL_HEADLESS`, `KERNEL_STEALTH`, `KERNEL_TIMEOUT_SECONDS`, `KERNEL_PROFILE_NAME`, `AGENTCORE_API_KEY`, `AGENTCORE_REGION`, `AGENTCORE_BROWSER_ID`, `AGENTCORE_PROFILE_ID`, `AGENTCORE_SESSION_TIMEOUT`, plus AWS names used by AgentCore such as `AWS_PROFILE`, `AWS_ACCESS_KEY_ID`, and `AWS_SECRET_ACCESS_KEY`. The wrapper forwards provider flags/env and stays thin; it does not emulate provider setup or cloud browser behavior.
|
|
676
713
|
- `--model <name>`: AI model for `chat`. Environment: `AI_GATEWAY_MODEL`.
|
|
677
714
|
- `-v, --verbose`: show tool commands and raw output.
|
|
678
715
|
- `-q, --quiet`: show only AI text responses.
|
|
@@ -690,7 +727,7 @@ When these commands are invoked through the native `agent_browser` tool, structu
|
|
|
690
727
|
|
|
691
728
|
Use `--config <path>` to load a specific config file. Boolean flags accept optional `true` or `false` values, such as `--headed false`, to override config. Browser extensions from user and project configs are merged rather than replaced.
|
|
692
729
|
|
|
693
|
-
Other useful environment variables include `AGENT_BROWSER_DEFAULT_TIMEOUT`, `AGENT_BROWSER_STREAM_PORT`, `AGENT_BROWSER_IDLE_TIMEOUT_MS`, `AGENT_BROWSER_ENCRYPTION_KEY`, `AGENT_BROWSER_STATE_EXPIRE_DAYS`, `AGENT_BROWSER_IOS_DEVICE`, `AGENT_BROWSER_IOS_UDID`, `AI_GATEWAY_URL`,
|
|
730
|
+
Other useful environment variables include `AGENT_BROWSER_DEFAULT_TIMEOUT`, `AGENT_BROWSER_STREAM_PORT`, `AGENT_BROWSER_IDLE_TIMEOUT_MS`, `AGENT_BROWSER_ENCRYPTION_KEY`, `AGENT_BROWSER_STATE_EXPIRE_DAYS`, `AGENT_BROWSER_IOS_DEVICE`, `AGENT_BROWSER_IOS_UDID`, `AI_GATEWAY_URL`, `AI_GATEWAY_API_KEY`, the provider credential names listed above, and AWS credential names when using AgentCore. The upstream child also receives every parent variable whose name starts with `AGENT_BROWSER_`, `AGENTCORE_`, `AI_GATEWAY_`, `BROWSERBASE_`, `BROWSERLESS_`, `BROWSER_USE_`, `KERNEL_`, or `XDG_`, plus the explicit inherited-name allowlist in `buildAgentBrowserProcessEnv` (`extensions/agent-browser/lib/process.ts`).
|
|
694
731
|
|
|
695
732
|
## Wrapper-specific behavior worth knowing
|
|
696
733
|
|
|
@@ -717,20 +754,48 @@ Other useful environment variables include `AGENT_BROWSER_DEFAULT_TIMEOUT`, `AGE
|
|
|
717
754
|
|
|
718
755
|
This generated block is review data for maintainers. The human-authored reference sections above remain the readable command guide.
|
|
719
756
|
|
|
757
|
+
#### Source evidence
|
|
758
|
+
- repository: `vercel-labs/agent-browser`
|
|
759
|
+
- upstream HEAD: `4ad284890cb59564af603e6de403dd75dd19e832`
|
|
760
|
+
- upstream package version: `0.27.0`
|
|
761
|
+
- inspected: `agent-browser --version`
|
|
762
|
+
- inspected: `agent-browser --help`
|
|
763
|
+
- inspected: `selected agent-browser <command> --help output`
|
|
764
|
+
- inspected: `README.md`
|
|
765
|
+
- inspected: `CHANGELOG.md`
|
|
766
|
+
- inspected: `agent-browser.schema.json`
|
|
767
|
+
- inspected: `cli/src/commands.rs`
|
|
768
|
+
- inspected: `cli/src/flags.rs`
|
|
769
|
+
|
|
720
770
|
#### Upstream help commands sampled
|
|
721
771
|
- root help: `agent-browser --help`
|
|
722
772
|
- skills help: `agent-browser skills --help`
|
|
723
773
|
- skills list: `agent-browser skills list`
|
|
724
774
|
- core skill full: `agent-browser skills get core --full`
|
|
775
|
+
- open help: `agent-browser open --help`
|
|
776
|
+
- click help: `agent-browser click --help`
|
|
777
|
+
- key help: `agent-browser key --help`
|
|
778
|
+
- scroll help: `agent-browser scroll --help`
|
|
779
|
+
- scrollinto help: `agent-browser scrollinto --help`
|
|
780
|
+
- keydown help: `agent-browser keydown --help`
|
|
781
|
+
- keyup help: `agent-browser keyup --help`
|
|
782
|
+
- get help: `agent-browser get --help`
|
|
783
|
+
- is help: `agent-browser is --help`
|
|
784
|
+
- mouse help: `agent-browser mouse --help`
|
|
785
|
+
- set help: `agent-browser set --help`
|
|
725
786
|
- tab help: `agent-browser tab --help`
|
|
726
787
|
- snapshot help: `agent-browser snapshot --help`
|
|
788
|
+
- eval help: `agent-browser eval --help`
|
|
727
789
|
- wait help: `agent-browser wait --help`
|
|
728
790
|
- screenshot help: `agent-browser screenshot --help`
|
|
791
|
+
- pdf help: `agent-browser pdf --help`
|
|
792
|
+
- close help: `agent-browser close --help`
|
|
729
793
|
- find help: `agent-browser find --help`
|
|
730
794
|
- network help: `agent-browser network --help`
|
|
731
795
|
- cookies help: `agent-browser cookies --help`
|
|
732
796
|
- storage help: `agent-browser storage --help`
|
|
733
797
|
- state help: `agent-browser state --help`
|
|
798
|
+
- session help: `agent-browser session --help`
|
|
734
799
|
- frame help: `agent-browser frame --help`
|
|
735
800
|
- dialog help: `agent-browser dialog --help`
|
|
736
801
|
- window help: `agent-browser window --help`
|
|
@@ -745,14 +810,23 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
745
810
|
- trace help: `agent-browser trace --help`
|
|
746
811
|
- profiler help: `agent-browser profiler --help`
|
|
747
812
|
- record help: `agent-browser record --help`
|
|
813
|
+
- console help: `agent-browser console --help`
|
|
814
|
+
- errors help: `agent-browser errors --help`
|
|
815
|
+
- clipboard help: `agent-browser clipboard --help`
|
|
816
|
+
- tap help: `agent-browser tap --help`
|
|
817
|
+
- swipe help: `agent-browser swipe --help`
|
|
818
|
+
- device help: `agent-browser device --help`
|
|
819
|
+
- install help: `agent-browser install --help`
|
|
820
|
+
- upgrade help: `agent-browser upgrade --help`
|
|
821
|
+
- profiles help: `agent-browser profiles --help`
|
|
748
822
|
|
|
749
823
|
#### Inventory sections
|
|
750
|
-
- Built-in skills:
|
|
751
|
-
- Core page, element, navigation, and extraction commands:
|
|
752
|
-
- Sessions, state, tabs, frames, dialogs, and windows:
|
|
753
|
-
- Network, storage, artifacts, diagnostics, and performance:
|
|
754
|
-
- Batch, auth, confirmations, setup, dashboard, and AI commands:
|
|
755
|
-
- Global flags, config, providers, policy, and environment:
|
|
824
|
+
- Built-in skills: 13 human-doc token(s), 13 upstream token(s)
|
|
825
|
+
- Core page, element, navigation, and extraction commands: 74 human-doc token(s), 74 upstream token(s)
|
|
826
|
+
- Sessions, state, tabs, frames, dialogs, and windows: 20 human-doc token(s), 16 upstream token(s)
|
|
827
|
+
- Network, storage, artifacts, diagnostics, and performance: 42 human-doc token(s), 51 upstream token(s)
|
|
828
|
+
- Batch, auth, confirmations, setup, dashboard, devices, and AI commands: 24 human-doc token(s), 24 upstream token(s)
|
|
829
|
+
- Global flags, config, providers, policy, and environment: 117 human-doc token(s), 90 upstream token(s)
|
|
756
830
|
|
|
757
831
|
#### Human-authored doc tokens required
|
|
758
832
|
##### Built-in skills
|
|
@@ -760,20 +834,30 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
760
834
|
- `skills get core`
|
|
761
835
|
- `skills get core --full`
|
|
762
836
|
- `skills get <name>`
|
|
837
|
+
- `skills get <name> --full`
|
|
838
|
+
- `skills get --all`
|
|
763
839
|
- `skills get electron`
|
|
764
840
|
- `skills get slack`
|
|
765
841
|
- `skills get dogfood`
|
|
766
842
|
- `skills get vercel-sandbox`
|
|
767
843
|
- `skills get agentcore`
|
|
768
844
|
- `skills path [name]`
|
|
845
|
+
- `AGENT_BROWSER_SKILLS_DIR`
|
|
769
846
|
|
|
770
847
|
##### Core page, element, navigation, and extraction commands
|
|
848
|
+
- `open [url]`
|
|
771
849
|
- `open <url>`
|
|
850
|
+
- `goto <url>`
|
|
851
|
+
- `navigate <url>`
|
|
772
852
|
- `click <sel>`
|
|
853
|
+
- `click <sel> --new-tab`
|
|
773
854
|
- `dblclick <sel>`
|
|
774
855
|
- `type <sel> <text>`
|
|
775
856
|
- `fill <sel> <text>`
|
|
776
857
|
- `press <key>`
|
|
858
|
+
- `key <key>`
|
|
859
|
+
- `keydown <key>`
|
|
860
|
+
- `keyup <key>`
|
|
777
861
|
- `keyboard type <text>`
|
|
778
862
|
- `keyboard inserttext <text>`
|
|
779
863
|
- `keydown Shift`
|
|
@@ -787,33 +871,70 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
787
871
|
- `upload <sel> <files...>`
|
|
788
872
|
- `download <sel> <path>`
|
|
789
873
|
- `scroll <dir> [px]`
|
|
874
|
+
- `scroll <dir> [px] --selector <sel>`
|
|
790
875
|
- `scrollintoview <sel>`
|
|
876
|
+
- `scrollinto <sel>`
|
|
791
877
|
- `wait <sel|ms>`
|
|
878
|
+
- `wait --url <pattern>`
|
|
879
|
+
- `wait --load <state>`
|
|
880
|
+
- `wait --fn <expression>`
|
|
881
|
+
- `wait --text <text>`
|
|
882
|
+
- `wait --download [path]`
|
|
883
|
+
- `screenshot [selector] [path]`
|
|
792
884
|
- `screenshot [path]`
|
|
793
885
|
- `screenshot --full`
|
|
794
886
|
- `screenshot --annotate`
|
|
795
887
|
- `pdf <path>`
|
|
796
888
|
- `snapshot`
|
|
889
|
+
- `snapshot --cursor`
|
|
890
|
+
- `snapshot --interactive`
|
|
891
|
+
- `snapshot --urls`
|
|
892
|
+
- `snapshot --compact`
|
|
893
|
+
- `snapshot --depth <n>`
|
|
894
|
+
- `snapshot --selector <sel>`
|
|
797
895
|
- `eval <js>`
|
|
896
|
+
- `eval --stdin`
|
|
897
|
+
- `eval -b <base64>`
|
|
798
898
|
- `connect <port|url>`
|
|
799
899
|
- `close [--all]`
|
|
900
|
+
- `quit`
|
|
901
|
+
- `exit`
|
|
800
902
|
- `back`
|
|
801
903
|
- `forward`
|
|
802
904
|
- `reload`
|
|
803
905
|
- `pushstate <url>`
|
|
804
906
|
- `get <what> [selector]`
|
|
907
|
+
- `get cdp-url`
|
|
908
|
+
- `get box <selector>`
|
|
909
|
+
- `get styles <selector>`
|
|
805
910
|
- `is <what> <selector>`
|
|
806
911
|
- `find <locator> <value> <action>`
|
|
912
|
+
- `find first <sel>`
|
|
913
|
+
- `find last <sel>`
|
|
914
|
+
- `find nth <n> <sel>`
|
|
915
|
+
- `find role <role> --name <name>`
|
|
916
|
+
- `find ... --exact`
|
|
807
917
|
- `mouse <action> [args]`
|
|
808
918
|
- `set <setting> [value]`
|
|
919
|
+
- `set media <features>`
|
|
920
|
+
- `tap <selector>`
|
|
921
|
+
- `swipe <direction> [distance]`
|
|
809
922
|
|
|
810
923
|
##### Sessions, state, tabs, frames, dialogs, and windows
|
|
811
924
|
- `session`
|
|
812
925
|
- `session list`
|
|
813
926
|
- `state save <path>`
|
|
814
927
|
- `state load <path>`
|
|
928
|
+
- `state list`
|
|
929
|
+
- `state show <filename>`
|
|
930
|
+
- `state rename <old-name> <new-name>`
|
|
931
|
+
- `state clear [session-name] [--all]`
|
|
932
|
+
- `state clear -a`
|
|
933
|
+
- `state clean --older-than <days>`
|
|
815
934
|
- `tab list`
|
|
935
|
+
- `tab new [url]`
|
|
816
936
|
- `tab new --label <name> [url]`
|
|
937
|
+
- `tab close [target]`
|
|
817
938
|
- `tab <t<N>|label>`
|
|
818
939
|
- `frame <selector|main>`
|
|
819
940
|
- `dialog accept [text]`
|
|
@@ -824,13 +945,21 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
824
945
|
##### Network, storage, artifacts, diagnostics, and performance
|
|
825
946
|
- `network <action>`
|
|
826
947
|
- `network route <url> [--abort|--body <json>] [--resource-type <csv>]`
|
|
948
|
+
- `network unroute [url]`
|
|
949
|
+
- `network requests [--clear] [--filter <pattern>] [--type <csv>] [--method <method>] [--status <code|range>]`
|
|
827
950
|
- `network request <requestId>`
|
|
951
|
+
- `network har start`
|
|
952
|
+
- `network har stop [path]`
|
|
828
953
|
- `cookies [get|set|clear]`
|
|
954
|
+
- `cookies set <name> <value> --url <url> --domain <domain> --path <path> --httpOnly --secure --sameSite <Strict|Lax|None> --expires <timestamp>`
|
|
829
955
|
- `cookies set --curl <file>`
|
|
830
956
|
- `storage <local|session>`
|
|
831
957
|
- `diff snapshot`
|
|
958
|
+
- `diff snapshot --baseline <file> --selector <sel> --compact --depth <n>`
|
|
832
959
|
- `diff screenshot --baseline`
|
|
960
|
+
- `diff screenshot --baseline <file> --output <file> --threshold <0-1> --selector <sel> --full`
|
|
833
961
|
- `diff url <u1> <u2>`
|
|
962
|
+
- `diff url <u1> <u2> --screenshot --wait-until <strategy> --selector <sel> --compact --depth <n>`
|
|
834
963
|
- `trace start|stop [path]`
|
|
835
964
|
- `profiler start|stop [path]`
|
|
836
965
|
- `record start <path> [url]`
|
|
@@ -841,6 +970,10 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
841
970
|
- `highlight <sel>`
|
|
842
971
|
- `inspect`
|
|
843
972
|
- `clipboard <op> [text]`
|
|
973
|
+
- `clipboard read`
|
|
974
|
+
- `clipboard write <text>`
|
|
975
|
+
- `clipboard copy`
|
|
976
|
+
- `clipboard paste`
|
|
844
977
|
- `stream enable [--port <n>]`
|
|
845
978
|
- `stream disable`
|
|
846
979
|
- `stream status`
|
|
@@ -850,21 +983,27 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
850
983
|
- `react renders stop [--json]`
|
|
851
984
|
- `react suspense [--only-dynamic] [--json]`
|
|
852
985
|
- `vitals [url] [--json]`
|
|
986
|
+
- `web-vitals [url] [--json]`
|
|
853
987
|
- `removeinitscript <id>`
|
|
854
988
|
|
|
855
|
-
##### Batch, auth, confirmations, setup, dashboard, and AI commands
|
|
989
|
+
##### Batch, auth, confirmations, setup, dashboard, devices, and AI commands
|
|
856
990
|
- `batch [--bail]`
|
|
857
991
|
- `auth save <name>`
|
|
992
|
+
- `auth save <name> --url <url> --username <user> --password <pass>`
|
|
993
|
+
- `auth save <name> --username-selector <s> --password-selector <s> --submit-selector <s>`
|
|
858
994
|
- `auth save <name> --password-stdin`
|
|
859
995
|
- `auth login <name>`
|
|
860
996
|
- `auth list`
|
|
861
997
|
- `auth show <name>`
|
|
862
998
|
- `auth delete <name>`
|
|
999
|
+
- `auth remove <name>`
|
|
863
1000
|
- `confirm <id>`
|
|
864
1001
|
- `deny <id>`
|
|
865
1002
|
- `chat <message>`
|
|
1003
|
+
- `dashboard [start]`
|
|
866
1004
|
- `dashboard start --port <n>`
|
|
867
1005
|
- `dashboard stop`
|
|
1006
|
+
- `device list`
|
|
868
1007
|
- `install`
|
|
869
1008
|
- `install --with-deps`
|
|
870
1009
|
- `upgrade`
|
|
@@ -962,6 +1101,7 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
962
1101
|
- `AGENT_BROWSER_DEBUG`
|
|
963
1102
|
- `AGENT_BROWSER_CONFIG`
|
|
964
1103
|
- `AGENT_BROWSER_DEFAULT_TIMEOUT`
|
|
1104
|
+
- `--idle-timeout <ms>`
|
|
965
1105
|
- `AGENT_BROWSER_STREAM_PORT`
|
|
966
1106
|
- `AGENT_BROWSER_IDLE_TIMEOUT_MS`
|
|
967
1107
|
- `AGENT_BROWSER_ENCRYPTION_KEY`
|
|
@@ -969,11 +1109,34 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
969
1109
|
- `AGENT_BROWSER_IOS_UDID`
|
|
970
1110
|
- `AI_GATEWAY_URL`
|
|
971
1111
|
- `AI_GATEWAY_API_KEY`
|
|
1112
|
+
- `BROWSERBASE_API_KEY`
|
|
1113
|
+
- `BROWSERBASE_PROJECT_ID`
|
|
1114
|
+
- `BROWSERLESS_API_KEY`
|
|
1115
|
+
- `BROWSERLESS_API_URL`
|
|
1116
|
+
- `BROWSERLESS_BROWSER_TYPE`
|
|
1117
|
+
- `BROWSERLESS_STEALTH`
|
|
1118
|
+
- `BROWSERLESS_TTL`
|
|
1119
|
+
- `BROWSER_USE_API_KEY`
|
|
1120
|
+
- `KERNEL_API_KEY`
|
|
1121
|
+
- `KERNEL_HEADLESS`
|
|
1122
|
+
- `KERNEL_STEALTH`
|
|
1123
|
+
- `KERNEL_TIMEOUT_SECONDS`
|
|
1124
|
+
- `KERNEL_PROFILE_NAME`
|
|
1125
|
+
- `AGENTCORE_API_KEY`
|
|
1126
|
+
- `AGENTCORE_REGION`
|
|
1127
|
+
- `AGENTCORE_BROWSER_ID`
|
|
1128
|
+
- `AGENTCORE_PROFILE_ID`
|
|
1129
|
+
- `AGENTCORE_SESSION_TIMEOUT`
|
|
1130
|
+
- `AWS_PROFILE`
|
|
1131
|
+
- `AWS_ACCESS_KEY_ID`
|
|
1132
|
+
- `AWS_SECRET_ACCESS_KEY`
|
|
972
1133
|
|
|
973
1134
|
#### Upstream help tokens expected
|
|
974
1135
|
##### Built-in skills
|
|
975
1136
|
- root help: `skills get core --full`
|
|
976
1137
|
- skills help: `get <name> --full`
|
|
1138
|
+
- skills help: `get --all`
|
|
1139
|
+
- skills help: `AGENT_BROWSER_SKILLS_DIR`
|
|
977
1140
|
- skills list: `core`
|
|
978
1141
|
- skills list: `electron`
|
|
979
1142
|
- skills list: `slack`
|
|
@@ -985,12 +1148,18 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
985
1148
|
- core skill full: `agent-browser state save ./auth.json`
|
|
986
1149
|
|
|
987
1150
|
##### Core page, element, navigation, and extraction commands
|
|
1151
|
+
- open help: `open [url]`
|
|
1152
|
+
- open help: `aliases still require a URL.`
|
|
988
1153
|
- root help: `open <url>`
|
|
989
1154
|
- root help: `click <sel>`
|
|
1155
|
+
- click help: `--new-tab`
|
|
990
1156
|
- root help: `dblclick <sel>`
|
|
991
1157
|
- root help: `type <sel> <text>`
|
|
992
1158
|
- root help: `fill <sel> <text>`
|
|
993
1159
|
- root help: `press <key>`
|
|
1160
|
+
- key help: `Aliases: key`
|
|
1161
|
+
- keydown help: `keydown <key>`
|
|
1162
|
+
- keyup help: `keyup <key>`
|
|
994
1163
|
- root help: `keyboard type <text>`
|
|
995
1164
|
- root help: `keyboard inserttext <text>`
|
|
996
1165
|
- root help: `hover <sel>`
|
|
@@ -1002,35 +1171,71 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
1002
1171
|
- root help: `upload <sel> <files...>`
|
|
1003
1172
|
- root help: `download <sel> <path>`
|
|
1004
1173
|
- root help: `scroll <dir> [px]`
|
|
1174
|
+
- scroll help: `--selector <sel>`
|
|
1005
1175
|
- root help: `scrollintoview <sel>`
|
|
1176
|
+
- scrollinto help: `Aliases: scrollinto`
|
|
1006
1177
|
- root help: `wait <sel|ms>`
|
|
1178
|
+
- wait help: `--url <pattern>`
|
|
1179
|
+
- wait help: `--load <state>`
|
|
1180
|
+
- wait help: `--fn <expression>`
|
|
1181
|
+
- wait help: `--text <text>`
|
|
1182
|
+
- wait help: `--download [path]`
|
|
1007
1183
|
- root help: `screenshot [path]`
|
|
1184
|
+
- screenshot help: `screenshot [selector] [path]`
|
|
1008
1185
|
- root help: `pdf <path>`
|
|
1186
|
+
- pdf help: `Save page as PDF`
|
|
1009
1187
|
- root help: `snapshot`
|
|
1188
|
+
- snapshot help: `--interactive`
|
|
1189
|
+
- snapshot help: `--urls`
|
|
1190
|
+
- snapshot help: `--compact`
|
|
1191
|
+
- snapshot help: `--depth <n>`
|
|
1192
|
+
- snapshot help: `--selector <sel>`
|
|
1010
1193
|
- root help: `eval <js>`
|
|
1194
|
+
- eval help: `--stdin`
|
|
1195
|
+
- eval help: `-b, --base64`
|
|
1011
1196
|
- root help: `connect <port|url>`
|
|
1012
1197
|
- root help: `close [--all]`
|
|
1198
|
+
- close help: `Aliases: quit, exit`
|
|
1013
1199
|
- root help: `back`
|
|
1014
1200
|
- root help: `forward`
|
|
1015
1201
|
- root help: `reload`
|
|
1016
1202
|
- root help: `pushstate <url>`
|
|
1017
1203
|
- root help: `Get Info: agent-browser get <what> [selector]`
|
|
1204
|
+
- get help: `box <selector>`
|
|
1205
|
+
- get help: `styles <selector>`
|
|
1206
|
+
- get help: `cdp-url`
|
|
1018
1207
|
- root help: `Check State: agent-browser is <what> <selector>`
|
|
1019
1208
|
- root help: `Find Elements: agent-browser find <locator> <value> <action> [text]`
|
|
1209
|
+
- find help: `first <selector>`
|
|
1210
|
+
- find help: `last <selector>`
|
|
1211
|
+
- find help: `nth <index> <selector>`
|
|
1212
|
+
- find help: `--name <name>`
|
|
1213
|
+
- find help: `--exact`
|
|
1020
1214
|
- root help: `Mouse: agent-browser mouse <action> [args]`
|
|
1021
1215
|
- root help: `Browser Settings: agent-browser set <setting> [value]`
|
|
1216
|
+
- set help: `media [dark|light]`
|
|
1022
1217
|
- keyboard help: `type <text>`
|
|
1023
1218
|
- keyboard help: `inserttext <text>`
|
|
1024
1219
|
- screenshot help: `--full, -f`
|
|
1025
1220
|
- screenshot help: `--annotate`
|
|
1026
1221
|
- find help: `role <role>`
|
|
1027
1222
|
- find help: `testid <id>`
|
|
1223
|
+
- tap help: `tap <selector>`
|
|
1224
|
+
- swipe help: `swipe <direction> [distance]`
|
|
1028
1225
|
|
|
1029
1226
|
##### Sessions, state, tabs, frames, dialogs, and windows
|
|
1030
1227
|
- root help: `session list`
|
|
1031
1228
|
- state help: `save <path>`
|
|
1032
1229
|
- state help: `load <path>`
|
|
1230
|
+
- state help: `list`
|
|
1231
|
+
- state help: `show <filename>`
|
|
1232
|
+
- state help: `rename <old-name> <new-name>`
|
|
1233
|
+
- state help: `clear [session-name] [--all]`
|
|
1234
|
+
- state help: `agent-browser state clear --all`
|
|
1235
|
+
- state help: `clean --older-than <days>`
|
|
1236
|
+
- tab help: `new [url]`
|
|
1033
1237
|
- tab help: `new --label <name> [url]`
|
|
1238
|
+
- tab help: `close [t<N>|label]`
|
|
1034
1239
|
- tab help: `Stable tab ids`
|
|
1035
1240
|
- frame help: `frame <selector|main>`
|
|
1036
1241
|
- dialog help: `dialog <accept|dismiss|status> [text]`
|
|
@@ -1039,6 +1244,9 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
1039
1244
|
##### Network, storage, artifacts, diagnostics, and performance
|
|
1040
1245
|
- root help: `network <action>`
|
|
1041
1246
|
- root help: `--resource-type <csv>`
|
|
1247
|
+
- network help: `unroute [url]`
|
|
1248
|
+
- network help: `network har start`
|
|
1249
|
+
- network help: `network har stop ./capture.har`
|
|
1042
1250
|
- root help: `cookies [get|set|clear]`
|
|
1043
1251
|
- root help: `cookies set --curl <file>`
|
|
1044
1252
|
- root help: `storage <local|session>`
|
|
@@ -1053,6 +1261,10 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
1053
1261
|
- root help: `highlight <sel>`
|
|
1054
1262
|
- root help: `inspect`
|
|
1055
1263
|
- root help: `clipboard <op> [text]`
|
|
1264
|
+
- clipboard help: `read`
|
|
1265
|
+
- clipboard help: `write <text>`
|
|
1266
|
+
- clipboard help: `copy`
|
|
1267
|
+
- clipboard help: `paste`
|
|
1056
1268
|
- root help: `stream enable [--port <n>]`
|
|
1057
1269
|
- root help: `stream disable`
|
|
1058
1270
|
- root help: `stream status`
|
|
@@ -1063,15 +1275,26 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
1063
1275
|
- root help: `react suspense [--only-dynamic] [--json]`
|
|
1064
1276
|
- root help: `vitals [url] [--json]`
|
|
1065
1277
|
- root help: `removeinitscript <id>`
|
|
1278
|
+
- network help: `requests [options]`
|
|
1279
|
+
- network help: `--type <types>`
|
|
1280
|
+
- network help: `--method <method>`
|
|
1281
|
+
- network help: `--status <code>`
|
|
1066
1282
|
- network help: `request <requestId>`
|
|
1067
1283
|
- network help: `har <start|stop>`
|
|
1068
1284
|
- storage help: `set <key> <value>`
|
|
1285
|
+
- diff help: `diff snapshot [options]`
|
|
1286
|
+
- diff help: `--baseline <f>`
|
|
1287
|
+
- diff help: `--output <file>`
|
|
1288
|
+
- diff help: `--threshold <0-1>`
|
|
1289
|
+
- diff help: `--wait-until <strategy>`
|
|
1069
1290
|
- diff help: `diff screenshot --baseline <f>`
|
|
1070
1291
|
- trace help: `trace <operation> [path]`
|
|
1071
1292
|
- profiler help: `--categories <list>`
|
|
1072
1293
|
- record help: `record restart <path.webm> [url]`
|
|
1294
|
+
- console help: `--clear`
|
|
1295
|
+
- errors help: `--clear`
|
|
1073
1296
|
|
|
1074
|
-
##### Batch, auth, confirmations, setup, dashboard, and AI commands
|
|
1297
|
+
##### Batch, auth, confirmations, setup, dashboard, devices, and AI commands
|
|
1075
1298
|
- root help: `batch [--bail]`
|
|
1076
1299
|
- root help: `auth save <name>`
|
|
1077
1300
|
- root help: `auth login <name>`
|
|
@@ -1079,12 +1302,19 @@ This generated block is review data for maintainers. The human-authored referenc
|
|
|
1079
1302
|
- root help: `deny <id>`
|
|
1080
1303
|
- root help: `chat <message>`
|
|
1081
1304
|
- root help: `dashboard start --port <n>`
|
|
1305
|
+
- device help: `device list`
|
|
1082
1306
|
- root help: `install --with-deps`
|
|
1083
1307
|
- root help: `upgrade`
|
|
1084
1308
|
- root help: `doctor [--fix]`
|
|
1085
1309
|
- root help: `profiles`
|
|
1086
1310
|
- batch help: `--bail`
|
|
1311
|
+
- auth help: `--url <url>`
|
|
1312
|
+
- auth help: `--username <user>`
|
|
1313
|
+
- auth help: `--password <pass>`
|
|
1087
1314
|
- auth help: `--password-stdin`
|
|
1315
|
+
- auth help: `--username-selector <s>`
|
|
1316
|
+
- auth help: `--password-selector <s>`
|
|
1317
|
+
- auth help: `--submit-selector <s>`
|
|
1088
1318
|
- dashboard help: `dashboard [start|stop] [options]`
|
|
1089
1319
|
- chat help: `chat <message>`
|
|
1090
1320
|
- doctor help: `--offline`
|