About playwriter
A skill for using Playwriter to inspect and control the user's active Chrome tab. It supports session attachment, page inspection, targeted interactions, and retrieval of logs and page state.
Key features
- 01Attach to an active Chrome tab
- 02Inspect page structure and content
- 03Perform targeted page actions
- 04Read logs and structured page state
- 05Troubleshoot stale or incorrect sessions
Use cases
- 01Inspecting the current page during testing
- 02Collecting UI options and hover content
- 03Debugging page behavior and state changes
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ brianlovin/ agent-config --skill playwriterAfter installing, type/playwriterin Claude Code to confirm it loaded.
Bundled filesagents/openai.yaml
Details
From the project READMEPlaywriter
Use this skill to drive the user's active Chrome tab via Playwriter.
Full documentation is available here: https://playwriter.dev/
Quick Start
- Ensure the Playwriter extension is enabled (green) on the target tab.
- Ensure CLI is available:
playwriter --version || npx -y playwriter --version
- Create/attach a session:
playwriter session new
- Run commands against that session:
playwriter -s 1 -e "console.log(await page.url())"
Core Workflow
- Confirm connection and correct tab:
playwriter -s <session> -e "console.log(await page.url()); console.log(await page.title());"
- Collect page structure when needed:
playwriter -s <session> -e "console.log(await accessibilitySnapshot({ page }))"
- Execute targeted actions (click/type/hover/fetch/evaluate).
- Pull logs and structured state via
page.evaluate. - Summarize findings with exact IDs, timestamps, and observed state transitions.
Useful Commands
Get list rows/options from current app UI:
playwriter -s <session> -e "const rows = await page.getByRole('option').all(); console.log(rows.length);"
Read popup/hover content:
playwriter -s <session> -e "const row = page.getByRole('option').nth(0); await row.hover(); await page.waitForTimeout(700); console.log(await page.locator('[data-side]').first().innerText());"
Run arbitrary in-page debug code:
playwriter -s <session> -e "const out = await page.evaluate(() => ({ href: location.href })); console.log(out);"
Troubleshooting
- If the session attaches to the wrong tab, click the extension icon on the intended tab and re-run
playwriter session new. - If
playwritercommand is missing, usenpx -y playwriter ...or install globally. - If execution errors suggest stale connection, create a fresh session.
Guardrails
- Prefer read-only inspection unless the task requires mutation.
- Announce destructive UI actions before running them.
- When capturing logs, redact sensitive tokens/user data in summaries.
Comments
Markdown supported