Skip to content
Agentmart
Submit a tool

playwright

Use Playwright for deterministic browser automation, DOM inspection, assertions, and repeatable UI testing.

Skill by johnohhh1

IndexedMIT★ 1
Write a review

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.

We use your email only for this newsletter. Privacy

About

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.

Use cases: design, testing, agent-building

No 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.

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from johnohhh1

Cite this page

playwright skill. Agent Mart. https://agentmart.dev/skills/johnohhh1-playwright (last updated 2026-10-24)