Agent skill

Automated Tracing

by nwjs in nwjs/chromium.src

Automated Tracing & Performance Telemetry in Chromium using Perfetto and Telemetry benchmarks.

BSD-3-ClauseAuto-check passedDatabases

Install Automated Tracing

skills CLI
$ npx skills add nwjs/chromium.src --skill automated-tracing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nwjs/chromium.src automated-tracing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agents/skills/automated-tracing .claude/skills/automated-tracing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
automated-tracing
GitHub stars
160
Token cost
~1.5k tokens
SKILL.md length
491 words
Files
3 (incl. scripts)
Skills in repo
64
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Automated Tracing & Performance Telemetry in Chromium using Perfetto and Telemetry benchmarks.

  • Works in 4 steps: Prerequisites → Safety & Sandbox Compliance (Zero-Grant… → Execution & Capture Workflow → …
  • You need to launch the browser binary
  • SKILL.md covers 1. Prerequisites, 2. Safety & Sandbox Compliance…, 3. Execution & Capture Workflow and 4. Output Contract
  • Runs Python scripts from its folder; calls python3 and adb

What it does

Automated Tracing is an agent skill from nwjs/chromium.src. Automated Tracing & Performance Telemetry in Chromium using Perfetto and Telemetry benchmarks. Use when you need to launch the browser binary, execute a specific scenario/story, and collect Perfetto traces. Don't use for trace analysis (use analyzing-sql-traces).

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `scripts/migrate_profile.py` and `scripts/run_warm_benchmark.py`).

It sits in Databases. It works with SQL and Android. The repository describes itself as: Chromium codebase with NW.js modifications. Based on https://chromium.googlesource.com/chromium/src.git. The licence is BSD-3-Clause.

When your agent uses it

  • You need to launch the browser binary
  • Execute a specific scenario/story
  • Collect Perfetto traces
  • Trace analysis (use analyzing-sql-traces)

Example prompts

  • “/automated-tracing”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Prerequisites
  2. Safety & Sandbox Compliance (Zero-Grant Rule)
  3. Execution & Capture Workflow
  4. Output Contract

What it can do on your machine

Read from SKILL.md and the folder at commit a9e8946. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • adb

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Automated Tracing loads about 1.5k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 491 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~70
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from nwjs/chromium.src at commit a9e8946, republished under its BSD-3-Clause licence (© nwjs). 491 words, ~1,517 tokens.

Download SKILL.mdSave it as .claude/skills/automated-tracing/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
automated-tracing
description
Automated Tracing & Performance Telemetry in Chromium using Perfetto and Telemetry benchmarks. Use when you need to launch the browser binary, execute a specific scenario/story, and collect Perfetto traces. Don't use for trace analysis (use analyzing-sql-traces).

Automated Tracing & Performance Telemetry

This skill guides the agent through the process of automated tracing in Chromium to capture performance profiles on Desktop or Android Device/Emulator.

1. Prerequisites

For Desktop (Linux/Mac/Windows)
  • A compiled Chrome executable (typically out/Default/chrome).
  • A targeted Scenario/Story (e.g., omnibox:search inside the desktop_ui benchmark).
For Android (Device/Emulator)
  • A compiled Chrome Android APK (typically out/emulator/apks/ChromePublic.apk).
  • A pre-connected Android device or running emulator.
  • A targeted Scenario/Story (e.g., system_health.common_mobile benchmark).

2. Safety & Sandbox Compliance (Zero-Grant Rule)

To prevent triggering user permission/access grant prompts during automated execution:

  • ALWAYS redirect Telemetry output artifacts to the parent E2E session's unified capture directory inside the workspace: out/e2e_nla_run_{parent_session_id}/capture/ (where {parent_session_id} is passed by the Orchestrator).
  • NEVER call command-line utilities like mkdir, ls, touch, or rm via shell commands.
  • NEVER run terminal verification commands (such as python3 -c "import os; ..." or ls -lh or test -f) to check file existence or size.
  • ALWAYS rely on standard python script APIs or built-in benchmark tool logic to create directories programmatically.
  • ALWAYS let down-stream tools (like the trace analyzer script) perform validation internally. If the trace is invalid or empty, the analyzer will fail loudly and safely.
  • NEVER let Telemetry write to the default tools/perf/artifacts/ workspace directory.

3. Execution & Capture Workflow

Step A: Identify Target Android Device (Android Only)

Before running the benchmark on Android, identify the connected device/emulator:

  1. Run adb devices to list the attached devices.
  2. Select the target device serial based on the following rules:
    • Zero devices found: Abort the execution and ask the user to connect a device or start an emulator.
    • One device found: Automatically select this device serial.
    • Multiple devices found:
      • If a specific device argument/serial is provided, match against it.
      • Otherwise, present the list of connected devices to the user and ask them to select one.
Show full SKILL.md (197 more words)Show less
Step B: Execute Telemetry Benchmark

Select either Cold Run (default) or Warm Run based on the investigation requirements.

1. For Cold Runs (Default)

No pre-warmup is needed. Telemetry will automatically start with a clean profile.

For Desktop: Run the run_benchmark command directly using the xvfb.py virtual display wrapper:

bash
./testing/xvfb.py vpython3 tools/perf/run_benchmark run desktop_ui \
  --story={story_name} \
  --browser=exact \
  --browser-executable={chrome_binary} \
  --extra-chrome-categories=omnibox,navigation,blink,cc,gpu,toplevel \
  --output-dir=out/e2e_nla_run_{parent_session_id}/capture/

For Android (Device/Emulator): Run the run_benchmark command with the --device argument set to the identified device serial:

bash
vpython3 tools/perf/run_benchmark run {benchmark_name} \
  --story={story_name} \
  --browser=exact \
  --browser-executable=out/emulator/apks/ChromePublic.apk \
  --device={device_serial} \
  --extra-chrome-categories=omnibox,navigation,blink,cc,gpu,toplevel,net,Java \
  --output-dir=out/e2e_nla_run_{parent_session_id}/capture/
2. For Warm Runs (GPU & HTTP Caches Warmed)

To capture a warm run (bypassing GPU shader compilation and static network loading), you should use the automated wrapper script run_warm_benchmark.py.

The script automatically coordinates the warmup run, profile migration/cleanup, final warm run, and temporary directory deletion.

For Android:

bash
vpython3 .agents/skills/automated-tracing/scripts/run_warm_benchmark.py \
  --benchmark={benchmark_name} \
  --story={story_name} \
  --browser-executable=out/emulator/apks/ChromePublic.apk \
  --device={device_serial} \
  --output-dir=out/e2e_nla_run_{parent_session_id}/capture/ \
  [--delete-state] \
  --extra-chrome-categories=omnibox,navigation,blink,cc,gpu,toplevel,net,Java \
  [extra_args...]

For Desktop:

bash
vpython3 .agents/skills/automated-tracing/scripts/run_warm_benchmark.py \
  --benchmark=desktop_ui \
  --story={story_name} \
  --browser-executable=out/Default/chrome \
  --output-dir=out/e2e_nla_run_{parent_session_id}/capture/ \
  [--delete-state] \
  --extra-chrome-categories=omnibox,navigation,blink,cc,gpu,toplevel,net \
  [extra_args...]

(Note: The script automatically detects if a display is present on Linux and wraps the desktop Chrome execution with xvfb.py if needed. Any unrecognized extra arguments [extra_args...] are forwarded directly to the underlying run_benchmark commands.)

Step C: Locate the Captured Trace

Once the benchmark completes successfully, find the Perfetto trace file inside the redirected folder. The path structure is: out/e2e_nla_run_{parent_session_id}/capture/artifacts/run_{timestamp}/{story_sanitized}_1/trace/trace.pb

Verify the trace exists and is non-empty.


4. Output Contract

Report back to the caller with the absolute path of the captured trace:

json
{
  "status": "SUCCESS",
  "trace_file_path": "out/e2e_nla_run_{parent_session_id}/capture/artifacts/run_{timestamp}/{story_sanitized}_1/trace/trace.pb",
  "build_dir": "out/emulator/"
}

© nwjs, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts) in agents/skills/automated-tracing of nwjs/chromium.src.

  • SKILL.md
  • scripts/migrate_profile.py
  • scripts/run_warm_benchmark.py

Open the folder on GitHubat commit a9e8946

Compare with similar skills

Automated Tracing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Automated Tracing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Automated Tracing this skillnwjs/chromium.src160—~1.5kAutomated safety check: PassBSD-3-Clause
Perfetto SQLjameshnsears/QuoteUnquote1002 repos~2.7kAutomated safety check: PassApache-2.0
Android Profilerarindamxd/camerax-android1322 repos~493Automated safety check: PassApache-2.0
Clickhouse Logs Queriessupabase/supabase111k—~2.4kAutomated safety check: PassApache-2.0
Django Filter Benchmarksaleor/saleor23k—~2.3kAutomated safety check: PassBSD-3-Clause
Citus Check Style Reindentcitusdata/citus13k—~1.5kAutomated safety check: NotesAGPL-3.0

Similar skills

  • Perfetto SQL

    jameshnsears/QuoteUnquote

    Translates natural language data intents into syntactically valid Perfetto SQL queries and executes them against a local trace file.

    100 GitHub starsUsed in 2 repos~2.7k tokens
    DatabasesAuto-check passed
  • Android Profiler

    arindamxd/camerax-android

    Manages Android performance profiling and debugging. An agent skill from arindamxd/camerax-android.

    132 GitHub starsUsed in 2 repos~493 tokens
    DevelopmentAuto-check passed
  • Clickhouse Logs Queries

    supabase/supabase

    Official

    Write, review, and migrate Supabase logs queries against the ClickHouse-backed logs table (the logs.all.otel analytics endpoint).

    111k GitHub stars~2.4k tokensUpdated today
    DatabasesAuto-check passed
  • Benchmarks Django ORM filters in Saleor by generating bulk data, extracting the SQL and running EXPLAIN ANALYZE to check index usage.

    23k GitHub stars~2.3k tokensUpdated today
    DatabasesAuto-check passed
  • Fix a failing citusdata/citus check-style job by running make reindent with the exact uncrustify/citusindent versions the currently checked-out branch pins (read from its own STYLEGUIDE.md and its…

    13k GitHub stars~1.5k tokensUpdated today
    DatabasesAuto-check: notes
  • Evolving The Data Model

    TriliumNext/Trilium

    A skill your agent uses when adding a DB migration or a new column/field to a Becca entity in Trilium ("add a migration", "new column on notes/attributes", "ALTER TABLE", "add a field to…

    38k GitHub stars~2.1k tokensUpdated today
    DatabasesAuto-check passed

More from nwjs/chromium.src

All 64 skills in this repo
  • Analyzing SQL Traces

    nwjs/chromium.src

    Extracts raw trace data from Perfetto traces, runs arbitrary SQL queries for custom follow-up analysis, and applies expert cognitive principles (Tiered Flow Analysis, Semantic Mismatch, Redundancy)…

    160 GitHub stars~2.9k tokensUpdated 5 days ago
    Auto-check passed
  • Autonomous multi-agent performance optimization loop for Chromium and V8.

    160 GitHub stars~4.2k tokensUpdated 5 days ago
    Auto-check passed
  • Chrome Releases

    nwjs/chromium.src

    Queries Chrome commit, version, release, and milestone metadata.

    160 GitHub stars~1.3k tokensUpdated 5 days ago
    Auto-check passed
  • Chromium Docs

    nwjs/chromium.src

    Search and reference Chromium documentation from the local docs index, including design docs, APIs, and development guides.

    160 GitHub stars~1.2k tokensUpdated 5 days ago
    Auto-check passed
  • Gn Deps Debugging

    nwjs/chromium.src

    Diagnose Chromium GN dependency and include-visibility failures, including BUILD.gn deps/publicdeps, DEPS include rules, private headers, and circular dependencies.

    160 GitHub stars~1.5k tokensUpdated 5 days ago
    Auto-check passed
  • Histogram Extension

    nwjs/chromium.src

    Extension pipeline to bump expiration dates of Chromium UMA histograms.

    160 GitHub stars~503 tokensUpdated 5 days ago
    Auto-check passed

Works with

Categories

Questions about Automated Tracing

What does Automated Tracing do?

Automated Tracing & Performance Telemetry in Chromium using Perfetto and Telemetry benchmarks. src. Automated Tracing & Performance Telemetry in Chromium using Perfetto and Telemetry benchmarks.

When should I use Automated Tracing?

Automated Tracing fits situations like: you need to launch the browser binary; execute a specific scenario/story; collect Perfetto traces; trace analysis (use analyzing-sql-traces).

How do I install Automated Tracing in Claude Code?

Run `npx skills add nwjs/chromium.src --skill automated-tracing -a claude-code`. Or copy the skill folder (agents/skills/automated-tracing in nwjs/chromium.src) into .claude/skills/automated-tracing in your project. Claude Code loads it when a task matches its description.

How do I install Automated Tracing in Codex?

Run `npx skills add nwjs/chromium.src --skill automated-tracing -a codex`. Or copy the skill folder (agents/skills/automated-tracing in nwjs/chromium.src) into .agents/skills/automated-tracing in your project. Codex loads it when a task matches its description.

Can I use Automated Tracing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nwjs/chromium.src --skill automated-tracing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/automated-tracing, .gemini/skills/automated-tracing, .github/skills/automated-tracing and .opencode/skills/automated-tracing in your project.

What does Automated Tracing need to run?

Going by SKILL.md and its folder, Automated Tracing needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and adb). Our summary lists: Python 3.

Does Automated Tracing access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Automated Tracing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Automated Tracing use?

Automated Tracing is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Automated Tracing use?

About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Automated Tracing?

Skills that share tags, products or a category with Automated Tracing: Perfetto SQL (jameshnsears/QuoteUnquote, 100 stars), Android Profiler (arindamxd/camerax-android, 132 stars), Clickhouse Logs Queries (supabase/supabase, 111k stars) and Django Filter Benchmark (saleor/saleor, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Automated Tracing?

nwjs (a GitHub organization) maintains it in nwjs/chromium.src, which has 160 GitHub stars. The repository holds 64 skills in this directory. The repository was last updated on October 3, 2026.

Source: nwjs/chromium.src on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.