| name | playwright-cli |
| description | Automate browser interactions, test web pages and work with Playwright tests. |
| allowed-tools | Bash(playwright-cli:*) Bash(npx:*) Bash(npm:*) |
Browser Automation with playwright-cli
Quick start
playwright-cli open
playwright-cli goto https://playwright.dev
playwright-cli click e15
playwright-cli type "page.click"
playwright-cli press Enter
playwright-cli screenshot
playwright-cli close
Commands
Core
playwright-cli open
playwright-cli open https://example.com/
playwright-cli goto https://playwright.dev
playwright-cli type "search query"
playwright-cli click e3
playwright-cli dblclick e7
playwright-cli fill e5 "user@example.com" --submit
playwright-cli drag e2 e8
playwright-cli drop e4 --path=./image.png
playwright-cli drop e4 --data="text/plain=hello world"
playwright-cli hover e4
playwright-cli select e9 "option-value"
playwright-cli upload ./document.pdf
playwright-cli check e12
playwright-cli uncheck e12
playwright-cli snapshot
playwright-cli eval "document.title"
playwright-cli eval "el => el.textContent" e5
playwright-cli eval "el => el.id" e5
playwright-cli eval "el => el.getAttribute('data-testid')" e5
playwright-cli dialog-accept
playwright-cli dialog-accept "confirmation text"
playwright-cli dialog-dismiss
playwright-cli resize 1920 1080
playwright-cli close
Navigation
playwright-cli go-back
playwright-cli go-forward
playwright-cli reload
Keyboard
playwright-cli press Enter
playwright-cli press ArrowDown
playwright-cli keydown Shift
playwright-cli keyup Shift
Tabs
playwright-cli tab-list
playwright-cli tab-new
playwright-cli tab-new https://example.com/page
playwright-cli tab-close
playwright-cli tab-select 0
Screenshots & PDF
playwright-cli screenshot
playwright-cli screenshot e5
playwright-cli screenshot --filename=page.png
playwright-cli pdf --filename=page.pdf
Storage
playwright-cli state-save
playwright-cli state-load auth.json
playwright-cli cookie-list
playwright-cli cookie-get session_id
playwright-cli cookie-set session_id abc123
playwright-cli cookie-delete session_id
playwright-cli localstorage-list
playwright-cli localstorage-get theme
playwright-cli localstorage-set theme dark
Network
playwright-cli route "**/*.jpg" --status=404
playwright-cli route "https://api.example.com/**" --body='{"mock": true}'
playwright-cli route-list
playwright-cli unroute "**/*.jpg"
DevTools
playwright-cli console
playwright-cli requests
playwright-cli request 5
playwright-cli tracing-start
playwright-cli tracing-stop
playwright-cli show --annotate
playwright-cli generate-locator e5 --raw
playwright-cli highlight e5
Targeting elements
By default, use refs from the snapshot to interact with page elements.
playwright-cli snapshot
playwright-cli click e15
You can also use css selectors or Playwright locators.
playwright-cli click "#main > button.submit"
playwright-cli click "getByRole('button', { name: 'Submit' })"
playwright-cli click "getByTestId('submit-button')"
Snapshots
After each command, playwright-cli provides a snapshot of the current browser state.
> playwright-cli goto https://example.com
- Page URL: https://example.com/
- Page Title: Example Domain
[Snapshot](.playwright-cli/page-2026-02-14T19-22-42-679Z.yml)
Options:
playwright-cli snapshot --depth=4
playwright-cli snapshot e34
playwright-cli snapshot --boxes
playwright-cli snapshot --filename=after-click.yaml
Raw output
The global --raw option strips page status and returns only the result value.
playwright-cli --raw eval "document.title"
playwright-cli --raw snapshot > page.yml
playwright-cli --raw cookie-get session_id
Open parameters
playwright-cli open --browser=chrome
playwright-cli open --browser=firefox
playwright-cli open --browser=webkit
playwright-cli open --persistent
playwright-cli open --profile=/path/to/profile
playwright-cli attach --cdp=http://localhost:9222
playwright-cli close
Install
npm install -g @anthropic-ai/playwright-cli