home-modules/shared/skills/headless-web/SKILL.md
Browse the web headlessly using Chrome DevTools Protocol. Use when you need to interact with web pages - click buttons, fill forms, navigate, take screenshots, or extract dynamic content that requires JavaScript.
npx skillsauth add mccurdyc/nixos-config home-modules/shared/skills/headless-webInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Minimal CDP tools for collaborative site exploration.
Run start.js — it handles everything automatically:
ws dependency if missing$DISPLAY):9222 instance if one is runningnode ./scripts/start.js # Fresh profile
node ./scripts/start.js --profile # Copy your Chrome profile
node ./scripts/start.js --headless # Force headless mode
Override the Chrome binary with CHROME_PATH:
CHROME_PATH=/usr/bin/chromium node ./scripts/start.js
node ./scripts/nav.js https://example.com
node ./scripts/nav.js https://example.com --new
Navigate current tab or open new tab.
node ./scripts/eval.js 'document.title'
node ./scripts/eval.js 'document.querySelectorAll("a").length'
Execute JavaScript in active tab (async context). Be careful with string escaping — best to use single quotes.
node ./scripts/screenshot.js
Screenshot current viewport, returns temp file path.
node ./scripts/pick.js "Click the submit button"
Interactive element picker. Click to select, Cmd/Ctrl+Click for multi-select, Enter to finish.
node ./scripts/dismiss-cookies.js # Accept
node ./scripts/dismiss-cookies.js --reject # Reject
Automatically dismisses EU cookie consent dialogs.
Run after navigating to a page:
node ./scripts/nav.js https://example.com \
&& node ./scripts/dismiss-cookies.js
Automatically started by start.js and writes JSONL logs to:
~/.cache/agent-web/logs/YYYY-MM-DD/<targetId>.jsonl
Manually start:
node ./scripts/watch.js
Tail latest log:
node ./scripts/logs-tail.js # dump and exit
node ./scripts/logs-tail.js --follow # keep following
Summarize network responses:
node ./scripts/net-summary.js
tools
Do work in an isolated git worktree instead of switching branches. Use when creating a branch and opening a PR so the user's working directory is never disturbed. Triggers: 'create a branch', 'open a PR', 'make a change on a new branch'.
development
Search the web, fetch web page content, or search GitHub issues/PRs/repos. Use when you need current information not available locally.
tools
Start an interactive questionnaire when there are more than 5 options or bullet points that need to be addressed. Uses the ask_user tool to walk through selections interactively instead of dumping a wall of text.
tools
Show git diff output inline in the conversation without opening a browser. Covers staged, unstaged, and untracked files.