Playwright cli
Skill joaquimscosta/arkhe-claude-plugins/plugins/playwright/skills/playwright-cli
Supercharge Claude Code with 109 specialized components — 22 agents, 32 commands, 55 skills across 13 modular plugins. Deep reasoning, autonomous dev loops, DDD architecture, design system enforcement, git automation, and more.
npx -y skills add joaquimscosta/arkhe-claude-plugins --skill playwright-cliAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 21 stars21 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Browser automation via Playwright CLI for navigating pages, interacting with elements, capturing screenshots, and testing web applications through shell commands. Use when user mentions "playwright", "browser automation", "take a screenshot", "browser testing", "headless browser", "web testing", "fill out a form", "e2e test", or needs to automate browser workflows from the command line. This is a pre-installed CLI tool — do NOT install anything via npx or npm. Invoke this skill first, then use playwright-cli bash commands.
SKILL.md
6.1 KB, as published. Nobody here has run it
Playwright CLI
Automate browsers through shell commands via the Bash tool.
Core Workflow
Every interaction follows this pattern:
- Open a page:
playwright-cli open <url> - Snapshot to discover elements:
playwright-cli snapshot - Interact using refs from the snapshot:
playwright-cli click <ref> - Verify the result:
playwright-cli screenshotorplaywright-cli snapshot
Always run snapshot before interacting — element refs come exclusively from
snapshot output and become stale after navigation.
Command Reference
Navigation
| Command | Description |
|---|---|
open <url> | Open URL in new page |
goto <url> | Navigate current page |
go-back / go-forward | Browser back/forward |
reload | Reload current page |
close | Close the browser |
Interaction
| Command | Description |
|---|---|
click <ref> | Click an element |
dblclick <ref> | Double-click an element |
fill <ref> <text> | Clear field, then type text |
type <text> | Type into focused element (appends) |
check <ref> / uncheck <ref> | Toggle checkbox |
select <ref> <values> | Select dropdown option(s) |
hover <ref> | Hover over element |
drag <start> <end> | Drag between elements |
upload <ref> <paths> | Upload file(s) to file input |
eval "<js>" | Evaluate JavaScript on page |
eval "<js>" <ref> | Evaluate JavaScript on element |
dialog-accept [text] | Accept dialog (optional prompt text) |
dialog-dismiss | Dismiss dialog |
resize <w> <h> | Resize browser window |
Output
| Command | Description |
|---|---|
screenshot [ref] [--filename=f] | Capture PNG screenshot (page or element) |
snapshot [--filename=f] | Accessibility tree — structured, token-efficient |
pdf [--filename=f] | Generate PDF of the page |
Important:
--filenameresolves relative to the working directory, NOToutputDir. When using--filename, always prepend the project'soutputDirvalue (check.playwright/cli.config.json; defaults to.playwright-cli). Example:playwright-cli screenshot --filename=<outputDir>/my-screenshot.png
Tabs
| Command | Description |
|---|---|
tab list | List open tabs |
tab create [url] | Open new tab |
tab select <index> | Switch to tab |
tab close [index] | Close tab |
Keyboard
playwright-cli press Enter # Enter, Tab, Escape, ArrowDown, etc.
playwright-cli keydown Shift # Hold key down
playwright-cli keyup Shift # Release key
Mouse
playwright-cli mousemove 150 300 # Move to coordinates
playwright-cli mousedown [button] # Press button (left/right)
playwright-cli mouseup [button] # Release button
playwright-cli mousewheel 0 100 # Scroll (deltaX deltaY)
Sessions
- Default session — all commands share one session automatically
- Named sessions —
playwright-cli -s=<name> open <url>for parallel browsers - List sessions —
playwright-cli list - Close one —
playwright-cli -s=<name> close - Close all —
playwright-cli close-all - Force kill —
playwright-cli kill-all - Persistent profile —
playwright-cli open <url> --persistent - Custom profile —
playwright-cli open <url> --profile=/path/to/dir - Delete data —
playwright-cli delete-dataorplaywright-cli -s=<name> delete-data - Environment variable —
PLAYWRIGHT_CLI_SESSION=my-project
Configuration
playwright-cli open <url> --browser=chromium # chromium (default), firefox, webkit, chrome, msedge
playwright-cli open <url> --headed # Visible browser window
playwright-cli open <url> --config=config.json # Custom config file
playwright-cli open <url> --extension # Connect via browser extension
Create .playwright/cli.config.json in the project for persistent settings:
{ "browser": { "browserName": "chromium", "launchOptions": { "headless": true } }, "outputDir": ".playwright-cli", "timeouts": { "action": 5000, "navigation": 60000 } }
Other options: network.allowedOrigins, network.blockedOrigins, saveVideo.
Environment variables use PLAYWRIGHT_MCP_ prefix (e.g., PLAYWRIGHT_MCP_BROWSER=firefox).
Common Pitfalls
- Interacting without snapshot — refs are unknown until
snapshotruns - Stale refs after navigation — re-run
snapshotaftergoto, link clicks, or form submissions - fill vs type —
fillclears the field first;typeappends to current content - Stuck sessions — run
playwright-cli kill-allto force-close all browsers
Resources
- EXAMPLES.md — Multi-step workflow examples
- TROUBLESHOOTING.md — Error diagnosis and fixes
- references/request-mocking.md — Intercept, mock, and block network requests
- references/running-code.md — Execute arbitrary Playwright code via
run-code - references/session-management.md — Named sessions, isolation, concurrent browsers
- references/storage-state.md — Cookies, localStorage, sessionStorage management
- references/test-generation.md — Generate Playwright test code from CLI actions
- references/tracing.md — Capture execution traces for debugging
- references/video-recording.md — Record browser sessions as WebM video