Agent skill

Web Browser

by mitsuhiko in mitsuhiko/agent-stuff

Automate and interact with web pages through Chrome or Chromium using the Chrome DevTools Protocol (CDP): navigate, click, fill forms, inspect content, take screenshots, and debug console or network…

Apache-2.0Auto-check: warningsTesting & QA

Install Web Browser

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add mitsuhiko/agent-stuff --skill web-browser -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mitsuhiko/agent-stuff web-browser --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mitsuhiko/agent-stuff.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/web-browser .claude/skills/web-browser && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
web-browser
GitHub stars
3.2k
Token cost
~1.5k tokens
SKILL.md length
410 words
Files
19 (incl. scripts)
Skills in repo
16
Repo updated
First seen
Licence
Apache-2.0

At a glance

Automate and interact with web pages through Chrome or Chromium using the Chrome DevTools Protocol (CDP): navigate, click, fill forms, inspect content, take screenshots, and debug console or network…

  • An agent needs a real browser
  • SKILL.md covers Start Chrome (Prefer Headless), Stop Chrome, Navigate and Device Emulation (Mobile), plus 6 more sections
  • Runs JavaScript scripts from its folder
  • Tasks that involve Browser testing

What it does

Web Browser is an agent skill from mitsuhiko/agent-stuff. Automate and interact with web pages through Chrome or Chromium using the Chrome DevTools Protocol (CDP): navigate, click, fill forms, inspect content, take screenshots, and debug console or network activity. Use when an agent needs a real browser. Prefer headless Chrome unless visible browser interaction is required.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 19 other files, including scripts (for example `scripts/browser-processes.js`, `scripts/browser-processes.test.js` and `scripts/cdp.js`).

It sits in Testing & QA, covering Browser testing and Forms and invoices. It works with Chrome DevTools. The repository describes itself as: These are commands I use with agents, mostly Claude. The licence is Apache-2.0.

When your agent uses it

  • An agent needs a real browser
  • Tasks that involve Browser testing
  • Tasks that involve Forms and invoices

Example prompts

  • “/web-browser”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit 0865c84. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 18 files in scripts/ (JavaScript), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Web Browser loads about 1.5k tokens when it runs. Until then it costs about 83 tokens; SKILL.md has 410 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~83
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningMentions a credentials file (SSH keys, cloud or package-manager tokens)SKILL.md:50
    profiles are stopped, not your regular Chrome. Shutdown preserves cookies and other cached state; it never force-kills

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from mitsuhiko/agent-stuff at commit 0865c84, republished under its Apache-2.0 licence (© mitsuhiko). 410 words, ~1,452 tokens.

Download SKILL.mdSave it as .claude/skills/web-browser/SKILL.md (or your agent's skills folder). This skill also uses 18 other files; get the full folder from GitHub.
name
web-browser
description
Automate and interact with web pages through Chrome or Chromium using the Chrome DevTools Protocol (CDP): navigate, click, fill forms, inspect content, take screenshots, and debug console or network activity. Use when an agent needs a real browser. Prefer headless Chrome unless visible browser interaction is required.
license
Stolen from Mario

Web Browser Skill

Minimal CDP tools for collaborative site exploration.

Start Chrome (Prefer Headless)

bash
./scripts/start.js --headless            # Recommended: isolated reusable profile
./scripts/start.js --headless --profile  # Headless with a copy of your profile
./scripts/start.js                       # Visible browser window when needed
./scripts/start.js --headless --reset-profile  # Clear cached profile before launch

Starts Chrome with remote debugging (default port :9222). Agents should use --headless by default because it is less disruptive and supports navigation, evaluation, screenshots, emulation, and logging. User extensions are disabled for headless launches; a copied profile still provides its cookies and other browser state, but extension-based features are unavailable. Headed launches continue to load extensions normally. Use headed mode only when a person needs to see or interact with the browser, such as for pick.js, manual authentication, or debugging a headless-specific difference.

The start script only reuses a running browser when its profile and launch settings match. Stop the running skill browser before switching between headless and headed mode. Changing the debugging port does not isolate the profile: startup refuses to modify a profile already used on another port and preserves Chrome's profile locks.

Profile behavior:

  • Default mode uses: ~/.cache/agent-web/browser/fresh-profile
  • --profile mode uses: ~/.cache/agent-web/browser/profile-copy
  • The skill does not attach to your live Chrome profile directly
  • If :9222 is already used by an unknown instance, start will fail instead of reusing it

If Chrome is installed in a non-standard location, set:

bash
BROWSER_BIN=/path/to/chrome ./scripts/start.js --headless

Optional debug endpoint override:

bash
BROWSER_DEBUG_PORT=9333 ./scripts/start.js --headless

Stop Chrome

bash
./scripts/stop.js                         # Stop skill Chrome on :9222
BROWSER_DEBUG_PORT=9333 ./scripts/stop.js  # Stop skill Chrome on :9333
./scripts/stop.js --all                   # Stop all skill Chrome instances

Works for headless and headed browsers. Only processes using the skill's cached profiles are stopped, not your regular Chrome. Shutdown preserves cookies and other cached state; it never force-kills Chrome. Stop before using --reset-profile.

To switch to a visible browser:

bash
./scripts/stop.js
./scripts/start.js

Navigate

bash
./scripts/nav.js https://example.com
./scripts/nav.js https://example.com --new

Navigate current tab or open new tab.

Show full SKILL.md (161 more words)Show less

Device Emulation (Mobile)

bash
./scripts/emulate.js --list
./scripts/emulate.js iphone-14
./scripts/emulate.js pixel-7 --landscape
./scripts/emulate.js --reset

Set an active device emulation preference (viewport, DPR, touch, UA) for browser skill commands. Use --reset to clear.

Commands like nav.js, eval.js, pick.js, dismiss-cookies.js, and screenshot.js automatically apply the active preference.

Evaluate JavaScript

bash
./scripts/eval.js 'document.title'
./scripts/eval.js 'document.querySelectorAll("a").length'
./scripts/eval.js 'document.querySelector("button")?.click(); "clicked"'
./scripts/eval.js 'await Promise.resolve(document.title)'
./scripts/eval.js 'JSON.stringify(Array.from(document.querySelectorAll("a")).map(a => ({ text: a.textContent.trim(), href: a.href })).filter(link => !link.href.startsWith("https://")))'

Execute JavaScript in the active tab. Input can be an expression or statement list; the console-style completion value is printed and promises/top-level await are awaited. Be careful with string escaping, best to use single quotes.

Screenshot

bash
./scripts/screenshot.js
./scripts/screenshot.js --full-page
./scripts/screenshot.js --device iphone-14
./scripts/screenshot.js --device pixel-7 --full-page

Takes a screenshot and returns a temp file path.

  • Default: current viewport
  • --full-page: captures full document height
  • --device <preset>: temporary mobile emulation for that screenshot only

Pick Elements

bash
./scripts/pick.js "Click the submit button"

Interactive element picker. Click to select, Cmd/Ctrl+Click for multi-select, Enter to finish. This requires headed Chrome; launch start.js without --headless.

bash
./scripts/dismiss-cookies.js          # Accept cookies
./scripts/dismiss-cookies.js --reject # Reject cookies (where possible)

Automatically dismisses EU cookie consent dialogs.

Run after navigating to a page:

bash
./scripts/nav.js https://example.com && ./scripts/dismiss-cookies.js

Quick Mobile Debug Flow

bash
./scripts/start.js --headless
./scripts/nav.js https://example.com
./scripts/emulate.js iphone-14
./scripts/nav.js https://example.com      # reload with mobile UA
./scripts/dismiss-cookies.js
./scripts/screenshot.js --full-page

Background Logging (Console + Errors + Network)

Automatically started by start.js and writes JSONL logs to:

~/.cache/agent-web/logs/YYYY-MM-DD/<targetId>.jsonl

Manually start:

bash
./scripts/watch.js

Tail latest log:

bash
./scripts/logs-tail.js           # dump current log and exit
./scripts/logs-tail.js --follow  # keep following

Summarize network responses:

bash
./scripts/net-summary.js

© mitsuhiko, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 18 other files (scripts) in skills/web-browser of mitsuhiko/agent-stuff.

  • SKILL.md
  • scripts/browser-processes.js
  • scripts/browser-processes.test.js
  • scripts/cdp.js
  • scripts/devices.js
  • scripts/dismiss-cookies.js
  • scripts/emulate.js
  • scripts/emulation-state.js
  • scripts/eval.js
  • scripts/logs-tail.js
  • scripts/nav.js
  • scripts/net-summary.js
  • scripts/package-lock.json
  • scripts/package.json
  • scripts/pick.js
  • scripts/screenshot.js
  • scripts/start.js
  • scripts/stop.js
  • scripts/watch.js

Open the folder on GitHubat commit 0865c84

Compare with similar skills

Web Browser next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Web Browser compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Web Browser this skillmitsuhiko/agent-stuff3.2k—~1.5kAutomated safety check: WarnApache-2.0
Chrome Devtools Axilayer5io/sistent1382 repos~989Automated safety check: PassApache-2.0
Browser NavigationFactory-AI/factory-plugins110—~2.7kAutomated safety check: PassNone
Playwright CLIsanity-io/sanity6.4k18 repos~1.9kAutomated safety check: PassMIT
PlaywrightJetBrains/skills36311 repos~986Automated safety check: PassApache-2.0
Playwright6BNBN/FlowPilot134—~1kAutomated safety check: PassApache-2.0

Similar skills

  • Chrome Devtools Axi

    layer5io/sistent

    Control a Chrome browser session through the chrome-devtools-axi CLI - navigate, snapshot, click, fill forms, run JavaScript, inspect console and network, take screenshots, audit performance.

    138 GitHub starsUsed in 2 repos~989 tokens
    Testing & QAAuto-check passed
  • Browser Navigation

    Factory-AI/factory-plugins

    Automate browser interactions for web testing, form filling, screenshots, and data extraction.

    110 GitHub stars~2.7k tokensUpdated 22 days ago
    Productivity & AutomationAuto-check passed
  • Playwright CLI

    sanity-io/sanity

    Official

    Automates browser interactions for web testing, form filling, screenshots, and data extraction.

    6.4k GitHub starsUsed in 18 repos~1.9k tokens
    Testing & QAAuto-check passed
  • Playwright

    JetBrains/skills

    Official

    A skill your agent uses when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via playwright-cli…

    363 GitHub starsUsed in 11 repos~986 tokens
    Testing & QAAuto-check passed
  • Playwright

    6BNBN/FlowPilot

    A skill your agent uses when the task requires automating a real browser from the terminal in Cursor, including navigation, form filling, snapshots, screenshots, data extraction, and UI-flow…

    134 GitHub stars~1k tokensUpdated 6 mo ago
    Testing & QAAuto-check passed
  • Openai Playwright

    trailofbits/skills-curated

    Official

    A skill your agent uses when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via playwright-cli…

    512 GitHub stars~945 tokensUpdated 2 mo ago
    Testing & QAAuto-check: notes

More from mitsuhiko/agent-stuff

All 16 skills in this repo
  • Anachb

    mitsuhiko/agent-stuff

    Austrian public transport (VOR AnachB) for all of Austria. An agent skill from mitsuhiko/agent-stuff.

    3.2k GitHub starsUsed in 3 repos~1.2k tokens
    Auto-check passed
  • Librarian

    mitsuhiko/agent-stuff

    Cache and refresh remote git repositories under ~/.cache/checkouts/<host/<org/<repo so future references can reuse a local copy.

    3.2k GitHub starsUsed in 1 repo~519 tokens
    Auto-check passed
  • Google Workspace

    mitsuhiko/agent-stuff

    Access Google Workspace APIs (Drive, Docs, Calendar, Gmail, Sheets, Slides, Chat, People) via local helper scripts without MCP.

    3.2k GitHub stars~919 tokensUpdated 10 days ago
    Auto-check passed
  • Oebb Scotty

    mitsuhiko/agent-stuff

    Austrian rail travel planner (ÖBB Scotty). An agent skill from mitsuhiko/agent-stuff.

    3.2k GitHub stars~2.4k tokensUpdated 10 days ago
    Auto-check passed
  • Sentry

    mitsuhiko/agent-stuff

    Fetch and analyze Sentry issues, events, transactions, and logs.

    3.2k GitHub stars~1.8k tokensUpdated 10 days ago
    Auto-check passed
  • Native Web Search

    mitsuhiko/agent-stuff

    Trigger native web search. An agent skill from mitsuhiko/agent-stuff.

    3.2k GitHub starsUsed in 1 repo~351 tokens
    Auto-check passed

Works with

Questions about Web Browser

What does Web Browser do?

Automate and interact with web pages through Chrome or Chromium using the Chrome DevTools Protocol (CDP): navigate, click, fill forms, inspect content, take screenshots, and debug console or network…. Web Browser is an agent skill from mitsuhiko/agent-stuff. Automate and interact with web pages through Chrome or Chromium using the Chrome DevTools Protocol (CDP): navigate, click, fill forms, inspect content, take screenshots, and debug console or network activity.

When should I use Web Browser?

Web Browser fits situations like: an agent needs a real browser; tasks that involve Browser testing; tasks that involve Forms and invoices.

How do I install Web Browser in Claude Code?

Run `npx skills add mitsuhiko/agent-stuff --skill web-browser -a claude-code`. Or copy the skill folder (skills/web-browser in mitsuhiko/agent-stuff) into .claude/skills/web-browser in your project. Claude Code loads it when a task matches its description.

How do I install Web Browser in Codex?

Run `npx skills add mitsuhiko/agent-stuff --skill web-browser -a codex`. Or copy the skill folder (skills/web-browser in mitsuhiko/agent-stuff) into .agents/skills/web-browser in your project. Codex loads it when a task matches its description.

Can I use Web Browser in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mitsuhiko/agent-stuff --skill web-browser -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/web-browser, .gemini/skills/web-browser, .github/skills/web-browser and .opencode/skills/web-browser in your project.

What does Web Browser need to run?

Going by SKILL.md and its folder, Web Browser needs JavaScript for the scripts in its folder. Our summary lists: Node.js.

Does Web Browser access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Web Browser safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Web Browser use?

Web Browser is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Web Browser use?

About 1.5k tokens (SKILL.md is roughly 5.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Web Browser?

Skills that share tags, products or a category with Web Browser: Chrome Devtools Axi (layer5io/sistent, 138 stars), Browser Navigation (Factory-AI/factory-plugins, 110 stars), Playwright CLI (sanity-io/sanity, 6.4k stars) and Playwright (JetBrains/skills, 363 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Web Browser?

mitsuhiko (a GitHub user) maintains it in mitsuhiko/agent-stuff, which has 3,176 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on September 27, 2026.

Source: mitsuhiko/agent-stuff on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.