Browser TraceSAFE
Browserbase's official collection of agent skills to access the web.
Overview
Browserbase's official collection of agent skills to access the web.
45d21dc75974OBSERVED · 2026-10-24What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: browser-trace description: Capture a full DevTools-protocol trace of any browser automation — CDP firehose, screenshots, and DOM dumps — then bisect the stream into per-page searchable buckets. Use when the user wants to debug a failed run, audit network/console/DOM activity, attach a trace to an in-progress session, or feed structured per-page summaries back into an agent loop so its next iteration learns from the last one. compatibility: "Requires Node 18+, the browse CLI (`npm install -g browse`) with `browse cdp`, and optionally `jq` for ad-hoc querying of the bisected JSONL files. For remote Browserbase sessions, also requires `BROWSERBASE_API_KEY`. The skill scripts themselves use only the Node standard library — no `npm install` step." license: MIT allowed-tools: Bash, Read, Grep --- # Browser Trace Attach a **second, read-only CDP client** to a browser session that is already being driven by your main automation. The trace records the full DevTools firehose to NDJSON, polls for screenshots and DOM dumps in parallel, and slices everything into a directory tree that bash tools can search. This skill does **not** drive pages — it only listens. Pair it with the `browser` skill, `browse`, Stagehand, Playwright, or anything else that speaks CDP. ## When to use - The user wants to debug a browser-automation run (failing form, missing element, hung navigation, JS exception). - The user has a running automation and wants to attach a trace mid-flight without restarting it. - The user wants to split a CDP firehose into network / console / DOM / page buckets. - The user wants screenshots + DOM snapshots over time, joined to CDP events by timestamp. If the user just wants to **drive** the browser, use the `browser` skill instead. ## Setup check ```bash node --version # require Node 18+ which browse || npm install -g browse which jq || true # optional — used only for ad-hoc querying ``` Verify `browse cdp` exists: ```bash browse --help | grep -q "^\s*cdp " || echo "browse cdp not available — update browse" ``` ## How it works Every Chrome DevTools target accepts **multiple concurrent CDP clients**. Your main automation is one client; this skill adds a second one that only enables observation domains (Network, Console, Runtime, Log, Page) and never sends action commands. The tracer has three pieces: 1. **Firehose**: `browse cdp <target>` streams every CDP event as one JSON object per line to `cdp/raw.ndjson`. 2. **Sampler**: a polling loop calls `browse screenshot --cdp <target> --path <file>` and `browse get html body --cdp <target>` on an interval (default 2s). The helper passes `--cdp` when it samples so it can attach to the traced target from its own process; once a browse daemon session is attached to a CDP target, follow-up commands in that session do not need to repeat `--cdp`. 3. **Bisector**: after the run, `bisect-cdp.mjs` walks `raw.ndjson` once, slices it into per-bucket JSONL files keyed by CDP method, and additionally bisects per page using top-level `Page.frameNavigated` events as boundaries. ## Quickstart ### Local Chrome ```bash # 1. Launch Chrome with a debugger port (any user-data-dir keeps it isolated). "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --remote-debugging-port=9222 \ --user-data-dir=/tmp/chrome-o11y \ about:blank & # 2. Start the tracer. node scripts/start-capture.mjs 9222 my-run # 3. Run your main automation against port 9222. browse open https://example.com --cdp 9222 # ...whatever the run does... # 4. Stop and bisect. node scripts/stop-capture.mjs my-run node scripts/bisect-cdp.mjs my-run ``` ### Browserbase remote Two helpers wrap the platform-side bookkeeping: `bb-capture.mjs` creates or attaches to a session and starts the tracer; `bb-finalize.mjs` pulls platform artifacts (final session metadata, server logs, downloads) into the run dir at the end. > Browserbase ends a session as soon as its last CDP client disconnects. **Create with `--keep-alive`, then attach automation to the session's `connectUrl` before or together with the tracer.** `bb-capture.mjs --new` handles the keep-alive session and tracer setup; your automation still needs to attach. ```bash export BROWSERBASE_API_KEY=... # 1. Create a keep-alive session AND start the tracer in one step. # Prints the session id, connectUrl prefix, and a live debugger URL you # can open in a browser to watch the run interactively. node scripts/bb-capture.mjs --new my-run # 2. Drive automation. bb-capture stamped the session id into the manifest. SID=$(jq -r .browserbase.session_id .o11y/my-run/manifest.json) CONNECT_URL="$(browse cloud sessions get "$SID" | jq -r .connectUrl)" BROWSE_NAME=my-run-browser browse open https://example.com --cdp "$CONNECT_URL" --session "$BROWSE_NAME" browse open https://news.ycombinator.com --session "$BROWSE_NAME" # 3. Stop the tracer, bisect, then pull platform artifacts and release. node scripts/stop-capture.mjs my-run node scripts/bisect-cdp.mjs my-run node scripts/bb-finalize.mjs my-run --release ``` Attaching to a session that's *already running* (e.g. one your production worker created) — `bb-capture.mjs` accepts a session id instead of `--new`: ```bash # Pick a running session (filter client-side; browse cloud sessions list has no --status flag) browse cloud sessions list | jq -r '.[] | select(.status == "RUNNING") | .id' node scripts/bb-capture.mjs <session-id> mid-flight-debug # ...tracer runs alongside the existing automation client; no disruption... node scripts/stop-capture.mjs mid-flight-debug node scripts/bisect-cdp.mjs mid-flight-debug node scripts/bb-finalize.mjs mid-flight-debug # without --release: leave the session running ``` #### What you get from the Browserbase platform `bb-capture.mjs` adds a `browserbase` block to `manifest.json` (session id, project, region, started_at, expires_at, debugger URL). `bb-finalize.mjs`
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (1 observation(s))
- Shell
- declared (4 observation(s))
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
45d21dc75974full audit observations/trust-audit/skill/browserbase__browser-trace.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-24 | 45d21dc75974 | SAFE | B | 89 | first audit |
Questions
What does the browser-trace — browserbase/skills skill do?
Browserbase's official collection of agent skills to access the web.
Is browser-trace — browserbase/skills safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can browser-trace — browserbase/skills access on my machine?
The audit observed that it reaches the network, runs shell commands and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: none found.
How current is this page?
The grade is for one exact copy of the source (45d21dc75974), read on 2026-10-24. The repository is watched, and a new audit runs when it changes — this is the first audit.
Add this badge to your README
Shows this page's audit result and links back to it. It updates when the audit does.
[](https://modelsatlas.com/skills/browserbase/browser-trace/)
Not your listing, or something out of date? Claim or update your listing.