| name | playwright-cli |
| description | Automates browser interactions for web testing, form filling, screenshots, and data extraction using playwright-cli. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, extract information from web pages, mock network requests, manage browser sessions, or generate test code. |
| allowed-tools | Bash(playwright-cli:*) |
Browser Automation with playwright-cli
Comprehensive CLI-driven browser automation — navigate, interact, mock, debug, record, and generate tests without writing a single script file.
Quick Start
playwright-cli install --skills
playwright-cli install-browser
playwright-cli open https://playwright.dev
playwright-cli snapshot
playwright-cli click e15
playwright-cli fill e5 "search query"
playwright-cli press Enter
playwright-cli screenshot
playwright-cli close
Golden Rules
- Always
snapshot first — identify element refs before interacting; never guess ref numbers
- Use
fill for inputs, click for buttons — type sends keystrokes one-by-one, fill replaces the entire value
- Named sessions for parallel work —
-s=name isolates cookies, storage, and tabs per session
- Save auth state —
state-save auth.json after login, state-load auth.json to skip login next time
- Trace before debugging —
tracing-start before the failing step, not after
run-code for advanced scenarios — when CLI commands aren't enough, drop into full Playwright API
- Clean up sessions —
close or close-all when done; kill-all for zombie processes
- Descriptive filenames —
screenshot --filename=checkout-step3.png not screenshot
- Mock external APIs only — use
route to intercept third-party services, not your own app
- Persistent profiles for stateful flows —
--persistent keeps cookies and storage across restarts
Command Reference
Core Interaction
playwright-cli open [url]
playwright-cli goto <url>
playwright-cli snapshot
playwright-cli snapshot --filename=snap.yaml
playwright-cli click <ref>
playwright-cli dblclick <ref>
playwright-cli fill <ref> "value"
playwright-cli type "text"
playwright-cli select <ref> "option-value"
playwright-cli check <ref>
playwright-cli uncheck <ref>
playwright-cli hover <ref>
playwright-cli drag <src-ref> <dst-ref>
playwright-cli upload <ref> ./file.pdf
playwright-cli eval "document.title"
playwright-cli eval "el => el.textContent" <ref>
playwright-cli close
Navigation
playwright-cli go-back
playwright-cli go-forward
playwright-cli reload
Keyboard & Mouse
playwright-cli press Enter
playwright-cli press ArrowDown
playwright-cli keydown Shift
playwright-cli keyup Shift
playwright-cli mousemove 150 300
playwright-cli mousedown [right]
playwright-cli mouseup [right]
playwright-cli mousewheel 0 100
Dialogs
playwright-cli dialog-accept
playwright-cli dialog-accept "text"
playwright-cli dialog-dismiss
Tabs
playwright-cli tab-list
playwright-cli tab-new [url]
playwright-cli tab-select <index>
playwright-cli tab-close [index]
Screenshots & Media
playwright-cli screenshot
playwright-cli screenshot <ref>
playwright-cli screenshot --filename=pg.png
playwright-cli pdf --filename=page.pdf
playwright-cli video-start
playwright-cli video-stop output.webm
playwright-cli resize 1920 1080
Storage & Auth
playwright-cli state-save [file.json]
playwright-cli state-load <file.json>
playwright-cli cookie-list [--domain=...]
playwright-cli cookie-get <name>
playwright-cli cookie-set <name> <value> [opts]
playwright-cli cookie-delete <name>
playwright-cli cookie-clear
playwright-cli localstorage-list
playwright-cli localstorage-get <key>
playwright-cli localstorage-set <key> <val>
playwright-cli localstorage-delete <key>
playwright-cli localstorage-clear
playwright-cli sessionstorage-list
playwright-cli sessionstorage-get <key>
playwright-cli sessionstorage-set <key> <val>
playwright-cli sessionstorage-delete <key>
playwright-cli sessionstorage-clear
Network Mocking
playwright-cli route "<pattern>" [opts]
playwright-cli route-list
playwright-cli unroute "<pattern>"
playwright-cli unroute
DevTools & Debugging
playwright-cli console [level]
playwright-cli network
playwright-cli tracing-start
playwright-cli tracing-stop
playwright-cli run-code "async page => {}"
Sessions & Configuration
playwright-cli -s=<name> <command>
playwright-cli list
playwright-cli close-all
playwright-cli kill-all
playwright-cli delete-data
playwright-cli open --browser=firefox
playwright-cli open --persistent
playwright-cli open --profile=/path
playwright-cli open --config=config.json
playwright-cli open --extension
Guide Index
Getting Started
Testing & Debugging
State & Sessions
Advanced