This skill should be used for browser automation tasks using Chrome DevTools Protocol (CDP). Triggers when users need to launch Chrome with remote debugging, navigate pages, execute JavaScript in browser context, capture screenshots, or interactively select DOM elements. No MCP server required.
Coding
1.7K Stars
218 Forks
Updated Jan 9, 2026, 03:56 AM
Why Use This
This skill provides specialized capabilities for cexll's codebase.
Use Cases
Developing new features in the cexll repository
Refactoring existing code to follow cexll standards
Understanding and working with cexll's codebase structure
---
name: browser
description: This skill should be used for browser automation tasks using Chrome DevTools Protocol (CDP). Triggers when users need to launch Chrome with remote debugging, navigate pages, execute JavaScript in browser context, capture screenshots, or interactively select DOM elements. No MCP server required.
---
# Browser Automation
Minimal Chrome DevTools Protocol (CDP) helpers for browser automation without MCP server setup.
## Setup
Install dependencies before first use:
```bash
npm install --prefix ~/.claude/skills/browser/browser ws
```
## Scripts
All scripts connect to Chrome on `localhost:9222`.
### start.js - Launch Chrome
```bash
scripts/start.js # Fresh profile
scripts/start.js --profile # Use persistent profile (keeps cookies/auth)
```
### nav.js - Navigate
```bash
scripts/nav.js https://example.com # Navigate current tab
scripts/nav.js https://example.com --new # Open in new tab
```
### eval.js - Execute JavaScript
```bash
scripts/eval.js 'document.title'
scripts/eval.js '(() => { const x = 1; return x + 1; })()'
```
Use single expressions or IIFE for multiple statements.
### screenshot.js - Capture Screenshot
```bash
scripts/screenshot.js
```
Returns `{ path, filename }` of saved PNG in temp directory.
### pick.js - Visual Element Picker
```bash
scripts/pick.js "Click the submit button"
```
Returns element metadata: tag, id, classes, text, href, selector, rect.
## Workflow
1. Launch Chrome: `scripts/start.js --profile` for authenticated sessions
2. Navigate: `scripts/nav.js <url>`
3. Inspect: `scripts/eval.js 'document.querySelector(...)'`
4. Capture: `scripts/screenshot.js` or `scripts/pick.js`
5. Return gathered data
## Key Points
- All operations run locally - credentials never leave the machine
- Use `--profile` flag to preserve cookies and auth tokens
- Scripts return structured JSON for agent consumption