PluginBench
Skill
Official
Fail
Audit score 45

chrome-devtools

github/awesome-copilot

Expert browser automation, debugging, and performance analysis via Chrome DevTools MCP.

What is chrome-devtools?

A specialized skill for controlling and inspecting a live Chrome browser. Use it for browser automation, visual inspection, debugging, performance analysis, and emulation tasks like navigating pages, capturing screenshots, analyzing network traffic, and profiling performance.

  • Navigate pages, reload, and manage browser history and tabs
  • Click elements, fill forms, handle dialogs, and upload files
  • Capture text-based accessibility snapshots and visual screenshots of pages
  • Inspect console messages, evaluate JavaScript, and analyze network requests
  • Record and analyze performance traces to identify bottlenecks and Core Web Vitals issues
  • Emulate network/CPU throttling, resize viewports, and emulate geolocation

How to install chrome-devtools

npx skills add https://github.com/github/awesome-copilot --skill chrome-devtools
Prerequisites
  • Chrome browser installed and running
  • chrome-devtools MCP server configured and accessible
Claude Code
Cursor
Windsurf
Cline

How to use chrome-devtools

  1. 1.Run `list_pages` to see all open browser tabs and select the active context
  2. 2.Use `take_snapshot` to get a text-based accessibility tree with element UIDs for targeting
  3. 3.Interact with elements using `click(uid=...)`, `fill(uid=..., value=...)`, or other input tools
  4. 4.For debugging, run `list_console_messages` and `list_network_requests` to identify errors
  5. 5.For performance analysis, run `performance_start_trace(reload=true)`, wait for completion, then call `performance_analyze_insight`

Use cases

Good for
  • Automating multi-step workflows like form filling and navigation across web applications
  • Debugging JavaScript errors and failed network requests by inspecting console logs and request details
  • Identifying slow page loads and layout shifts through performance profiling and trace analysis
  • Taking visual and structural snapshots of pages for verification and element identification
  • Testing responsive design by resizing viewports and emulating different network conditions
Who it's for
  • Web developers debugging and testing applications
  • QA engineers automating browser-based test scenarios
  • Performance engineers analyzing Core Web Vitals and page load bottlenecks
  • Full-stack developers building automation workflows that interact with web pages

chrome-devtools FAQ

How do I find and interact with specific elements on a page?

Use `take_snapshot` to get a text-based accessibility tree with `uid` values for each element. Then use `click(uid=...)` or `fill(uid=..., value=...)` to interact with them. Always take a fresh snapshot after major navigation or DOM changes since UIDs may change.

What's the difference between `take_snapshot` and `take_screenshot`?

`take_snapshot` provides a text-based accessibility tree with element UIDs needed for interaction tools, while `take_screenshot` captures a visual representation. Prefer snapshots for finding and targeting elements; use screenshots sparingly for visual verification.

How do I debug a failing page?

Check `list_console_messages` for JavaScript errors, run `list_network_requests` to identify failed (4xx/5xx) resources, and use `evaluate_script` to inspect specific DOM elements or global variables.

How do I profile page performance?

Run `performance_start_trace(reload=true, autoStop=true)` to start recording, wait for the page to load and the trace to finish, then call `performance_analyze_insight` to get detailed analysis of bottlenecks and Core Web Vitals issues.

Can I emulate different network or device conditions?

Yes, use the `emulate` tool to throttle CPU/Network or emulate geolocation. You can also use `resize_page` to change viewport dimensions for testing responsive design.

Full instructions (SKILL.md)

Source of truth, from github/awesome-copilot.


name: chrome-devtools description: 'Expert-level browser automation, debugging, and performance analysis using Chrome DevTools MCP. Use for interacting with web pages, capturing screenshots, analyzing network traffic, and profiling performance.' license: MIT

Chrome DevTools Agent

Overview

A specialized skill for controlling and inspecting a live Chrome browser. This skill leverages the chrome-devtools MCP server to perform a wide range of browser-related tasks, from simple navigation to complex performance profiling.

When to Use

Use this skill when:

  • Browser Automation: Navigating pages, clicking elements, filling forms, and handling dialogs.
  • Visual Inspection: Taking screenshots or text snapshots of web pages.
  • Debugging: Inspecting console messages, evaluating JavaScript in the page context, and analyzing network requests.
  • Performance Analysis: Recording and analyzing performance traces to identify bottlenecks and Core Web Vital issues.
  • Emulation: Resizing the viewport or emulating network/CPU conditions.

Tool Categories

1. Navigation & Page Management

  • new_page: Open a new tab/page.
  • navigate_page: Go to a specific URL, reload, or navigate history.
  • select_page: Switch context between open pages.
  • list_pages: See all open pages and their IDs.
  • close_page: Close a specific page.
  • wait_for: Wait for specific text to appear on the page.

2. Input & Interaction

  • click: Click on an element (use uid from snapshot).
  • fill / fill_form: Type text into inputs or fill multiple fields at once.
  • hover: Move the mouse over an element.
  • press_key: Send keyboard shortcuts or special keys (e.g., "Enter", "Control+C").
  • drag: Drag and drop elements.
  • handle_dialog: Accept or dismiss browser alerts/prompts.
  • upload_file: Upload a file through a file input.

3. Debugging & Inspection

  • take_snapshot: Get a text-based accessibility tree (best for identifying elements).
  • take_screenshot: Capture a visual representation of the page or a specific element.
  • list_console_messages / get_console_message: Inspect the page's console output.
  • evaluate_script: Run custom JavaScript in the page context.
  • list_network_requests / get_network_request: Analyze network traffic and request details.

4. Emulation & Performance

  • resize_page: Change the viewport dimensions.
  • emulate: Throttling CPU/Network or emulating geolocation.
  • performance_start_trace: Start recording a performance profile.
  • performance_stop_trace: Stop recording and save the trace.
  • performance_analyze_insight: Get detailed analysis from recorded performance data.

Workflow Patterns

Pattern A: Identifying Elements (Snapshot-First)

Always prefer take_snapshot over take_screenshot for finding elements. The snapshot provides uid values which are required by interaction tools.

1. `take_snapshot` to get the current page structure.
2. Find the `uid` of the target element.
3. Use `click(uid=...)` or `fill(uid=..., value=...)`.

Pattern B: Troubleshooting Errors

When a page is failing, check both console logs and network requests.

1. `list_console_messages` to check for JavaScript errors.
2. `list_network_requests` to identify failed (4xx/5xx) resources.
3. `evaluate_script` to check the value of specific DOM elements or global variables.

Pattern C: Performance Profiling

Identify why a page is slow.

1. `performance_start_trace(reload=true, autoStop=true)`
2. Wait for the page to load/trace to finish.
3. `performance_analyze_insight` to find LCP issues or layout shifts.

Best Practices

  • Context Awareness: Always run list_pages and select_page if you are unsure which tab is currently active.
  • Snapshots: Take a new snapshot after any major navigation or DOM change, as uid values may change.
  • Timeouts: Use reasonable timeouts for wait_for to avoid hanging on slow-loading elements.
  • Screenshots: Use take_screenshot sparingly for visual verification, but rely on take_snapshot for logic.