Allows interacting with web pages by performing actions such as clicking buttons, filling out forms, and navigating links. It works by remote-controlling Google Chrome or Chromium browsers using the Chrome DevTools Protocol (CDP). When Claude needs to browse the web, it can use this skill to do so.
Minimal CDP-based browser automation for collaborative site exploration, UI testing, and web scraping.
This skill provides direct control over Chrome via the Chrome DevTools Protocol (CDP). It runs Chrome in headless mode with remote debugging enabled, allowing you to navigate, interact with pages, execute JavaScript, capture screenshots, and monitor network traffic.
pi install path/to/pcaropi/skills/web-browser
┌─────────────────┐ CDP (WebSocket) ┌──────────────────┐
│ scripts/*.js │ ◄──────────────────────►│ Chrome Headless │
│ (CDP Client) │ localhost:9222 │ (Debug Mode) │
└─────────────────┘ └──────────────────┘
│
▼
┌─────────────────┐
│ ~/.cache/agent- │
│ web/logs/*.jsonl│ (Console + Network logs)
└─────────────────┘
--headless=new| Script | Description |
|--------|-------------|
| start.js | Start Chrome on port 9222 with remote debugging |
| nav.js | Navigate to URL (current or new tab) |
| eval.js | Execute JavaScript in the active page context |
| screenshot.js | Capture viewport screenshot |
| pick.js | Interactive element picker |
| dismiss-cookies.js | Auto-dismiss EU cookie consent dialogs |
| watch.js | Background logging (auto-started by start.js) |
| logs-tail.js | View captured logs |
| net-summary.js | Summarize network responses |
./scripts/start.js # Fresh profile (clean session)
./scripts/start.js --profile # Use your Chrome profile (cookies, logins)
./scripts/nav.js https://example.com
./scripts/nav.js https://example.com --new # Open in new tab
# Simple expressions
./scripts/eval.js 'document.title'
./scripts/eval.js 'document.querySelectorAll("a").length'
# Extract structured data
./scripts/eval.js 'JSON.stringify(Array.from(document.querySelectorAll("a")).map(a => ({ text: a.textContent.trim(), href: a.href })))'
./scripts/screenshot.js
# Returns: /tmp/screenshot-<timestamp>.png
./scripts/pick.js "Click the submit button"
Opens the page for visual selection. Click to select, Cmd/Ctrl+Click for multi-select, Enter to finish.
./scripts/dismiss-cookies.js # Accept cookies
./scripts/dismiss-cookies.js --reject # Reject cookies
# View current logs
./scripts/logs-tail.js
# Follow logs in real-time
./scripts/logs-tail.js --follow
# Summarize network responses
./scripts/net-summary.js
./scripts/start.js --profile
./scripts/nav.js https://spa-website.com
./scripts/dismiss-cookies.js
./scripts/eval.js '[...document.querySelectorAll(".item")].map(el => el.textContent)'
./scripts/start.js
./scripts/nav.js https://myapp.test
./scripts/pick.js "Click the login button"
./scripts/eval.js 'document.querySelector(".user-menu")?.textContent'
./scripts/screenshot.js
./scripts/start.js --profile
./scripts/nav.js https://buggy-site.com
# ... interact with the page ...
./scripts/logs-tail.js # Check for console errors
./scripts/net-summary.js # Check network responses
Background logs are written to:
~/.cache/agent-web/logs/YYYY-MM-DD/<targetId>.jsonl
Each line is a JSON object with:
Stolen from Mario.
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer