Source profileQuality 87/100Review permissions

einverne/dotfiles/claude/skills/chrome-devtools/SKILL.md

chrome-devtools

Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.

Source repository stars
119
Declared platforms
0
Static risk flags
3
Last source update
2026-08-05
Source checked
2026-08-05

Decision brief

What it does—and where it fits

Browser automation via executable Puppeteer scripts. All scripts output JSON for easy parsing.

Best for

    Not for

    • Common Errors
    • Script Issues

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/einverne/dotfiles --skill "claude/skills/chrome-devtools"
    Safe inspection promptEditorial

    Inspect the Agent Skill "chrome-devtools" from https://github.com/einverne/dotfiles/blob/7d18cf4fefdeec05853c7420cc0499dde1e88b27/claude/skills/chrome-devtools/SKILL.md at commit 7d18cf4fefdeec05853c7420cc0499dde1e88b27. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Quick Start

      On Linux/WSL, Chrome requires system libraries. Install them first:

      On Linux/WSL, Chrome requires system libraries. Install them first:Supports: Ubuntu, Debian, Fedora, RHEL, CentOS, Arch, ManjaromacOS/Windows: Skip this step (dependencies bundled with Chrome)
    2. 02

      Step 1: Install System Dependencies (Linux/WSL only)

      On Linux/WSL, Chrome requires system libraries. Install them first:

      On Linux/WSL, Chrome requires system libraries. Install them first:Supports: Ubuntu, Debian, Fedora, RHEL, CentOS, Arch, ManjaromacOS/Windows: Skip this step (dependencies bundled with Chrome)
    3. 03

      Step 2: Install Node Dependencies

      Review the “Step 2: Install Node Dependencies” section in the pinned source before continuing.

      Review and apply the “Step 2: Install Node Dependencies” source section.
    4. 04

      Script Usage

      ./scripts/README.md

      ./scripts/README.md
    5. 05

      Usage Patterns

      Important: Always save screenshots to ./docs/screenshots directory.

      Important: Always save screenshots to ./docs/screenshots directory.

    Permission review

    Static risk signals and limitations

    Runs scripts

    medium · line 26

    The documentation asks the agent to run terminal commands or scripts.

    npm install # Installs puppeteer, debug, yargs

    Network access

    medium · line 31

    The documentation includes network, browsing, or remote request actions.

    node navigate.js --url https://example.com

    Runs scripts

    medium · line 31

    The documentation asks the agent to run terminal commands or scripts.

    node navigate.js --url https://example.com

    Network access

    medium · line 32

    The documentation includes network, browsing, or remote request actions.

    # Output: {"success": true, "url": "https://example.com", "title": "Example Domain"}

    Writes files

    medium · line 78

    The documentation asks the agent to create, modify, or delete local files.

    # Save to file

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score87/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars119SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    einverne/dotfiles
    Skill path
    claude/skills/chrome-devtools/SKILL.md
    Commit
    7d18cf4fefdeec05853c7420cc0499dde1e88b27
    License
    GPL-3.0
    Collected
    2026-08-05
    Default branch
    master
    View the original SKILL.md

    Chrome DevTools Agent Skill

    Browser automation via executable Puppeteer scripts. All scripts output JSON for easy parsing.

    Quick Start

    Installation

    Step 1: Install System Dependencies (Linux/WSL only)

    On Linux/WSL, Chrome requires system libraries. Install them first:

    cd .claude/skills/chrome-devtools/scripts
    ./install-deps.sh  # Auto-detects OS and installs required libs
    

    Supports: Ubuntu, Debian, Fedora, RHEL, CentOS, Arch, Manjaro

    macOS/Windows: Skip this step (dependencies bundled with Chrome)

    Step 2: Install Node Dependencies

    npm install  # Installs puppeteer, debug, yargs
    

    Test

    node navigate.js --url https://example.com
    # Output: {"success": true, "url": "https://example.com", "title": "Example Domain"}
    

    Available Scripts

    All scripts are in .claude/skills/chrome-devtools/scripts/

    Script Usage

    • ./scripts/README.md

    Core Automation

    • navigate.js - Navigate to URLs
    • screenshot.js - Capture screenshots (full page or element)
    • click.js - Click elements
    • fill.js - Fill form fields
    • evaluate.js - Execute JavaScript in page context

    Analysis & Monitoring

    • snapshot.js - Extract interactive elements with metadata
    • console.js - Monitor console messages/errors
    • network.js - Track HTTP requests/responses
    • performance.js - Measure Core Web Vitals + record traces

    Usage Patterns

    Single Command

    cd .claude/skills/chrome-devtools/scripts
    node screenshot.js --url https://example.com --output ./docs/screenshots/page.png
    

    Important: Always save screenshots to ./docs/screenshots directory.

    Chain Commands (reuse browser)

    # Keep browser open with --close false
    node navigate.js --url https://example.com/login --close false
    node fill.js --selector "#email" --value "[email protected]" --close false
    node fill.js --selector "#password" --value "secret" --close false
    node click.js --selector "button[type=submit]"
    

    Parse JSON Output

    # Extract specific fields with jq
    node performance.js --url https://example.com | jq '.vitals.LCP'
    
    # Save to file
    node network.js --url https://example.com --output /tmp/requests.json
    

    Common Workflows

    Web Scraping

    node evaluate.js --url https://example.com --script "
      Array.from(document.querySelectorAll('.item')).map(el => ({
        title: el.querySelector('h2')?.textContent,
        link: el.querySelector('a')?.href
      }))
    " | jq '.result'
    

    Performance Testing

    PERF=$(node performance.js --url https://example.com)
    LCP=$(echo $PERF | jq '.vitals.LCP')
    if (( $(echo "$LCP < 2500" | bc -l) )); then
      echo "✓ LCP passed: ${LCP}ms"
    else
      echo "✗ LCP failed: ${LCP}ms"
    fi
    

    Form Automation

    node fill.js --url https://example.com --selector "#search" --value "query" --close false
    node click.js --selector "button[type=submit]"
    

    Error Monitoring

    node console.js --url https://example.com --types error,warn --duration 5000 | jq '.messageCount'
    

    Script Options

    All scripts support:

    • --headless false - Show browser window
    • --close false - Keep browser open for chaining
    • --timeout 30000 - Set timeout (milliseconds)
    • --wait-until networkidle2 - Wait strategy

    See ./scripts/README.md for complete options.

    Output Format

    All scripts output JSON to stdout:

    {
      "success": true,
      "url": "https://example.com",
      ... // script-specific data
    }
    

    Errors go to stderr:

    {
      "success": false,
      "error": "Error message"
    }
    

    Finding Elements

    Use snapshot.js to discover selectors:

    node snapshot.js --url https://example.com | jq '.elements[] | {tagName, text, selector}'
    

    Troubleshooting

    Common Errors

    "Cannot find package 'puppeteer'"

    • Run: npm install in the scripts directory

    "error while loading shared libraries: libnss3.so" (Linux/WSL)

    • Missing system dependencies
    • Fix: Run ./install-deps.sh in scripts directory
    • Manual install: sudo apt-get install -y libnss3 libnspr4 libasound2t64 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1

    "Failed to launch the browser process"

    • Check system dependencies installed (Linux/WSL)
    • Verify Chrome downloaded: ls ~/.cache/puppeteer
    • Try: npm rebuild then npm install

    Chrome not found

    • Puppeteer auto-downloads Chrome during npm install
    • If failed, manually trigger: npx puppeteer browsers install chrome

    Script Issues

    Element not found

    • Get snapshot first to find correct selector: node snapshot.js --url <url>

    Script hangs

    • Increase timeout: --timeout 60000
    • Change wait strategy: --wait-until load or --wait-until domcontentloaded

    Blank screenshot

    • Wait for page load: --wait-until networkidle2
    • Increase timeout: --timeout 30000

    Permission denied on scripts

    • Make executable: chmod +x *.sh

    Reference Documentation

    Detailed guides available in ./references/:

    Advanced Usage

    Custom Scripts

    Create custom scripts using shared library:

    import { getBrowser, getPage, closeBrowser, outputJSON } from './lib/browser.js';
    // Your automation logic
    

    Direct CDP Access

    const client = await page.createCDPSession();
    await client.send('Emulation.setCPUThrottlingRate', { rate: 4 });
    

    See reference documentation for advanced patterns and complete API coverage.

    External Resources

    Alternatives

    Compare before choosing

    Computed 976

    mgiovani/cc-arsenal

    team-review

    Multi-agent review team: architecture, security, performance, testing, style, docs/UX, plus an adversary that cross-examines the other 6, for security-sensitive, architectural, or large PRs (15+ files) where a single-agent pass risks missing cross-cutting issues. Use for auth/payments/PII changes, schema/pattern changes, compliance sign-off, or when asked to 'get the review team on this' / 'multi-agent review' / 'thorough review before merge'. For a standard PR or a quick pre-merge check, use /r

    Computed 916,436

    trailofbits/skills

    differential-review

    Performs security-focused differential review of code changes (PRs, commits, diffs). Adapts analysis depth to codebase size, uses git history for context, calculates blast radius, checks test coverage, and generates comprehensive markdown reports. Automatically detects and prevents security regressions.

    Computed 916,436

    trailofbits/skills

    genotoxic

    Graph-informed mutation testing triage. Parses codebases with Trailmark, runs mutation testing and necessist, then uses survived mutants, unnecessary test statements, and call graph data to identify false positives, missing test coverage, and fuzzing targets. Use when triaging survived mutants, analyzing mutation testing results, identifying test gaps, finding fuzzing targets from weak tests, running mutation frameworks (including circomvent and cairo-mutants), or using necessist.

    Computed 9023,835

    alirezarezvani/claude-skills

    pr-review-expert

    Use when the user asks to review pull requests, analyze code changes, check for security issues in PRs, or assess code quality of diffs.