Install
$ agentstack add skill-brettatoms-agent-skills-playwright ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Playwright Browser Automation Skill
Use playwright-server for browser automation via curl commands. The server maintains a stateful browser session.
Prerequisites
The server is installed at ~/.claude/bin/playwright-server.js. If not present:
cd ~/.claude/bin
npm init -y
npm install playwright
npx playwright install chromium
Server Lifecycle
# Start server (if not running)
curl -sf localhost:3210/health || (node ~/.claude/bin/playwright-server.js &>/dev/null & sleep 1)
# Check health
curl -sf localhost:3210/health
# Stop server
pkill -f playwright-server
Quick Reference
| Task | Command | |------|---------| | Start browser | curl -s localhost:3210 -d '{"cmd":"start"}' | | Navigate | curl -s localhost:3210 -d '{"cmd":"navigate","url":"URL"}' | | Get snapshot | curl -s localhost:3210 -d '{"cmd":"snapshot"}' | | Click | curl -s localhost:3210 -d '{"cmd":"click","selector":"SEL"}' | | Fill input | curl -s localhost:3210 -d '{"cmd":"fill","selector":"SEL","value":"VAL"}' | | Screenshot | curl -s localhost:3210 -d '{"cmd":"screenshot"}' | | Stop browser | curl -s localhost:3210 -d '{"cmd":"stop"}' |
Core Commands
Browser Lifecycle
curl -s localhost:3210 -d '{"cmd":"start"}' # Headless
curl -s localhost:3210 -d '{"cmd":"start","headless":false}' # Headed
curl -s localhost:3210 -d '{"cmd":"stop"}'
curl -s localhost:3210 -d '{"cmd":"status"}'
Navigation
curl -s localhost:3210 -d '{"cmd":"navigate","url":"http://localhost:3000"}'
curl -s localhost:3210 -d '{"cmd":"back"}'
curl -s localhost:3210 -d '{"cmd":"reload"}'
Page Inspection
snapshot - Get accessibility tree (use to understand page structure):
curl -s localhost:3210 -d '{"cmd":"snapshot"}'
Example output:
- heading "Page Title" [level=1]
- navigation:
- link "Home"
- link "About"
- main:
- textbox "Email"
- textbox "Password"
- button "Sign In"
screenshot - Capture page:
curl -s localhost:3210 -d '{"cmd":"screenshot"}'
curl -s localhost:3210 -d '{"cmd":"screenshot","path":"/tmp/shot.png"}'
curl -s localhost:3210 -d '{"cmd":"screenshot","fullPage":true}'
Basic Interactions
curl -s localhost:3210 -d '{"cmd":"click","selector":"button[type=submit]"}'
curl -s localhost:3210 -d '{"cmd":"fill","selector":"input[name=email]","value":"test@example.com"}'
curl -s localhost:3210 -d '{"cmd":"type","selector":"input","text":"query"}'
curl -s localhost:3210 -d '{"cmd":"press","key":"Enter"}'
Waiting
curl -s localhost:3210 -d '{"cmd":"wait","selector":".loaded"}'
curl -s localhost:3210 -d '{"cmd":"wait","selector":".spinner","state":"hidden"}'
curl -s localhost:3210 -d '{"cmd":"waitUrl","pattern":"**/dashboard"}'
curl -s localhost:3210 -d '{"cmd":"waitLoad","state":"networkidle"}'
Selector Basics
# CSS selectors
"button[type=submit]"
"#login-form input[name=email]"
# Text selectors
"text=Sign In"
# Role selectors
"role=button[name='Sign In']"
# Combining
"#form >> input[name=email]"
For complete selector strategies: See [references/selectors.md](references/selectors.md)
Additional References
- All commands: See [references/commands.md](references/commands.md) for interaction, inspection, wait, tab, and dialog commands
- Selectors: See [references/selectors.md](references/selectors.md) for selector strategies
- Workflows: See [references/workflows.md](references/workflows.md) for common workflows and troubleshooting
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: brettatoms
- Source: brettatoms/agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.