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- Chrome browser installed and running
- chrome-devtools MCP server configured and accessible
How to use chrome-devtools
- 1.Run `list_pages` to see all open browser tabs and select the active context
- 2.Use `take_snapshot` to get a text-based accessibility tree with element UIDs for targeting
- 3.Interact with elements using `click(uid=...)`, `fill(uid=..., value=...)`, or other input tools
- 4.For debugging, run `list_console_messages` and `list_network_requests` to identify errors
- 5.For performance analysis, run `performance_start_trace(reload=true)`, wait for completion, then call `performance_analyze_insight`
Use cases
- 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
- 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
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.
`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.
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.
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.
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 (useuidfrom 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_pagesandselect_pageif you are unsure which tab is currently active. - Snapshots: Take a new snapshot after any major navigation or DOM change, as
uidvalues may change. - Timeouts: Use reasonable timeouts for
wait_forto avoid hanging on slow-loading elements. - Screenshots: Use
take_screenshotsparingly for visual verification, but rely ontake_snapshotfor logic.
Related skills
More from github/awesome-copilot and the wider catalog.
git-commit
Execute semantic git commits with conventional message analysis and intelligent staging.
excalidraw-diagram-generator
Generate Excalidraw diagrams from natural language descriptions.
documentation-writer
Create structured technical documentation using the Diátaxis framework for tutorials, how-to guides, references, and explanations.
gh-cli
GitHub CLI comprehensive reference for repositories, issues, PRs, Actions, projects, releases, and all GitHub operations from the command line.
prd
Generate comprehensive Product Requirements Documents with executive summaries, user stories, technical specs, and risk analysis.
refactor
Surgical code refactoring to improve maintainability without changing behavior.