| name | playwright-cli |
| description | Use when you need to 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
See references/commands.md for the complete catalogue of all commands organized by category: Core, Navigation, Keyboard, Mouse, Save as, Tabs, Storage (Cookies/LocalStorage/SessionStorage), Network, DevTools, Open Parameters, Browser Sessions, and Raw Output Mode.
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)
You can also take a snapshot on demand using playwright-cli snapshot command. All the options below can be combined as needed.
playwright-cli snapshot
playwright-cli snapshot --filename=after-click.yaml
playwright-cli snapshot "#main"
playwright-cli snapshot --depth=4
playwright-cli snapshot e34
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')"
Browser Sessions
playwright-cli -s=mysession open example.com --persistent
playwright-cli -s=mysession open example.com --profile=/path/to/profile
playwright-cli -s=mysession click e6
playwright-cli -s=mysession close
playwright-cli -s=mysession delete-data
playwright-cli list
playwright-cli close-all
playwright-cli kill-all
Installation
If global playwright-cli command is not available, try a local version via npx playwright-cli:
npx --no-install playwright-cli --version
When local version is available, use npx playwright-cli in all commands. Otherwise, install playwright-cli as a global command:
npm install -g @playwright/cli@latest
Example: Form submission
playwright-cli open https://example.com/form
playwright-cli snapshot
playwright-cli fill e1 "user@example.com"
playwright-cli fill e2 "password123"
playwright-cli click e3
playwright-cli snapshot
playwright-cli close
Example: Multi-tab workflow
playwright-cli open https://example.com
playwright-cli tab-new https://example.com/other
playwright-cli tab-list
playwright-cli tab-select 0
playwright-cli snapshot
playwright-cli close
Example: Debugging with DevTools
playwright-cli open https://example.com
playwright-cli click e4
playwright-cli fill e7 "test"
playwright-cli console
playwright-cli network
playwright-cli close
playwright-cli open https://example.com
playwright-cli tracing-start
playwright-cli click e4
playwright-cli fill e7 "test"
playwright-cli tracing-stop
playwright-cli close
Specific tasks