chrome-devtools-cli

A command-line interface for controlling a live Chrome browser through Chrome DevTools. It can inspect pages, interact with elements, run JavaScript, and examine browser diagnostics.

In plain words
What is it for?
Use it to open pages, read accessibility snapshots, click and fill controls, check console and network activity, take screenshots, run Lighthouse, and record performance traces.
Why use it?
It lets an agent automate and inspect Chrome from a shell instead of relying on manual browser work.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/appautomaton/webmaton/chrome-devtools-cli
Any agent
npx skills add appautomaton/webmaton --skill chrome-devtools-cli
Clone the repo
git clone --depth 1 https://github.com/appautomaton/webmaton

Made for: Claude Code, Codex.

Per session 82 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 780 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00082 $0.00780
Opus 5 $0.00041 $0.00390
Sonnet 5 $0.00016 $0.00156
Haiku 4.5 $0.00008 $0.00078

Measured 2d ago against content hash 16f4a5edcd80, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

chrome-devtools-cli scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/chrome-devtools-cli/SKILL.md · 60 lines

How it starts

The opening of the file, as written. The whole thing — 60 lines — stays where its author put it; the contents beside it link to each section on GitHub.

chrome-devtools-cli

The package is chrome-devtools-mcp, but the action CLI is chrome-devtools. Use chrome-devtools <tool> ... for this skill. Do not use npx chrome-devtools-mcp@latest unless you are configuring an MCP server outside this skill.

Core Workflow

chrome-devtools new_page "https://example.com"
chrome-devtools list_pages
chrome-devtools take_snapshot 0
chrome-devtools click 0 "1_3"
chrome-devtools fill 0 "1_5" "search text"
chrome-devtools press_key 0 "Enter"

Two identifiers drive everything. The page id is the first positional argument of nearly every command — read it from list_pages. The element uid comes from take_snapshot, which returns accessibility-tree entries such as 1_3.

Always act on uids from the latest snapshot. Re-snapshot after navigation, reloads, or major DOM updates.

Operating Rules

  • Run tools directly; the background daemon starts implicitly on first real action and preserves browser state.
  • Do not run start, status, or stop before every action. Use them only for setup, custom launch flags, or troubleshooting.
  • Pass the page id as the first positional argument. list_pages and new_page are the exceptions that take none, and evaluate_script takes --pageId as a flag instead.
  • Use chrome-devtools <command> --help for exact syntax; this file tracks 1.8.0 and the command surface moves between minor releases. Output defaults to Markdown; add --output-format=json when structured output is useful.
  • This CLI drives its own chrome-devtools-mcp daemon. If the surrounding agent already has an MCP client connected to that same server, prefer one path or the other rather than mixing them in one session.
  • Prefer snapshots over screenshots for deciding what to click or fill. Use screenshots for visual proof, layout inspection, or reports.
  • Use evaluate_script, console, and network commands when debugging runtime behavior; use Lighthouse and performance tracing for page-quality/performance work.

Read the full file on GitHub · 60 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 60 lines · 82 tokens per session scan A 16f4a5edcd80

Subscribe to this mod's changes

chrome-devtools-cli is a skill published in the GitHub repository appautomaton/webmaton (19 stars, last pushed 7d ago), licensed MIT. It adds 82 tokens to every session and 780 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

opencli-sitemap-author

Use when creating or maintaining OpenCLI site sitemaps: agent-facing navigation, page-state, action, workflow, API-reference, pitfall, and fallback knowledge for a website. Use after browser exploration discovers durable site context, when a sitemap is stale, or when promoting local site knowledge into the repo.

jackwener/OpenCLI · 67 tokens

opencli-browser-sitemap

Use when driving a website with opencli browser and sitemap context is available, requested, or needed to avoid blind navigation. Guides agents to consume site sitemap files lazily, choose adapter/browser fallback paths, resume from state signatures, and mark stale sitemap entries without trusting them over live…

jackwener/OpenCLI · 64 tokens

pinchtab-mcp

Use this skill when a task requires browser automation through PinchTab's MCP server connected to a remote browser instance. Covers navigation, element interaction, data extraction, form filling, multi-step flows, and session management via MCP tools.

pinchtab/pinchtab · 52 tokens

pinchtab-stealth-score

Run the PinchTab stealth-score sweep against 15 bot-detection / fingerprint sites (sannysoft, rebrowser, deviceandbrowserinfo, iphey, whoer, browserscan, pixelscan, fingerprint-scan, incolumitas, fvision, amiunique, browserleaks, creepjs, coveryourtracks, fingerprint-demo). Starts a Docker PinchTab container per…

pinchtab/pinchtab · 168 tokens

openbot-data-access

Governs how the OpenBot browser app reads and writes server data — every request goes through client in app/src/lib/client.ts, every read is a queryOptions factory in app/src/lib/ /queries.ts, every write is a mutationOptions factory in app/src/lib/ /mutations.ts, and components consume them through…

CopilotKit/OpenBot · 189 tokens

openbot-screen-layout

The default layout for every OpenBot configuration screen — PageShell and its prose/wide widths, PageSection and PageRows, Item row composition, the settings-row pattern where a summary and a chevron open a dialog, and the size and variant vocabulary. This is what a new screen looks like unless an instruction says…

CopilotKit/OpenBot · 183 tokens