playwright
Use Playwright for deterministic browser automation, DOM inspection, assertions, and repeatable UI testing.
Skill by johnohhh1
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/johnohhh1-playwright
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, testing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/playwright
Tools it pre-approves 3
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash(node:*),Bash(npx:*),Bash(playwright:*)
What's inside
- Skill name
playwright- Description
- Use Playwright for deterministic browser automation, DOM inspection, assertions, and repeatable UI testing. Prefer it when agent-browser is too limited or when the user wants robust end-to-end verification.
- License
- MIT
- Allowed tools
- Bash(node:*),, Bash(npx:*),, Bash(playwright:*)
- Instructions
- 104 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (1)
- SKILL.md
SKILL.md (first lines)
# Playwright Browser Automation
Use Playwright when you need stronger browser control than `agent-browser` provides.
Prefer Playwright for:
- multi-step end-to-end app flows
- DOM assertions and repeatable verification
- scripted screenshots after state setup
- cases where you need JavaScript in the page context
- reliable interaction with dynamic SPAs
## Runtime notes
- Chromium is already installed in the container at `/usr/bin/chromium`.
- Playwright is installed globally.
- From inside the agent sandbox, host services are usually reachable at `http://host.docker.internal:<port>`.
- For the NanoClaw Web UI, use `http://host.docker.internal:3000`.
## Quick checks
```bash
playwright --version
node -e "const { chromium } = require('playwright'); console.log(typeof chromium.launch)"
```
## Fast one-off script pattern
```bash
node <<'EOF'
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({
executablePath: '/usr/bin/chromium',
headless: true,
});
const page = await browser.newPage();
await page.goto('http://host.docker.internal:3000', { waitUntil: 'networkidle' });
console.log(await page.title());
await page.screenshot({ path: '/workspace/group/playwright-shot.png', fullPage: true });
await browser.close();
})();
EOF
```
## Common workflows
### Capture a screenshot
```bash
node <<'EOF'
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ executablePath: '/usr/bin/chromium', headless: true });
const page = await browser.newPage({ viewport: { width: 1440, height: 1000 } });
await page.goto('http://host.docker.internal:3000', { waitUntil: 'networkidle' });
await page.screenshot({ path: '/workspace/group/ui.png', fullPage: true });
await browser.close();
})();
EOF
```
### Assert visible text
```bash
node <<'EOF'
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ executablePath: '/usr/bin/chromium', headless: true });
const page = await browser.newPage();
await page.goto('http://host.docker.internal:3000', { waitUntil: 'networkidle' });
const text = await page.locator('body').innerText();
console.log(text.includes('NanoClaw') ? 'found' : 'missing');
await browser.close();
})();
EOF
```
### Interact with the UI
```bash
node <<'EOF'
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ executablePath: '/usr/bin/chromium', headless: true });
const page = await browser.newPage();
await page.goto('http://host.docker.internal:3000', { waitUntil: 'networkidle' });
await page.fill('#message-input', 'Playwright test message');
await page.click('#send-btn');
await page.waitForTimeout(1000);
await page.screenshot({ path: '/workspace/group/after-send.png', fullPage: true });
await browser.close();
})();
EOF
```
## Guidance
- Use `agent-browser` for quick exploratory browsing.
- Use Playwright when the task needs determinism, scripting, or repeatability.
- Save screenshots and artifacts into `/workspace/group/` so they persist.
- If a user asks you to inspect the live Web UI, prefer `http://host.docker.internal:3000` from inside the sandbox.From johnohhh1/nanoclaw-codex, MIT.
More from johnohhh1/nanoclaw-codex
- 0.437score
skill-creator
johnohhh1
Create, validate, and package NanoClaw skills.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
status
johnohhh1
Quick read-only health check — session context, workspace mounts, tool availability, and task snapshot.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
agent-browser
johnohhh1
Browse the web for research, extraction, and UI interaction tasks.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
slack-formatting
johnohhh1
Format messages for Slack using mrkdwn syntax.
SkillDFreshness: D★ 1Claude Code +9 - 0.428score
capabilities
johnohhh1
Show what this NanoClaw instance can do — installed skills, available tools, and system info.
SkillDFreshness: D★ 1Claude Code +9 - 0.424score
status
johnohhh1
Produce a concise operational status report for the current NanoClaw environment, including workspace visibility, utilities, and task state.
SkillDFreshness: D★ 1Claude Code +9 - 0.424score
capabilities
johnohhh1
Report what this NanoClaw instance can do in the current group, including installed skills, visible workspace context, and available tools.
SkillDFreshness: D★ 1Claude Code +9 - 0.424score
slack-formatting
johnohhh1
Format outbound messages for Slack using mrkdwn.
SkillDFreshness: D★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Mar 26, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/johnohhh1/nanoclaw-codex
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from johnohhh1
- 0.437score
skill-creator
johnohhh1
Create, validate, and package NanoClaw skills.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
status
johnohhh1
Quick read-only health check — session context, workspace mounts, tool availability, and task snapshot.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
agent-browser
johnohhh1
Browse the web for research, extraction, and UI interaction tasks.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
slack-formatting
johnohhh1
Format messages for Slack using mrkdwn syntax.
SkillDFreshness: D★ 1Claude Code +9 - 0.428score
capabilities
johnohhh1
Show what this NanoClaw instance can do — installed skills, available tools, and system info.
SkillDFreshness: D★ 1Claude Code +9 - 0.424score
status
johnohhh1
Produce a concise operational status report for the current NanoClaw environment, including workspace visibility, utilities, and task state.
SkillDFreshness: D★ 1Claude Code +9
Cite this page
playwright skill. Agent Mart. https://agentmart.dev/skills/johnohhh1-playwright (last updated 2026-10-24)