Claude Code plugin for browser automation — built on Microsoft's official @playwright/cli. No MCP server, no port to babysit; Claude drives the browser through plain shell calls.
/plugin marketplace add generativereality/plugins
/plugin install browser-automation@generativerealityThen, the first time Claude needs the browser on this machine, the skill will guide it through:
npm install -g @playwright/cli@latest
playwright-cli installAnd the first time it runs in a workspace, it will write .playwright/cli.config.json with sane defaults so the browser opens headed by default and output lands in .browser-automation/.
- A
/browserskill that documents the setup, the parallel-session pattern, and the auth-persistence flow. - A pointer to the upstream
playwright-cliSKILL.md (shipped inside the CLI) for the full command reference — read on demand, no duplication.
This plugin previously registered a Playwright MCP server connected to a manually-launched Chrome on a debug port. That stack disconnected mid-flow, spawned per-tab at parallel scale, and forced restart-to-clear-cache loops. 0.2.0 drops the MCP entirely and uses playwright-cli instead.
What you get:
- No MCP disconnect —
playwright-cliruns through Bash like any other shell tool. - No per-tab browser spawn — named sessions (
-s=name) share a single browser instance with isolated contexts. - No restart-to-clear-cache when the skill is edited.
- ~4× lower token usage than the MCP version per run (snapshots written to disk; agent reads what it needs).
- CDP-attach is preserved:
playwright-cli attach --cdp=chromeconnects to your normal Chrome the same way the old plugin did. - Existing persistent Chrome profile is preserved: pass
--profile=/path/to/profiletoopento reuse the same user-data-dir the old plugin built up.
- Node.js v18+ (for the
npm install -gstep). - A browser. Chrome on the system path is auto-detected; otherwise
playwright-cli install-browserdownloads a Playwright-managed one. - macOS / Linux / Windows — anywhere Playwright runs.
- Workspace defaults via
.playwright/cli.config.json(headed by default,outputDir: ".browser-automation"). - Browser-source preference: attach via CDP to a running Chrome on port 9223 → managed launch on an existing
--profile=…→ fresh in-memory profile. - One named session per Claude Code tab (
-s=tab1, orPLAYWRIGHT_CLI_SESSION=...) for safe parallel use. state-save/state-loadto log in once and reuse cookies across runs (Cloudflare dashboard, Porkbun, GitHub web UI, etc.).detachvsclose—detachis the right cleanup for attached external browsers;closeis for managed ones.