| name | playwright-cli |
| description | Browser automation via playwright-cli. Token-efficient alternative to Playwright MCP - uses CLI commands through Bash instead of MCP tool schemas. Supports navigation, interaction, screenshots, video recording, and session management. Triggers on keywords: browser, e2e, playwright, screenshot, navigate, click, type, test browser, visual test |
| project-agnostic | true |
| allowed-tools | ["Bash","Read"] |
Playwright CLI Browser Automation
Browser automation using playwright-cli - a token-efficient CLI alternative to Playwright MCP.
Prerequisites
- Node.js >= 18
- Global install:
npm install -g @playwright/cli@latest
- Browser:
playwright-cli install-browser
Quick Reference
Navigation
playwright-cli open https://example.com
playwright-cli -s=mytest open https://example.com
playwright-cli goto https://example.com/page
playwright-cli go-back
playwright-cli go-forward
playwright-cli reload
playwright-cli close
Page Inspection
playwright-cli snapshot
playwright-cli screenshot
playwright-cli screenshot --output ./out.png
playwright-cli pdf --output ./page.pdf
Interaction
playwright-cli click "Button Text"
playwright-cli click "#submit-btn"
playwright-cli fill "#email" "user@example.com"
playwright-cli type "Hello world"
playwright-cli select "#dropdown" "option1"
playwright-cli hover "#menu-item"
playwright-cli check "#checkbox"
playwright-cli uncheck "#checkbox"
playwright-cli dblclick "#element"
playwright-cli upload "#file-input" ./file.txt
Keyboard & Mouse
playwright-cli press Enter
playwright-cli press Control+a
playwright-cli keydown Shift
playwright-cli keyup Shift
Tabs
playwright-cli tab-list
playwright-cli tab-new https://example.com
playwright-cli tab-select 1
playwright-cli tab-close
Session Management
playwright-cli -s=session1 open https://example.com
playwright-cli -s=session1 snapshot
playwright-cli list
playwright-cli close-all
PLAYWRIGHT_CLI_SESSION=session1 playwright-cli snapshot
Video Recording
playwright-cli video-start
playwright-cli video-stop
Developer Tools
playwright-cli console
playwright-cli network
playwright-cli run-code "document.title"
Tracing
playwright-cli tracing-start
playwright-cli tracing-stop --output trace.zip
Network Mocking
playwright-cli route "**\/api\/*" --status 200 --body '{"ok":true}'
playwright-cli route-list
playwright-cli unroute "**\/api\/*"
Storage State
playwright-cli state-save --output state.json
playwright-cli state-load --input state.json
Window
playwright-cli resize 1920 1080
Dialog Handling
playwright-cli dialog-accept
playwright-cli dialog-dismiss
Configuration
Optional playwright-cli.json in project root:
{
"browserName": "chromium",
"isolated": true,
"launchOptions": {
"headless": false
},
"contextOptions": {
"viewport": { "width": 1920, "height": 1080 }
},
"saveVideo": {
"width": 1920,
"height": 1080
},
"outputDir": "./outputs/e2e"
}
Headed Mode
playwright-cli --headed open https://example.com
Key Differences from Playwright MCP
| Aspect | MCP | CLI |
|---|
| Token usage | Heavy (page snapshots + tool schemas) | Light (shell commands) |
| Integration | MCP config per AI tool | Single global npm install |
| State | MCP server process | Persistent named sessions |
| Video | Automatic via --save-video | Explicit video-start/video-stop |
| Screenshots | browser_take_screenshot tool | playwright-cli screenshot |
| Snapshots | browser_snapshot tool | playwright-cli snapshot |
Reference Documentation