Skip to main content
The traces, profiles, heap tools, coverage and Lighthouse workflows below require Chromium (Chrome, Brave or a compatible build). Firefox and Zen support devtools_performance {action: "vitals"} for metrics exposed by their page APIs; Chrome traces, V8 profiling and Lighthouse return explicit unsupported errors. See Firefox and Zen coverage. Pass the intended tab’s tabId when several browsers are available. Artifacts land in ~/.browspark/artifacts (or BROWSPARK_ARTIFACTS); traces and profiles use Chrome’s own formats, and Lighthouse reports use HTML and JSON.

Traces

stop saves a .json trace (DevTools Performance panel, Perfetto) and returns a summary: time by category, long tasks with their heaviest children, script time by URL, observed LCP, FCP and CLS, and user timings. search finds events by name or argument, compare diffs two recordings, vitals reads live Web Vitals observed in the page since the session started (LCP, CLS, INP, FID, FCP, TTFB, long tasks), and metrics returns Chrome runtime metrics.
Traces are browser-wide within the selected Chromium instance; activity from its other tabs can appear in the raw file. The summary is filtered to the target tab where possible.

CPU profiles

devtools_profile start / stop records a sampling profile (.cpuprofile). stop and analyze return the most expensive functions by self time (bottom-up) and the hot paths (call tree).

Memory

Chrome does not expose the heap profiler to extensions. A typical leak hunt: growth in your own tab to confirm the symptom, then launch the developer browser, reproduce, and use snapshot → compare → retainers.

Coverage

devtools_coverage start (optionally reload: true) then stop reports used and unused bytes per JavaScript and CSS file. detail lists the unused ranges of one file with line numbers and snippets.

Lighthouse

Runs the official Lighthouse CLI against a Chromium developer browser and returns category scores, key metrics and failing audits, plus HTML and JSON reports as artifacts. Lighthouse opens its own tab there. When several Chromium developer contexts are running, pass a tabId from the intended context to choose the browser explicitly.