skill
Playwright
Use when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via `playwright-cli` or the bundled wrapper script.
About
# Playwright CLI Skill
Drive a real browser from the terminal using `playwright-cli`. Prefer the bundled wrapper script so the CLI works even when it is not globally installed. Treat this skill as CLI-first automation. Do not pivot to `@playwright/test` unless the user explicitly asks for test files.
## Prerequisite check (required)
Before proposing commands, check whether `npx` is available (the wrapper depends on it):
```bash command -v npx >/dev/null 2>&1 ```
If it is not available, pause and ask the user to install Node.js/npm (which provides `npx`). Provide these steps verbatim:
```bash # Verify Node/npm are installed node --version npm --version
# If missing, install Node.js/npm, then: npm install -g @playwright/cli@latest playwright-cli --help ```
Once `npx` is present, proceed with the wrapper script. A global install of `playwright-cli` is optional.
## Skill path (set once)
```bash export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}" export PWCLI="$CODEX_HOME/skills/playwright/scripts/playwright_cli.sh" ```
User-scoped skills install under `$CODEX_HOME/skills` (default: `~/.codex/skills`).
## Quick start
Use the wrapper script:
```bash "$PWCLI" open https://playwright.dev --headed "$PWCLI" snapshot "$PWCLI" click e15 "$PWCLI" type "Playwright" "$PWCLI" press Enter "$PWCLI" screenshot ```
If the user prefers a global install, this is also valid:
```bash npm install -g @playwright/cli@latest playwright-cli --help ```
## Core workflow
1. Open the page. 2. Snapshot to get stable element refs. 3. Interact using refs from the latest snapshot. 4. Re-snapshot after navigation or significant DOM changes. 5. Capture artifacts (screenshot, pdf, traces) when useful.
Minimal loop:
```bash "$PWCLI" open https://example.com "$PWCLI" snapshot "$PWCLI" click e3 "$PWCLI" snapshot ```
## When to snapshot again
Snapshot again after:
- navigation - clicking elements that change the UI substantially - opening/closing modals or menus - tab switches
Refs can go stale. When a command fails due to a missing ref, snapshot again.
## Recommended patterns
### Form fill and submit
```bash "$PWCLI" open https://example.com/form "$PWCLI" snapshot "$PWCLI" fill e1 "user@example.com" "$PWCLI" fill e2 "password123" "$PWCLI" click e3 "$PWCLI" snapshot ```
### Debug a UI flow with traces
```bash "$PWCLI" open https://example.com --headed "$PWCLI" tracing-start # ...interactions... "$PWCLI" tracing-stop ```
### Multi-tab work
```bash "$PWCLI" tab-new https://example.com "$PWCLI" tab-list "$PWCLI" tab-select 0 "$PWCLI" snapshot ```
## Wrapper script
The wrapper script uses `npx --package @playwright/cli playwright-cli` so the CLI can run without a global install:
```bash "$PWCLI" --help ```
Prefer the wrapper unless the repository already standardizes on a global install.
## References
Open only what you need:
- CLI command reference: `references/cli.md` - Practical workflows and troubleshooting: `references/workflows.md`
## Guardrails
- Always snapshot before referencing element ids like `e12`. - Re-snapshot when refs seem stale. - Prefer explicit commands over `eval` and `run-code` unless needed. - When you do not have a fresh snapshot, use placeholder refs like `eX` and say why; do not bypass refs with `run-code`. - Use `--headed` when a visual check will help. - When capturing artifacts in this repo, use `output/playwright/` and avoid introducing new top-level artifact folders. - Default to CLI commands and workflows, not Playwright test specs.
Install
Run this command
git clone https://github.com/openai/skills && cp -r skills/skills/.curated/playwright ~/.claude/skills/Works with
Manual steps
Clone the repository and copy the `skills/.curated/playwright` folder into your Claude skills directory. Compatible with Claude Code, Cursor, Codex, and any Agent Skills-compatible agent.
Frequently asked questions
What is the Playwright skill?
Use when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via `playwright-cli` or the bundled wrapper script.
How do I install Playwright?
Run this in your terminal:
git clone https://github.com/openai/skills && cp -r skills/skills/.curated/playwright ~/.claude/skills/Which AI tools does Playwright work with?
It works with claude_app, claude_code, claude_api, cursor, codex, windsurf, cline, zed.
Who made Playwright?
OpenAI, released under the Apache-2.0 license.
Is Playwright free?
Yes, it is free to use under the Apache-2.0 license.
npx skills add nextlevelbuilder/ui-ux-pro-max-skill
npx skills add emilkowalski/skills
npx skills add emilkowalski/skills
npx skills add emilkowalski/skills
npx skills add emilkowalski/skills
npx skills add arvindrk/extract-design-system
Audit before you install
Run any source through our checks - AI visibility, security, performance, and stack detection.
Automated Web Security Scan
security
PageSpeed Analyzer
performance
AI Content Quality Test
arabic content
AI Agent / MCP Server Tester
ai testing
Site Stack Detector
migration
AI SEO / AEO / GEO Audit
ai visibility
llms.txt Generator
ai visibility
Readability Score
arabic content
Schema / JSON-LD Builder
ai visibility
AI Cost Calculator
ai testing
Headline Analyzer
arabic content