chrome-devtools-cli
Use this skill to write shell scripts or run shell commands to automate tasks in the browser or otherwise use Chrome DevTools via CLI.
Security Assessment
Detected risks:
About chrome-devtools-cli
A CLI-driven way to automate Chrome and use Chrome DevTools from the terminal or shell scripts, provided by chrome-devtools-mcp. The background server starts implicitly on first use, so the workflow is simply execute, inspect, act: run a tool such as chrome-devtools list_pages, capture element UIDs with take_snapshot, then act on them with commands like click, fill, hover, drag, type_text, or upload_file. State persists across commands, any command accepts --help, and output defaults to Markdown with --output-format=json available for structured results.
Use it when you want to script browser tasks rather than drive them interactively. The command surface is broad: navigation (navigate_page, new_page, select_page, list_pages, close_page), emulation of network conditions, CPU throttling, geolocation, color scheme, viewport, and user agent plus resize_page, and performance tooling such as performance_start_trace, performance_stop_trace, performance_analyze_insight, and take_memory_snapshot.
For inspection and debugging it exposes evaluate_script (including passing snapshot UIDs as arguments), console message listing and filtering, take_screenshot for the viewport, full page, or a single element, lighthouse_audit, and network request listing and retrieval with pagination and resource-type filters. It can also manage Chrome extensions by listing, installing from a path, uninstalling, reloading, and triggering an extension default action. Experimental tools such as click_at coordinate clicking and screencast recording are disabled by default and must be enabled with their flags during start. Installation is a one-time prerequisite documented separately and is not part of the regular workflow.
FAQ
Do I need to start the server manually?
No, the background server starts implicitly, so you should not run start, status, or stop before each use.
How do I target a specific element on the page?
Run take_snapshot to obtain an element uid, then pass that uid to commands such as click, fill, or hover.
Can I get machine-readable output instead of Markdown?
Yes, output defaults to Markdown but you can pass --output-format=json on any command.
What conditions can it emulate for testing?
Network conditions, CPU throttling, geolocation, color scheme, viewport, and user agent, plus resize_page for the window dimensions.
How do I use the experimental features?
They are off by default and must be enabled with their flag at start, for example click_at needs experimental vision and screencast needs experimental screencast plus ffmpeg.
Install chrome-devtools-cli
Quick Setup:
- Copy the skill folder to
.claude/skills/ - Claude will automatically detect and use the skill
Repository
chromedevtools/chrome-devtools-mcp