Generated banner for Playwright
Generated logo for Playwright

Playwright

OpenAIOfficialPublished by OpenAI

  • Skill
  • Tool integration
  • Automation and integrations
  • Apache-2.0
  • Low risk
  • Has scripts

From the author

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.
— the description by OpenAI

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The Playwright CLI skill provides a terminal-based interface for controlling a real browser. It enables users to navigate websites, fill forms, extract data, and debug UI flows without writing full test scripts. By utilizing a wrapper script, it ensures consistent execution across environments. The workflow centers on a snapshot-based interaction model, where users capture the current page state to obtain stable element references before performing actions like clicking, typing, or evaluating DOM content.

What it does

  • Automates browser navigation, form submission, and UI interactions from the command line.
  • Captures visual artifacts including screenshots and PDF exports.
  • Provides tools for debugging, such as console log monitoring, network inspection, and trace recording.
  • Supports multi-tab management and named sessions for isolated work environments.
  • Allows for custom DOM evaluation and data extraction using JavaScript snippets.
  • Uses a snapshot mechanism to map UI elements to stable, terminal-friendly references.

When to use it

  • When you need to perform quick browser-based tasks without creating a full test suite.
  • When debugging UI behavior or verifying page content visually.
  • When automating repetitive web tasks that require real browser rendering.
  • When you need to extract specific data points from a webpage via the terminal.
  • When you need to capture screenshots or traces to document a UI issue.

Advantages

  • Enables browser automation without requiring knowledge of test frameworks.
  • Provides a consistent, CLI-first workflow for web interaction.
  • Supports visual debugging through headed mode and screenshot capabilities.
  • Allows for session isolation to prevent state conflicts between tasks.
  • Simplifies element interaction by providing stable references via snapshots.

Usage examples

“Open the login page at example.com and take a screenshot.”
The agent opens the browser to the specified URL, takes a snapshot to identify elements, and saves a screenshot of the page.
“Fill out the contact form on this page and submit it.”
The agent snapshots the page, uses the provided element references to fill the input fields, clicks the submit button, and snapshots the result.
“Extract the main heading text from the current page.”
The agent snapshots the page, identifies the heading element, and uses an evaluation command to retrieve its text content.
“Debug why the checkout button is not working.”
The agent starts a trace, navigates to the checkout flow, performs the interaction, stops the trace, and provides the captured logs and network activity.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/openai/playwright/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip playwright.zip -d .agents/skills

Documentation by OpenAI

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):

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:

# 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)

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:

"$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:

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:

"$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.

Form fill and submit
"$PWCLI" open https://example.com/form
"$PWCLI" snapshot
"$PWCLI" fill e1 "[email protected]"
"$PWCLI" fill e2 "password123"
"$PWCLI" click e3
"$PWCLI" snapshot
Debug a UI flow with traces
"$PWCLI" open https://example.com --headed
"$PWCLI" tracing-start
# ...interactions...
"$PWCLI" tracing-stop
Multi-tab work
"$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:

"$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.

Files

SKILL.md

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):

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:

# 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)

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:

"$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:

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:

"$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.

Form fill and submit
"$PWCLI" open https://example.com/form
"$PWCLI" snapshot
"$PWCLI" fill e1 "[email protected]"
"$PWCLI" fill e2 "password123"
"$PWCLI" click e3
"$PWCLI" snapshot
Debug a UI flow with traces
"$PWCLI" open https://example.com --headed
"$PWCLI" tracing-start
# ...interactions...
"$PWCLI" tracing-stop
Multi-tab work
"$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:

"$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.

Requirements and compatibility

Written for: OpenAI Codex

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Node.js

Security

What our scanner noticed· Low risk

  • Instructions that use the network
  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
OpenAI
Publisher
OpenAI (Official)
Source
openai/skills · skills/.curated/playwright · commit 49f948f
Licence
Apache License 2.0 (redistribution allowed)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by OpenAI.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download playwright.zip