playwright-cli

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "playwright-cli" with this command: npx skills add willbooster/agent-skills/willbooster-agent-skills-playwright-cli

Browser Automation with playwright-cli

Quick start

# open new browser
npx --yes @playwright/cli@latest open
# navigate to a page
npx --yes @playwright/cli@latest goto https://playwright.dev
# interact with the page using refs from the snapshot
npx --yes @playwright/cli@latest click e15
npx --yes @playwright/cli@latest type "page.click"
npx --yes @playwright/cli@latest press Enter
# take a screenshot (rarely used, as snapshot is more common)
npx --yes @playwright/cli@latest screenshot
# close the browser
npx --yes @playwright/cli@latest close

Commands

Core

npx --yes @playwright/cli@latest open
# open and navigate right away
npx --yes @playwright/cli@latest open https://example.com/
npx --yes @playwright/cli@latest goto https://playwright.dev
npx --yes @playwright/cli@latest type "search query"
npx --yes @playwright/cli@latest click e3
npx --yes @playwright/cli@latest dblclick e7
npx --yes @playwright/cli@latest fill e5 "user@example.com"
npx --yes @playwright/cli@latest drag e2 e8
npx --yes @playwright/cli@latest hover e4
npx --yes @playwright/cli@latest select e9 "option-value"
npx --yes @playwright/cli@latest upload ./document.pdf
npx --yes @playwright/cli@latest check e12
npx --yes @playwright/cli@latest uncheck e12
npx --yes @playwright/cli@latest snapshot
npx --yes @playwright/cli@latest snapshot --filename=after-click.yaml
npx --yes @playwright/cli@latest eval "document.title"
npx --yes @playwright/cli@latest eval "el => el.textContent" e5
npx --yes @playwright/cli@latest dialog-accept
npx --yes @playwright/cli@latest dialog-accept "confirmation text"
npx --yes @playwright/cli@latest dialog-dismiss
npx --yes @playwright/cli@latest resize 1920 1080
npx --yes @playwright/cli@latest close

Navigation

npx --yes @playwright/cli@latest go-back
npx --yes @playwright/cli@latest go-forward
npx --yes @playwright/cli@latest reload

Keyboard

npx --yes @playwright/cli@latest press Enter
npx --yes @playwright/cli@latest press ArrowDown
npx --yes @playwright/cli@latest keydown Shift
npx --yes @playwright/cli@latest keyup Shift

Mouse

npx --yes @playwright/cli@latest mousemove 150 300
npx --yes @playwright/cli@latest mousedown
npx --yes @playwright/cli@latest mousedown right
npx --yes @playwright/cli@latest mouseup
npx --yes @playwright/cli@latest mouseup right
npx --yes @playwright/cli@latest mousewheel 0 100

Save as

npx --yes @playwright/cli@latest screenshot
npx --yes @playwright/cli@latest screenshot e5
npx --yes @playwright/cli@latest screenshot --filename=page.png
npx --yes @playwright/cli@latest pdf --filename=page.pdf

Tabs

npx --yes @playwright/cli@latest tab-list
npx --yes @playwright/cli@latest tab-new
npx --yes @playwright/cli@latest tab-new https://example.com/page
npx --yes @playwright/cli@latest tab-close
npx --yes @playwright/cli@latest tab-close 2
npx --yes @playwright/cli@latest tab-select 0

Storage

npx --yes @playwright/cli@latest state-save
npx --yes @playwright/cli@latest state-save auth.json
npx --yes @playwright/cli@latest state-load auth.json

# Cookies
npx --yes @playwright/cli@latest cookie-list
npx --yes @playwright/cli@latest cookie-list --domain=example.com
npx --yes @playwright/cli@latest cookie-get session_id
npx --yes @playwright/cli@latest cookie-set session_id abc123
npx --yes @playwright/cli@latest cookie-set session_id abc123 --domain=example.com --httpOnly --secure
npx --yes @playwright/cli@latest cookie-delete session_id
npx --yes @playwright/cli@latest cookie-clear

# LocalStorage
npx --yes @playwright/cli@latest localstorage-list
npx --yes @playwright/cli@latest localstorage-get theme
npx --yes @playwright/cli@latest localstorage-set theme dark
npx --yes @playwright/cli@latest localstorage-delete theme
npx --yes @playwright/cli@latest localstorage-clear

# SessionStorage
npx --yes @playwright/cli@latest sessionstorage-list
npx --yes @playwright/cli@latest sessionstorage-get step
npx --yes @playwright/cli@latest sessionstorage-set step 3
npx --yes @playwright/cli@latest sessionstorage-delete step
npx --yes @playwright/cli@latest sessionstorage-clear

Network

npx --yes @playwright/cli@latest route "**/*.jpg" --status=404
npx --yes @playwright/cli@latest route "https://api.example.com/**" --body='{"mock": true}'
npx --yes @playwright/cli@latest route-list
npx --yes @playwright/cli@latest unroute "**/*.jpg"
npx --yes @playwright/cli@latest unroute

DevTools

npx --yes @playwright/cli@latest console
npx --yes @playwright/cli@latest console warning
npx --yes @playwright/cli@latest network
npx --yes @playwright/cli@latest run-code "async page => await page.context().grantPermissions(['geolocation'])"
npx --yes @playwright/cli@latest tracing-start
npx --yes @playwright/cli@latest tracing-stop
npx --yes @playwright/cli@latest video-start
npx --yes @playwright/cli@latest video-stop video.webm

Open parameters

# Use specific browser when creating session
npx --yes @playwright/cli@latest open --browser=chrome
npx --yes @playwright/cli@latest open --browser=firefox
npx --yes @playwright/cli@latest open --browser=webkit
npx --yes @playwright/cli@latest open --browser=msedge
# Connect to browser via extension
npx --yes @playwright/cli@latest open --extension

# Use persistent profile (by default profile is in-memory)
npx --yes @playwright/cli@latest open --persistent
# Use persistent profile with custom directory
npx --yes @playwright/cli@latest open --profile=/path/to/profile

# Start with config file
npx --yes @playwright/cli@latest open --config=my-config.json

# Close the browser
npx --yes @playwright/cli@latest close
# Delete user data for the default session
npx --yes @playwright/cli@latest delete-data

Snapshots

After each command, playwright-cli provides a snapshot of the current browser state.

> npx --yes @playwright/cli@latest goto https://example.com
### Page
- Page URL: https://example.com/
- Page Title: Example Domain
### Snapshot
[Snapshot](.playwright-cli/page-2026-02-14T19-22-42-679Z.yml)

You can also take a snapshot on demand using npx --yes @playwright/cli@latest snapshot command.

If --filename is not provided, a new snapshot file is created with a timestamp. Default to automatic file naming, use --filename= when artifact is a part of the workflow result.

Browser Sessions

# create new browser session named "mysession" with persistent profile
npx --yes @playwright/cli@latest -s=mysession open example.com --persistent
# same with manually specified profile directory (use when requested explicitly)
npx --yes @playwright/cli@latest -s=mysession open example.com --profile=/path/to/profile
npx --yes @playwright/cli@latest -s=mysession click e6
npx --yes @playwright/cli@latest -s=mysession close  # stop a named browser
npx --yes @playwright/cli@latest -s=mysession delete-data  # delete user data for persistent session

npx --yes @playwright/cli@latest list
# Close all browsers
npx --yes @playwright/cli@latest close-all
# Forcefully kill all browser processes
npx --yes @playwright/cli@latest kill-all

Specific tasks

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Planning with files

Implements Manus-style file-based planning to organize and track progress on complex tasks. Creates task_plan.md, findings.md, and progress.md. Use when aske...

Registry SourceRecently Updated
228.3K
Profile unavailable
Coding

Nutrient Document Processing (Universal Agent Skill)

Universal (non-OpenClaw) Nutrient DWS document-processing skill for Agent Skills-compatible products. Best for Claude Code, Codex CLI, Gemini CLI, Cursor, Wi...

Registry SourceRecently Updated
0262
Profile unavailable
Coding

vercel-react-best-practices

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

Repository Source
23K212.5K
vercel