К основному содержанию
скилл CX Codex

chrome-devtools · mrgoonie — скилл для Claude Code: автоматизация браузера

Скилл запускает Puppeteer-скрипты из командной строки: скриншоты, клики, заполнение форм, замер Core Web Vitals и разбор сетевых запросов.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add mrgoonie/claudekit-skills --skill chrome-devtools -a claude-code
Открыть на GitHub

Что делает chrome-devtools

Внутри — набор исполняемых скриптов на Puppeteer, каждый печатает JSON, поэтому вывод удобно резать через jq. navigate.js открывает страницу, screenshot.js снимает её целиком или отдельный элемент, click.js и fill.js работают с формами, evaluate.js выполняет ваш JavaScript в контексте страницы. Для разбора есть snapshot.js (интерактивные элементы с метаданными), console.js, network.js и performance.js с Core Web Vitals и записью трейсов.

Скрипты лежат в .claude/skills/chrome-devtools/scripts/, и перед запуском нужно убедиться, что вы в этой папке: авторы отдельно предупреждают про проверку pwd, иначе файлы уедут не туда. На Linux и WSL сначала ставятся системные библиотеки через ./install-deps.sh, потом npm install (puppeteer, debug, yargs). На macOS и Windows первый шаг пропускается.

Скриншоты больше 5 МБ сжимаются автоматически, но только если в системе есть ImageMagick. Без него крупные PNG не ужмутся и могут не загрузиться в Gemini или Claude — это повод поставить imagemagick заранее. Порог меняется флагом --max-size, сжатие отключается через --no-compress.

Цепочки команд работают за счёт --close false: браузер остаётся открытым между вызовами, так что логин можно собрать из нескольких шагов подряд. Если селектор не находится, snapshot.js показывает, что реально есть на странице, и тогда стоит попробовать XPath.

Какие задачи решает

  • снять скриншот страницы и сохранить его в ./docs/screenshots
  • заполнить форму логина и отправить её без ручного клика
  • вытащить заголовки и ссылки со списка товаров
  • замерить LCP и сравнить с порогом в скрипте
  • собрать ошибки консоли за первые секунды загрузки

Примеры запросов агенту

  • Сделай скриншот страницы https://example.com и положи в ./docs/screenshots/page.png
  • Открой страницу логина, заполни #email и #password, нажми кнопку отправки
  • Замерь Core Web Vitals для https://example.com и покажи LCP

Как установить chrome-devtools

1Через Skills CLI (Vercel)

npx skills add mrgoonie/claudekit-skills --skill chrome-devtools -a claude-code

2Вручную: положить файлы

~/.claude/skills/chrome-devtools/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/chrome-devtools/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о chrome-devtools

Как установить chrome-devtools в Claude Code?

Выполните npx skills add mrgoonie/claudekit-skills --skill chrome-devtools -a claude-code. Скилл появится по пути ~/.claude/skills/chrome-devtools/SKILL.md.

Что делает chrome-devtools?

Даёт агенту готовые Puppeteer-скрипты: навигация, скриншоты, клики, заполнение полей, выполнение JS на странице, а также мониторинг консоли, сети и производительности. Все скрипты возвращают JSON.

Что нужно для работы скилла?

Node-зависимости ставятся через npm install в папке скриптов. На Linux и WSL перед этим запускают ./install-deps.sh, а для сжатия скриншотов нужен ImageMagick.

Исходный текст

SKILL.md · Apache-2.0
---
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 scripts
✅ Always validate output after screenshots
✅ Use snapshot.js to discover selectors
✅ Test selectors with simple commands first

## Common Workflows

### Web Scraping
```bash
node evaluate.js --url https://example.com --script "
  Array.from(document.querySelectorAll('.item')).map(el => ({
    title: el.querySelector('h2')?.textContent,
    link: el.querySelector('a')?.href
  }))
" | jq '.result'
```

### Performance Testing
```bash
PERF=$(node performance.js --url https://example.com)
LCP=$(echo $PERF | jq '.vitals.LCP')
if (( $(echo "$LCP < 2500" | bc -l) )); then
  echo "✓ LCP passed: ${LCP}ms"
else
  echo "✗ LCP failed: ${LCP}ms"
fi
```

### Form Automation
```bash
node fill.js --url https://example.com --selector "#search" --value "query" --close false
node click.js --selector "button[type=submit]"
```

### Error Monitoring
```bash
node console.js --url https://example.com --types error,warn --duration 5000 | jq '.messageCount'
```

## Script Options

All scripts support:
- `--headless false` - Show browser window
- `--close false` - Keep browser open for chaining
- `--timeout 30000` - Set timeout (milliseconds)
- `--wait-until networkidle2` - Wait strategy

See `./scripts/README.md` for complete options.

## Output Format

All scripts output JSON to stdout:
```json
{
  "success": true,
  "url": "https://example.com",
  ... // script-specific data
}
```

Errors go to stderr:
```json
{
  "success": false,
  "error": "Error message"
}
```

## Finding Elements

Use `snapshot.js` to discover selectors:
```bash
node snapshot.js --url https://example.com | jq '.elements[] | {tagName, text, selector}'
```

## Troubleshooting

### Common Errors

**"Cannot find package 'puppeteer'"**
- Run: `npm install` in the scripts directory

**"error while loading shared libraries: libnss3.so"** (Linux/WSL)
- Missing system dependencies
- Fix: Run `./install-deps.sh` in scripts directory
- Manual install: `sudo apt-get install -y libnss3 libnspr4 libasound2t64 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1`

**"Failed to launch the browser process"**
- Check system dependencies installed (Linux/WSL)
- Verify Chrome downloaded: `ls ~/.cache/puppeteer`
- Try: `npm rebuild` then `npm install`

**Chrome not found**
- Puppeteer auto-downloads Chrome during `npm install`
- If failed, manually trigger: `npx puppeteer browsers install chrome`

### Script Issues

**Element not found**
- Get snapshot first to find correct selector: `node snapshot.js --url <url>`

**Script hangs**
- Increase timeout: `--timeout 60000`
- Change wait strategy: `--wait-until load` or `--wait-until domcontentloaded`

**Blank screenshot**
- Wait for page load: `--wait-until networkidle2`
- Increase timeout: `--timeout 30000`

**Permission denied on scripts**
- Make executable: `chmod +x *.sh`

**Screenshot too large (>5MB)**
- Install ImageMagick for automatic compression
- Manually set lower threshold: `--max-size 3`
- Use JPEG format instead of PNG: `--format jpeg --quality 80`
- Capture specific element instead of full page: `--selector .main-content`

**Compression not working**
- Verify ImageMagick installed: `magick -version` or `convert -version`
- Check file was actually compressed in output JSON: `"compressed": true`
- For very large pages, use `--selector` to capture only needed area

## Reference Documentation

Detailed guides available in `./references/`:
- [CDP Domains Reference](./references/cdp-domains.md) - 47 Chrome DevTools Protocol domains
- [Puppeteer Quick Reference](./references/puppeteer-reference.md) - Complete Puppeteer API patterns
- [Performance Analysis Guide](./references/performance-guide.md) - Core Web Vitals optimization

## Advanced Usage

### Custom Scripts
Create custom scripts using shared library:
```javascript
import { getBrowser, getPage, closeBrowser, outputJSON } from './lib/browser.js';
// Your automation logic
```

### Direct CDP Access
```javascript
const client = await page.createCDPSession();
await client.send('Emulation.setCPUThrottlingRate', { rate: 4 });
```

See reference documentation for advanced patterns and complete API coverage.

## External Resources

- [Puppeteer Documentation](https://pptr.dev/)
- [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/)
- [Scripts README](./scripts/README.md)

© mrgoonie · Apache-2.0 · mrgoonie/claudekit-skills

Похожие скиллы

Все скиллы по теме «Браузер и парсинг» →

Сначала — chrome-devtools от других авторов.

chrome-devtools ChromeDevTools Скилл подключает Chrome DevTools через MCP для отладки страниц, браузерной автоматизации, анализа производительности и сетевых запросов. CX Codex +1 8 600установок chrome-devtools официальный github Управляет живым Chrome через Chrome DevTools MCP: открывает страницы, проверяет ошибки и пишет трассы производительности. Нужен для отладки интерфейса прямо из агента. 15 258установок agent-browser vercel-labs Скилл управляет браузером через CLI: открывает страницы, заполняет формы, нажимает кнопки и проверяет веб-приложения. Подходит для задач, где агенту нужно действовать в интерфейсе. CX Codex +1 1 200 000установок webapp-testing официальный anthropics Скилл запускает проверки локальных веб-приложений через Playwright: помогает отлаживать UI, делать скриншоты и смотреть логи браузера. 186 758установок computer-use stablyai Скилл ведёт видимое окно приложения через orca computer: читает дерево доступности, кликает, печатает и снимает скриншоты. Нужен, когда задача упирается в интерфейс. CX Codex +1 239 400установок browser-use browser-use Даёт агенту живой Chrome через CDP: клики, ввод, скриншоты и страницы, которым нужен JS или ваша логин-сессия. CX Codex +1 98 200установок playwright-cli microsoft Скилл, который даёт агенту браузер: открыть страницу, кликнуть по элементу, снять снимок и разобрать тесты Playwright. CX Codex +1 195 700установок last30days mvanhorn Собирает посты и реакции по любой теме за последние 30 дней из Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub и веба. Пригодится, когда нужно понять, что реально говорят люди, а не что пишут в обзорах. CX Codex +1 53 000установок

Из того же набора21

backend-development Скилл ведёт агента по проектированию API, схем БД, аутентификации и CI/CD. Пригодится, когда бэкенд пишется с нуля или переезжает в прод. CX Codex +1 2 300установок sequential-thinking Скилл разбивает сложный анализ на цепочку шагов, пересматривает выводы и строит ветки решений. Пригодится при проектировании систем и поиске скрытых багов. CX Codex +1 1 800установок threejs Скилл для ИИ-кодинга, который помогает собирать 3D-сцены, шейдеры и VR-опыты на Three.js. Пригодится, когда проект упирается в WebGL или WebGPU. CX Codex +1 1 200установок devops Скилл для деплоя и управления инфраструктурой: Cloudflare Workers, Docker, GCP, Kubernetes. Пригодится, когда агенту нужно развернуть сервис или разобрать кластер. CX Codex +1 987установок aesthetic Скилл для ИИ-агента, который помогает проектировать интерфейсы: разбирает чужие макеты, генерирует варианты дизайна и доводит их до внятного вида. CX Codex +1 714установок problem-solving Набор техник креативного мышления для выхода из тупика при проектировании кода и архитектуры. Помогает агенту взглянуть на задачу с неожиданной стороны. CX Codex +1 570установок debugging Систематизирует отладку кода: запрещает править наугад без поиска первопричины и требует проверять результат тестами перед закрытием задачи. CX Codex +1 569установок media-processing Готовит команды FFmpeg и ImageMagick для пакетного сжатия видео, нарезки превью, конвертации аудио и генерации HLS-плейлистов прямо в терминале. CX Codex +1 558установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой