Agent skill · Audited from source
chrome-devtools
skill · mrgoonie/claudekit-skillsLicence not declaredAudited 24 Oct 2026 · source d655ab03f566
Is it safe? No — BLOCK, grade D (68/100). We read this skill's source at commit d655ab03f566 and observed network and shell access and no hard-coded secrets. The audit raised 10 findings, 2 critical or high. What it does: Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and…
Cite
Cite this page
ModelsAtlas. “chrome-devtools (mrgoonie/claudekit-skills)”. Retrieved 24 Oct 2026. https://modelsatlas.com/skills/mrgoonie/chrome-devtools
Blocked. The page stays public so you can check this skill if someone recommended it to you. The audit found 2 critical or high findings, starting with “Code injection” in scripts/evaluate.js:32. Do not install it without reading them.
Trust audit
Audit 0.4.1 · source read 24 Oct 2026
BLOCK means the audit found something that could harm you or your machine. Grade D is shared by 642 of 14,816 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkDeclared3 observations
- ShellDeclared2 observations
- DependenciesNot pinnedSome versions float
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | WARN | 5 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | FAIL | 5 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (10)
HIGHCode injectioncode.eval_exec · scripts/evaluate.js:32
return eval(script);
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · scripts/lib/selector.js:203
await page.$eval(parsed.selector, el => el.value = '');
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
MEDIUMInventory / provenanceinv.symlink · plugins/ai-ml-tools/skills/ai-multimodal
plugins/ai-ml-tools/skills/ai-multimodal
- Why
- link not followed
- Fix
- —
MEDIUMInventory / provenanceinv.symlink · plugins/ai-ml-tools/skills/context-engineering
plugins/ai-ml-tools/skills/context-engineering
- Why
- link not followed
- Fix
- —
MEDIUMInventory / provenanceinv.symlink · plugins/ai-ml-tools/skills/google-adk-python
plugins/ai-ml-tools/skills/google-adk-python
- Why
- link not followed
- Fix
- —
MEDIUMInventory / provenanceinv.symlink · plugins/backend-tools/skills/backend-development
plugins/backend-tools/skills/backend-development
- Why
- link not followed
- Fix
- —
MEDIUMInventory / provenanceinv.symlink · plugins/backend-tools/skills/better-auth
plugins/backend-tools/skills/better-auth
- Why
- link not followed
- Fix
- —
LOWCode injectioncode.eval_exec · scripts/__tests__/selector.test.js:111
it('should block eval( injection', () => {- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
LOWCode injectioncode.eval_exec · scripts/__tests__/selector.test.js:120
() => parseSelector('//div[Function("return 1")()]'),- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
LOWSupply chainsupply.unpinned · scripts/package.json
puppeteer, debug, yargs
- Why
- 3 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
Audit 0.4.1 · source sha d655ab03f566 · 24 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publishermrgoonie GitHub userOwner of the repository this skill is read from
- Source foldermrgoonie/claudekit-skills/.claude/skills/chrome-devtoolsThe exact folder we audited
- LicenceNot declaredAs the repository states it
- Commit pinned for this verdictd655ab03f566A new audit runs when the source changes
- Repository statusNot archivedLast push 204 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and…
---
name: chrome-devtools
description: Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.
license: Apache-2.0
---
# Chrome DevTools Agent Skill
Browser automation via executable Puppeteer scripts. All scripts output JSON for easy parsing.
## Quick Start
**CRITICAL**: Always check `pwd` before running scripts.
### Installation
#### Step 1: Install System Dependencies (Linux/WSL only)
On Linux/WSL, Chrome requires system libraries. Install them first:
```bash
pwd # Should show current working directory
cd .claude/skills/chrome-devtools/scripts
./install-deps.sh # Auto-detects OS and installs required libs
```
Supports: Ubuntu, Debian, Fedora, RHEL, CentOS, Arch, Manjaro
**macOS/Windows**: Skip this step (dependencies bundled with Chrome)
#### Step 2: Install Node Dependencies
```bash
npm install # Installs puppeteer, debug, yargs
```
#### Step 3: Install ImageMagick (Optional, Recommended)
ImageMagick enables automatic screenshot compression to keep files under 5MB:
**macOS:**
```bash
brew install imagemagick
```
**Ubuntu/Debian/WSL:**
```bash
sudo apt-get install imagemagick
```
**Verify:**
```bash
magick -version # or: convert -version
```
Without ImageMagick, screenshots >5MB will not be compressed (may fail to load in Gemini/Claude).
### Test
```bash
node navigate.js --url https://example.com
# Output: {"success": true, "url": "https://example.com", "title": "Example Domain"}
```
## Available Scripts
All scripts are in `.claude/skills/chrome-devtools/scripts/`
**CRITICAL**: Always check `pwd` before running scripts.
### Script Usage
- `./scripts/README.md`
### Core Automation
- `navigate.js` - Navigate to URLs
- `screenshot.js` - Capture screenshots (full page or element)
- `click.js` - Click elements
- `fill.js` - Fill form fields
- `evaluate.js` - Execute JavaScript in page context
### Analysis & Monitoring
- `snapshot.js` - Extract interactive elements with metadata
- `console.js` - Monitor console messages/errors
- `network.js` - Track HTTP requests/responses
- `performance.js` - Measure Core Web Vitals + record traces
## Usage Patterns
### Single Command
```bash
pwd # Should show current working directory
cd .claude/skills/chrome-devtools/scripts
node screenshot.js --url https://example.com --output ./docs/screenshots/page.png
```
**Important**: Always save screenshots to `./docs/screenshots` directory.
### Automatic Image Compression
Screenshots are **automatically compressed** if they exceed 5MB to ensure compatibility with Gemini API and Claude Code (which have 5MB limits). This uses ImageMagick internally:
```bash
# Default: auto-compress if >5MB
node screenshot.js --url https://example.com --output page.png
# Custom size threshold (e.g., 3MB)
node screenshot.js --url https://example.com --output page.png --max-size 3
# Disable compression
node screenshot.js --url https://example.com --output page.png --no-compress
```
**Compression behavior:**
- PNG: Resizes to 90% + quality 85 (or 75% + quality 70 if still too large)
- JPEG: Quality 80 + progressive encoding (or quality 60 if still too large)
- Other formats: Converted to JPEG with compression
- Requires ImageMagick installed (see imagemagick skill)
**Output includes compression info:**
```json
{
"success": true,
"output": "/path/to/page.png",
"compressed": true,
"originalSize": 8388608,
"size": 3145728,
"compressionRatio": "62.50%",
"url": "https://example.com"
}
```
### Chain Commands (reuse browser)
```bash
# Keep browser open with --close false
node navigate.js --url https://example.com/login --close false
node fill.js --selector "#email" --value "[email protected]" --close false
node fill.js --selector "#password" --value "secret" --close false
node click.js --selector "button[type=submit]"
```
### Parse JSON Output
```bash
# Extract specific fields with jq
node performance.js --url https://example.com | jq '.vitals.LCP'
# Save to file
node network.js --url https://example.com --output /tmp/requests.json
```
## Execution Protocol
### Working Directory Verification
BEFORE executing any script:
1. Check current working directory with `pwd`
2. Verify in `.claude/skills/chrome-devtools/scripts/` directory
3. If wrong directory, `cd` to correct location
4. Use absolute paths for all output files
Example:
```bash
pwd # Should show: .../chrome-devtools/scripts
# If wrong:
cd .claude/skills/chrome-devtools/scripts
```
### Output Validation
AFTER screenshot/capture operations:
1. Verify file created with `ls -lh <output-path>`
2. Read screenshot using Read tool to confirm content
3. Check JSON output for success:true
4. Report file size and compression status
Example:
```bash
node screenshot.js --url https://example.com --output ./docs/screenshots/page.png
ls -lh ./docs/screenshots/page.png # Verify file exists
# Then use Read tool to visually inspect
```
5. Restart working directory to the project root.
### Error Recovery
If script fails:
1. Check error message for selector issues
2. Use snapshot.js to discover correct selectors
3. Try XPath selector if CSS selector fails
4. Verify element is visible and interactive
Example:
```bash
# CSS selector fails
node click.js --url https://example.com --selector ".btn-submit"
# Error: waiting for selector ".btn-submit" failed
# Discover correct selector
node snapshot.js --url https://example.com | jq '.elements[] | select(.tagName=="BUTTON")'
# Try XPath
node click.js --url https://example.com --selector "//button[contains(text(),'Submit')]"
```
### Common Mistakes
❌ Wrong working directory → output files go to wrong location
❌ Skipping output validation → silent failures
❌ Using complex CSS selectors without testing → selector errors
❌ Not checking element visibility → timeout errors
✅ Always verify `pwd` before running scriptsExcerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit d655ab0
npm install # Installs puppeteer, debug, yargs npm install puppeteer npm install puppeteer-core npm install
git clone https://github.com/mrgoonie/claudekit-skills git -C claudekit-skills checkout d655ab03f566
Commands as the repository documents them: shown, never run by us. Our verdict covers commit d655ab03f566 only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
Audit history
Every audit, every source change
- ✕BLOCK D 68 / 100
first audit · source
d655ab03f566
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/mrgoonie/chrome-devtools/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
anomalyco/opentui
Build terminal UIs with OpenTUI. Covers Core, frameworks, components, application APIs, testing, extensions, integrations, deployment, and public API lookup.
steipete/agent-scripts
Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.
alchaincyf/darwin-skill
Darwin Skill 2.0 (达尔文.skill 2.0): autonomous skill optimizer, v2.0 integrates Microsoft Research SkillLens (arXiv 2605.23899) 9-dim rubric + SkillOpt (arXiv 2605.23904) validation-gated design + human-in-the-loop…
Add this badge to your README
[](https://modelsatlas.com/skills/mrgoonie/chrome-devtools/)
<a href="https://modelsatlas.com/skills/mrgoonie/chrome-devtools/"><img src="https://modelsatlas.com/skills/mrgoonie/chrome-devtools/badge.svg" alt="ModelsAtlas: BLOCK D"></a>
Questions about chrome-devtools
What does the chrome-devtools skill do?
Is chrome-devtools safe to install?
What can chrome-devtools access on my machine?
Which assistants does chrome-devtools work with?
How current is this page?
Sources
- github.com/mrgoonie/claudekit-skills/tree/main/.claude/skills/ch — the audited source at commit d655ab03f566 and every finding aboveObserved · 24 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the chrome-devtools skill do?
- Is chrome-devtools safe to install?
- What can chrome-devtools access on my machine?