Chrome Devtools MCP
managedcode/dotnet-skills
Use Chrome DevTools MCP from .NET agents and .NET-focused repos to inspect, debug, and automate Chrome through an MCP client.
Debug the built Read Frog extension in real Chrome. An agent skill from mengxi-ream/read-frog.
$ npx skills add mengxi-ream/read-frog --skill extension-puppeteer-debugging -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mengxi-ream/read-frog extension-puppeteer-debugging --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mengxi-ream/read-frog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/extension-puppeteer-debugging .claude/skills/extension-puppeteer-debugging && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "extension-puppeteer-debugging" agent skill from https://github.com/mengxi-ream/read-frog/tree/main/.agents/skills/extension-puppeteer-debugging into .claude/skills/extension-puppeteer-debugging/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extension-puppeteer-debugging", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mengxi-ream/read-frog/tree/main/.agents/skills/extension-puppeteer-debuggingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mengxi-ream/read-frog --skill extension-puppeteer-debugging -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mengxi-ream/read-frog extension-puppeteer-debugging --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mengxi-ream/read-frog.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/extension-puppeteer-debugging .agents/skills/extension-puppeteer-debugging && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "extension-puppeteer-debugging" agent skill from https://github.com/mengxi-ream/read-frog/tree/main/.agents/skills/extension-puppeteer-debugging into .agents/skills/extension-puppeteer-debugging/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extension-puppeteer-debugging", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mengxi-ream/read-frog --skill extension-puppeteer-debugging -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mengxi-ream/read-frog extension-puppeteer-debugging --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mengxi-ream/read-frog.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/extension-puppeteer-debugging .cursor/skills/extension-puppeteer-debugging && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "extension-puppeteer-debugging" agent skill from https://github.com/mengxi-ream/read-frog/tree/main/.agents/skills/extension-puppeteer-debugging into .cursor/skills/extension-puppeteer-debugging/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extension-puppeteer-debugging", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mengxi-ream/read-frog.git --path .agents/skills/extension-puppeteer-debugging--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mengxi-ream/read-frog --skill extension-puppeteer-debugging -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mengxi-ream/read-frog extension-puppeteer-debugging --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mengxi-ream/read-frog.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/extension-puppeteer-debugging .gemini/skills/extension-puppeteer-debugging && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "extension-puppeteer-debugging" agent skill from https://github.com/mengxi-ream/read-frog/tree/main/.agents/skills/extension-puppeteer-debugging into .gemini/skills/extension-puppeteer-debugging/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extension-puppeteer-debugging", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mengxi-ream/read-frog extension-puppeteer-debuggingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mengxi-ream/read-frog --skill extension-puppeteer-debugging -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mengxi-ream/read-frog.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/extension-puppeteer-debugging .github/skills/extension-puppeteer-debugging && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "extension-puppeteer-debugging" agent skill from https://github.com/mengxi-ream/read-frog/tree/main/.agents/skills/extension-puppeteer-debugging into .github/skills/extension-puppeteer-debugging/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extension-puppeteer-debugging", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mengxi-ream/read-frog --skill extension-puppeteer-debugging -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mengxi-ream/read-frog extension-puppeteer-debugging --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mengxi-ream/read-frog.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/extension-puppeteer-debugging .opencode/skills/extension-puppeteer-debugging && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "extension-puppeteer-debugging" agent skill from https://github.com/mengxi-ream/read-frog/tree/main/.agents/skills/extension-puppeteer-debugging into .opencode/skills/extension-puppeteer-debugging/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extension-puppeteer-debugging", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
extension-puppeteer-debuggingDebug the built Read Frog extension in real Chrome. An agent skill from mengxi-ream/read-frog.
Extension Puppeteer Debugging is an agent skill from mengxi-ream/read-frog. Debug the built Read Frog extension in real Chrome. Use Chrome DevTools MCP for interactive inspection and screenshots; use the Puppeteer harness for repeatable end-to-end assertions, fixture pages, and translation toggle/restore flows. For leaks, freezes, or CPU storms use extension-perf-forensics.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/harness-template.js`).
It sits in Development, covering Browser testing, Debugging and MCP servers. It works with Puppeteer, Model Context Protocol, Chrome DevTools and Chrome Extensions. The repository describes itself as: 🐸 Read Frog - Language Learning & Translate | 🐸 陪读蛙 - 语言学习与翻译. The licence is GPL-3.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 56f29ed. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
pnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Extension Puppeteer Debugging loads about 2k tokens when it runs, and up to ~3.6k if it reads all its reference files. Until then it costs about 83 tokens; SKILL.md has 939 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
ail's exit code masks failure); missing `.env.production` in a worktree kills the build with a buried error — copy it frAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mengxi-ream/read-frog at commit 56f29ed, republished under its GPL-3.0 licence (© mengxi-ream). 939 words, ~1,959 tokens.
.claude/skills/extension-puppeteer-debugging/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Debug the built extension in real Chrome. Choose the lightest workflow that produces trustworthy evidence:
Always build the artifact under test and confirm .output/chrome-mv3/manifest.json exists before loading it. Do not treat dev-server behavior as proof of the production build.
The extension tools are disabled by default. The MCP server must start with:
--categoryExtensions=trueRestart the MCP client after changing its server configuration. Before building, confirm that install_extension, reload_extension, list_extensions, and trigger_extension_action are available. If they are missing, fix the MCP configuration rather than falling back silently to webpage-only tools.
install_extension accepts an absolute path to an unpacked extension directory. The server restricts filesystem access to MCP workspace roots and the OS temp directory. If it rejects a valid build path:
--allow-unrestricted-paths only for a trusted local client and only after the user explicitly authorizes the wider filesystem access.Chrome DevTools MCP launches its own Chrome profile. Concurrent MCP clients can contend for the default profile; use distinct --userDataDir values or --isolated=true when Codex, Claude, or multiple tasks may run the server at the same time. A fresh or isolated profile also avoids stale extension state, but state-dependent bugs may require a deliberate persistent test profile.
.output/chrome-mv3 path with install_extension.list_pages.For screenshots, keep raw before/after captures as the source of truth. Label crops and stitched comparisons as supplemental artifacts. Never present a composite as a raw browser screenshot.
Use a fresh profile or the Puppeteer harness when persistent browser state could affect the result. Record the browser/version, build path, target URL, interaction, runtime evidence, and screenshot path for consequential regressions.
Drive headed Chrome from a Node script to install the extension, force known config, toggle translation via its message bus, and assert live DOM. The details below encode failures observed during issue #1846 and #2011 verification.
| Step | Do this | NOT this (fails silently) |
|---|---|---|
| Build | pnpm build then test -f .output/chrome-mv3/manifest.json | Trusting pnpm build | tail exit code (tail's exit code masks failure); missing .env.production in a worktree kills the build with a buried error — copy it from the main checkout |
| Load | puppeteer.launch({ pipe: true, enableExtensions: true }) + browser.installExtension(path) (Puppeteer ≥22.11) | --load-extension / --disable-extensions-except — ignored by branded Chrome 137+ |
| Config | Read-merge-write the WHOLE config object in chrome.storage.local from the service-worker target, with mutations inlined in the evaluated function (pass only plain data as evaluate args); re-patch after ~4s and verify (background init/migration clobbers early writes) | Building the mutation from a code string via new Function/eval inside the SW — its CSP (script-src 'self' 'wasm-unsafe-eval' ...) blocks eval and throws EvalError; patching once and navigating immediately; writing a partial config object — it fails configSchema.safeParse and getLocalConfig() silently falls back to DEFAULT_CONFIG (bilingual mode) |
| Target language | Always force config.language.targetCode = 'cmn' | Trusting the default — onboarding overwrites targetCode with the browser UI language, and the same-language skip then translates NOTHING on English fixtures |
| Toggle | Send the webext-core envelope to the content script from the SW: chrome.tabs.sendMessage(tabId, { id, type: 'askManagerToTogglePageTranslation', data: { enabled }, timestamp }) | Synthesizing Alt+E — on macOS Option+E is a dead key (event.key !== 'e'), the hotkey listener never fires |
| Assert translated | CJK regex /[一-鿿]/ on textContent; count .read-frog-translated-content-wrapper (fallback-B) and [data-read-frog-translation-only] (in-place swap) | Waiting a fixed sleep |
| Assert restored | Compare innerHTML modulo walk labels (data-read-frog-walked/-paragraph/-block-node/-inline-node persist by design in every mode) | Byte-identical innerHTML comparison |
references/harness-template.js into the session scratchpad, point EXT_PATH at .output/chrome-mv3, adjust the fixture/assertions.http://localhost (content scripts don't run on file://). For framework-safety checks, use a React fixture with a focus-triggered re-render (simulates React Query refetchOnWindowFocus — the trigger behind logged-in-only bugs like #1846) and a counter button to prove listeners survived.page.on('console') + pageerror for Minified React error|NotFoundError — a clean screenshot can hide a broken fiber tree.microsoft-translate-default needs no API key but real network. Slow the queues (requestQueueConfig.rate/capacity = 1) when you need to observe spinners.For loading screenshots, first record .read-frog-spinner count and relevant computed/inline styles, capture the raw frame, then continue waiting for translated Chinese text to prove that the run completed. A visible screenshot without matching DOM/runtime evidence is insufficient.
.read-frog-translated-content-wrapper inserted next to it.data-read-frog-translation-only and the site's own text nodes hold Chinese.[data-read-frog-translation-only] anchors; walk labels remain — that's normal, not a leak.© mengxi-ream, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in .agents/skills/extension-puppeteer-debugging of mengxi-ream/read-frog.
Open the folder on GitHubat commit 56f29ed
Extension Puppeteer Debugging next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Extension Puppeteer Debugging this skillmengxi-ream/read-frog | 10k | — | ~2k | Automated safety check: Notes | GPL-3.0 | |
| Chrome Devtools MCPmanagedcode/dotnet-skills | 486 | — | ~2.2k | Automated safety check: Pass | MIT | |
| React Devtools MCPsanity-io/ui | 176 | — | ~2k | Automated safety check: Pass | MIT | |
| Project Docs Maintainerswimmwatch/cloakbrowser-mcp | 164 | — | ~569 | Automated safety check: Pass | MIT | |
| Browser Testing With Devtoolsshashankswe2020-ux/whoop-mcp | 165 | — | ~3k | Automated safety check: Warn | MIT | |
| Team Frontend Debugcatlog22/Claude-Code-Workflow | 2.1k | — | ~2.8k | Automated safety check: Notes | MIT |
managedcode/dotnet-skills
Use Chrome DevTools MCP from .NET agents and .NET-focused repos to inspect, debug, and automate Chrome through an MCP client.
sanity-io/ui
Inspect and profile the React component tree of a running Storybook story through chrome-devtools-mcp (React DevTools over the Chrome DevTools Protocol, via react-devtools-cdt-mcp).
swimmwatch/cloakbrowser-mcp
Maintain, organize, consolidate, or audit the cloakbrowser-mcp documentation set only when the user explicitly requests project documentation maintenance or an authorized public change requires it.
shashankswe2020-ux/whoop-mcp
Tests in real browsers. An agent skill from shashankswe2020-ux/whoop-mcp.
catlog22/Claude-Code-Workflow
Frontend debugging team using Chrome DevTools MCP. An agent skill from catlog22/Claude-Code-Workflow.
lightpanda-io/agent-skill
Lightpanda browser, drop-in replacement for Chrome-based browsing in any AI agent - faster and lighter for tasks without graphical rendering like data retrieval.
mengxi-ream/read-frog
Adversarial code review using cross-model approach. An agent skill from mengxi-ream/read-frog.
mengxi-ream/read-frog
Record polished, evidence-backed demos of the Read Frog extension as MP4 (and optional GIF) by driving real Chrome with the built extension, following captioned scene scripts, asserting extension…
mengxi-ream/read-frog
Utilities for browser extensions - proxy services for cross-context RPC, type-safe messaging, URL match patterns, fake browser for testing, job scheduling, and shadow DOM isolation.
mengxi-ream/read-frog
Build browser extensions with WXT - a next-gen framework with file-based entrypoints, Vite builds, auto-imports, typed storage with migrations, content script UIs, and multi-browser MV2/MV3 support.
mengxi-ream/read-frog
Create a pull request, optionally for the issue provided as argument
mengxi-ream/read-frog
A skill your agent uses when writing or reviewing database/config migration scripts or migration registries.
Categories
Debug the built Read Frog extension in real Chrome. An agent skill from mengxi-ream/read-frog. Extension Puppeteer Debugging is an agent skill from mengxi-ream/read-frog. Debug the built Read Frog extension in real Chrome.
Extension Puppeteer Debugging fits situations like: tasks that involve Browser testing; tasks that involve Debugging; tasks that involve MCP servers.
Run `npx skills add mengxi-ream/read-frog --skill extension-puppeteer-debugging -a claude-code`. Or copy the skill folder (.agents/skills/extension-puppeteer-debugging in mengxi-ream/read-frog) into .claude/skills/extension-puppeteer-debugging in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mengxi-ream/read-frog --skill extension-puppeteer-debugging -a codex`. Or copy the skill folder (.agents/skills/extension-puppeteer-debugging in mengxi-ream/read-frog) into .agents/skills/extension-puppeteer-debugging in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mengxi-ream/read-frog --skill extension-puppeteer-debugging -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/extension-puppeteer-debugging, .gemini/skills/extension-puppeteer-debugging, .github/skills/extension-puppeteer-debugging and .opencode/skills/extension-puppeteer-debugging in your project.
Going by SKILL.md and its folder, Extension Puppeteer Debugging needs JavaScript for the scripts in its folder and the command-line tools its instructions call (pnpm). Our summary lists: Node.js.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Extension Puppeteer Debugging is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Extension Puppeteer Debugging: Chrome Devtools MCP (managedcode/dotnet-skills, 486 stars), React Devtools MCP (sanity-io/ui, 176 stars), Project Docs Maintainer (swimmwatch/cloakbrowser-mcp, 164 stars) and Browser Testing With Devtools (shashankswe2020-ux/whoop-mcp, 165 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mengxi-ream (a GitHub user) maintains it in mengxi-ream/read-frog, which has 10,013 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 9, 2026.
Source: mengxi-ream/read-frog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.