Chrome DevTools agent

SkillWeb & browsing

Handle `browser-related` tasks and control a live Chrome browser through Chrome DevTools MCP for browser automation, visual inspection, debugging, performance analysis, and emulation. Use when navigating pages, clicking elements, filling forms, handling `alerts/prompts.`, taking snapshots or screenshots, inspecting console and network activity, evaluating JavaScript, profiling Core Web Vitals, or testing viewport and network conditions.

Use Chrome DevTools agent in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Chrome DevTools agent and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the Chrome DevTools agent skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Chrome DevTools agentStart free

What this skill tells your AI

The instructions your AI receives, as published by gbb-acelerators/awesome-harness-primitives in harness/claude-code/skills/chrome-devtools/SKILL.md and read by ahel’s review.

Use Chrome DevTools MCP to operate a real browser tab, inspect accessibility snapshots and screenshots, debug console and network failures, evaluate page JavaScript, and capture performance evidence with stable element identifiers instead of guessing selectors.

When to invoke

  • "Open this page in Chrome and click through the form."
  • "Take a screenshot and inspect what the browser renders."
  • "Check the console and network errors for this failing page."
  • "Profile this page for Core Web Vitals or layout shifts."
  • "Emulate a mobile viewport or slow network condition."

Prerequisites and context

  • Chrome DevTools MCP must be available in the active environment.
  • Interaction tools require uid values from the current accessibility snapshot; screenshots alone do not provide stable targets.
  • Take a new snapshot after navigation, reloads, significant DOM changes, or modal/dialog state changes because uid values can change.

Tool categories

CategoryToolsUse
Navigation and pagesnew_page, navigate_page, select_page, list_pages, close_page, wait_forOpen a tab/page., choose context, navigate, and wait for visible text.
Input and interactionclick, fill, fill_form, hover, press_key, drag, handle_dialog, upload_fileOperate controls using snapshot uid values.
Debugging and inspectiontake_snapshot, take_screenshot, list_console_messages, get_console_message, evaluate_script, list_network_requests, get_network_requestInspect DOM text-based accessibility tree, visuals, JavaScript errors, runtime state, and HTTP traffic, including 4xx/5xx failures.
Emulation and performanceresize_page, emulate, performance_start_trace, performance_stop_trace, performance_analyze_insightTest viewport/device conditions and CPU/Network or network/CPU throttling and profile load or interaction performance.

Workflow patterns

PatternStepsEvidence to report
Snapshot-first interactionRun take_snapshot, find the target uid, then call click(uid=...), fill(uid=..., value=...), or press_key; repeat snapshot after DOM changes.Target role/name and action result.
Page failure triageRun list_console_messages, list_network_requests, then inspect relevant entries with get_console_message or get_network_request.Error text, status code, failed URL, initiator when available.
Visual verificationUse take_snapshot for structure and take_screenshot only when pixels, layout, or visual regression matter.Screenshot path/description and matching accessibility evidence.
Performance profilingStart trace with performance_start_trace(reload=true, autoStop=true) for a load/trace scenario or chosen interaction, stop or wait for auto-stop, then call performance_analyze_insight.LCP, layout shift, long tasks, render-blocking resources, or other named insight.
EmulationSet viewport or throttling with resize_page or emulate, rerun the scenario, then restore if needed.Emulated condition and observed difference.

Gotchas

  • Use snapshots for element IDs: click and fill need uid from take_snapshot; visual coordinates are brittle.
  • Refresh uid values after changes: navigation, rerendering, and dialogs can invalidate prior snapshot IDs.
  • Check page context before acting: run list_pages and select_page when multiple tabs are open or the active tab is uncertain.
  • Screenshots do not replace console/network evidence: visual success can still hide failed API requests or JavaScript errors.
  • Performance traces need a defined scenario: record page load or one user interaction, not an unbounded browsing session.

Troubleshooting

SymptomLikely causeResolution
Interaction hits the wrong elementStale snapshot uid or wrong active page.Run list_pages, select_page, and take_snapshot again before interacting.
wait_for times outText never appears, app is stuck, or wrong route loaded.Check console and network, then verify current URL and snapshot.
Fill/click fails on custom controlTarget uid belongs to wrapper, not focusable input.Snapshot deeper nearby nodes; use click to focus then press_key or fill the input uid.
Performance trace has no useful insightScenario not captured or trace stopped too early.Start a new trace with reload/interaction and wait for completion before analysis.
  • Slow pages need explicit waits: for slow-loading pages, wait for stable text or network evidence before declaring failure.

Output template

## Chrome DevTools result

**Status:** complete | needs follow-up | blocked
**Page:** <URL or page title>
**Scenario:** <navigation/debug/performance/emulation task>

### Evidence
- Snapshot: <role/name/uid evidence or not needed>
- Console: <errors or "none observed">
- Network: <failed requests or "none observed">
- Screenshot/performance: <artifact or insight>

### Actions performed
- `<tool>`: <result>

Quality gate

  • The correct page/tab was selected before interacting.
  • Element interactions used current uid values from take_snapshot.
  • Console and network evidence were checked for debugging tasks.
  • Screenshots were used only when visual evidence was needed.
  • Performance profiling included a bounded load or interaction scenario.
  • The output follows ## Output template exactly.

Signals

GitHub stars
20
Last commit
Sep 2026
Hacker News mentions
1
Advanced
Item type
skill
Key
chrome-devtools-gbb-acelerators
Source
github.com/gbb-acelerators/awesome-harness-primitives