playwright
Original:🇺🇸 English
Not Translated
1 scripts
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.
2installs
Added on
NPX Install
npx skill4agent add davila7/claude-code-templates playwrightSKILL.md Content
Playwright CLI Skill
Drive a real browser from the terminal using . 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 unless the user explicitly asks for test files.
playwright-cli@playwright/testPrerequisite check (required)
Before proposing commands, check whether is available (the wrapper depends on it):
npxbash
command -v npx >/dev/null 2>&1If it is not available, pause and ask the user to install Node.js/npm (which provides ). Provide these steps verbatim:
npxbash
# Verify Node/npm are installed
node --version
npm --version
# If missing, install Node.js/npm, then:
npm install -g @playwright/cli@latest
playwright-cli --helpOnce is present, proceed with the wrapper script. A global install of is optional.
npxplaywright-cliSkill 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 (default: ).
$CODEX_HOME/skills~/.codex/skillsQuick start
Use the wrapper script:
bash
"$PWCLI" open https://playwright.dev --headed
"$PWCLI" snapshot
"$PWCLI" click e15
"$PWCLI" type "Playwright"
"$PWCLI" press Enter
"$PWCLI" screenshotIf the user prefers a global install, this is also valid:
bash
npm install -g @playwright/cli@latest
playwright-cli --helpCore workflow
- Open the page.
- Snapshot to get stable element refs.
- Interact using refs from the latest snapshot.
- Re-snapshot after navigation or significant DOM changes.
- Capture artifacts (screenshot, pdf, traces) when useful.
Minimal loop:
bash
"$PWCLI" open https://example.com
"$PWCLI" snapshot
"$PWCLI" click e3
"$PWCLI" snapshotWhen 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" snapshotDebug a UI flow with traces
bash
"$PWCLI" open https://example.com --headed
"$PWCLI" tracing-start
# ...interactions...
"$PWCLI" tracing-stopMulti-tab work
bash
"$PWCLI" tab-new https://example.com
"$PWCLI" tab-list
"$PWCLI" tab-select 0
"$PWCLI" snapshotWrapper script
The wrapper script uses so the CLI can run without a global install:
npx --package @playwright/cli playwright-clibash
"$PWCLI" --helpPrefer 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 and
evalunless needed.run-code - When you do not have a fresh snapshot, use placeholder refs like and say why; do not bypass refs with
eX.run-code - Use when a visual check will help.
--headed - When capturing artifacts in this repo, use and avoid introducing new top-level artifact folders.
output/playwright/ - Default to CLI commands and workflows, not Playwright test specs.