Files
chrome-use/skill-data/core/references/profiling.md
T
leeguooooo 61060486f4
Release binaries / Build macOS ARM64 (push) Has been cancelled
Release binaries / Build macOS x64 (push) Has been cancelled
Release binaries / Build Linux ARM64 (push) Has been cancelled
Release binaries / Build Linux musl ARM64 (push) Has been cancelled
Release binaries / Build Linux musl x64 (push) Has been cancelled
Release binaries / Build Linux x64 (push) Has been cancelled
Release binaries / Build Windows x64 (push) Has been cancelled
Release binaries / Attach binaries to GitHub Release (push) Has been cancelled
rebrand: agent-browser-stealth → chrome-use, de-fork, reset to v1.0.0
Standalone product rename across the whole repo (issue: project identity):

- Binary/package/repo/skill/docs: agent-browser[-stealth] → chrome-use
  (single binary name `chrome-use`; old aliases agent-browser/abs dropped).
- Version: 0.27.0-fork.51 → 1.0.0 (drop the upstream-fork counter).
- Native-messaging host: com.agent_browser.connect → com.leeguoo.chrome_use
  (CLI + ab-connect extension in lockstep — this is a breaking handshake change,
  extension bumped 0.4.2 → 0.5.0, needs a Web Store republish).
- Config dir: ~/.agent-browser → ~/.chrome-use.
- README/zh: reframed from "stealth fork of agent-browser" to a standalone
  product with a small `originally based on vercel-labs/agent-browser` credit.
- Kept AGENT_BROWSER_* env vars working (63 vars across the codebase; renaming
  them would break every existing script/skill for no user-facing gain).

Build green, 802 unit tests pass, fmt + clippy clean. Upstream attribution to
vercel-labs/agent-browser preserved.
2026-06-12 12:56:21 +09:00

3.3 KiB

Profiling

Capture Chrome DevTools performance profiles during browser automation for performance analysis.

Related: commands.md for full command reference, SKILL.md for quick start.

Contents

Basic Profiling

# Start profiling
chrome-use profiler start

# Perform actions
chrome-use navigate https://example.com
chrome-use click "#button"
chrome-use wait 1000

# Stop and save
chrome-use profiler stop ./trace.json

Profiler Commands

# Start profiling with default categories
chrome-use profiler start

# Start with custom trace categories
chrome-use profiler start --categories "devtools.timeline,v8.execute,blink.user_timing"

# Stop profiling and save to file
chrome-use profiler stop ./trace.json

Categories

The --categories flag accepts a comma-separated list of Chrome trace categories. Default categories include:

  • devtools.timeline -- standard DevTools performance traces
  • v8.execute -- time spent running JavaScript
  • blink -- renderer events
  • blink.user_timing -- performance.mark() / performance.measure() calls
  • latencyInfo -- input-to-latency tracking
  • renderer.scheduler -- task scheduling and execution
  • toplevel -- broad-spectrum basic events

Several disabled-by-default-* categories are also included for detailed timeline, call stack, and V8 CPU profiling data.

Use Cases

Diagnosing Slow Page Loads

chrome-use profiler start
chrome-use navigate https://app.example.com
chrome-use wait --load networkidle
chrome-use profiler stop ./page-load-profile.json

Profiling User Interactions

chrome-use navigate https://app.example.com
chrome-use profiler start
chrome-use click "#submit"
chrome-use wait 2000
chrome-use profiler stop ./interaction-profile.json

CI Performance Regression Checks

#!/bin/bash
chrome-use profiler start
chrome-use navigate https://app.example.com
chrome-use wait --load networkidle
chrome-use profiler stop "./profiles/build-${BUILD_ID}.json"

Output Format

The output is a JSON file in Chrome Trace Event format:

{
  "traceEvents": [
    { "cat": "devtools.timeline", "name": "RunTask", "ph": "X", "ts": 12345, "dur": 100, ... },
    ...
  ],
  "metadata": {
    "clock-domain": "LINUX_CLOCK_MONOTONIC"
  }
}

The metadata.clock-domain field is set based on the host platform (Linux or macOS). On Windows it is omitted.

Viewing Profiles

Load the output JSON file in any of these tools:

  • Chrome DevTools: Performance panel > Load profile (Ctrl+Shift+I > Performance)
  • Perfetto UI: https://ui.perfetto.dev/ -- drag and drop the JSON file
  • Trace Viewer: chrome://tracing in any Chromium browser

Limitations

  • Only works with Chromium-based browsers (Chrome, Edge). Not supported on Firefox or WebKit.
  • Trace data accumulates in memory while profiling is active (capped at 5 million events). Stop profiling promptly after the area of interest.
  • Data collection on stop has a 30-second timeout. If the browser is unresponsive, the stop command may fail.