playwright-cli

playwright-cli is a skill for Claude Code from ai-ecoverse/slicc. It costs 103 tokens per session (7,440 once invoked), scanned A, original, Apache-2.0.

A command-line browser automation tool based on Playwright, a browser testing library. It opens pages, shows their elements, and can click, fill forms, and work with multiple tabs.

In plain words
What is it for?
Use it to navigate websites, submit forms, scrape page content, take screenshots, and test browser-based interfaces.
Why use it?
It provides a repeatable way to interact with web pages instead of relying on manual browsing. Requiring an explicit tab identifier helps ensure actions affect the intended page.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Good fit Use it to navigate websites, submit forms, scrape page content, take screenshots, and test browser-based interfaces.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ai-ecoverse/slicc/playwright-cli
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add ai-ecoverse/slicc --skill playwright-cli
Clone the repo
git clone --depth 1 https://github.com/ai-ecoverse/slicc

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for playwright-cli

README.md
[![agentmods](https://agentmods.dev/badge/skills/ai-ecoverse/slicc/playwright-cli/github.svg)](https://agentmods.dev/skills/ai-ecoverse/slicc/playwright-cli)
Your own site
<a href="https://agentmods.dev/skills/ai-ecoverse/slicc/playwright-cli"><img src="https://agentmods.dev/badge/skills/ai-ecoverse/slicc/playwright-cli/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for playwright-cli

Your own site · 80×15
<a href="https://agentmods.dev/skills/ai-ecoverse/slicc/playwright-cli"><img src="https://agentmods.dev/badge/skills/ai-ecoverse/slicc/playwright-cli.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 103 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 7,440 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00103 $0.07440
Opus 5.5 $0.00041 $0.02976
Sonnet 5.5 $0.00021 $0.01488
Haiku 4.5 $0.00010 $0.00744

Measured 17d ago against content hash 266b3fdda3d0, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

playwright-cli scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 17d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- **Calling the app's own backend? Use `curlwright`, not `eval-file`.** It is curl's flags run by a `fetch()` inside the tab, so cookies, origin and session come along: `curlwright -s -X POST https://app.example.com/api/
packages/vfs-root/workspace/skills/playwright-cli/SKILL.md · 413 lines

How it starts

The opening of the file, as written. The whole thing — 413 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Browser Automation via playwright-cli

Use playwright-cli (also aliased as playwright and puppeteer) via the bash tool for all browser automation.

Every tab-operating command requires --tab=<targetId>. There is no implicit "current tab". Always specify which tab you're operating on.

playwright-cli <command> --help prints that command's usage and does nothing else — safe to run before any action.

Quick Start

# 1. Open a page — note the targetId in the output
playwright-cli open https://example.com
# Output: Opened https://example.com in new tab [targetId: E9A3F...]

# 2. Take a snapshot to see the page structure and get element refs
playwright-cli snapshot --tab=E9A3F

# 3. Interact using refs from the snapshot (e.g. e5, e12)
playwright-cli click --tab=E9A3F e5
playwright-cli fill --tab=E9A3F e12 "hello world"

# 4. Each action prints "Snapshot: <path>" — read it to see what changed
playwright-cli snapshot --tab=E9A3F

Tab IDs

  • tab-list shows all tabs with their targetIds and a stable (tab N) number. In the extension the user's active tab is marked (active); standalone Chrome does not report it.
  • tab-new / open return the new tab's targetId — capture it for subsequent commands.
  • Use --tab=<targetId> on ALL commands that operate on a tab.

Frame IDs

  • frames --tab=<targetId> lists frame IDs. A frame ID is not a tab target ID; never pass it to --tab.
  • Use --tab=<targetId> --frame=<frameId> with eval, eval-file, or snapshot to target a child frame, including cross-origin frames.
  • A frame-scoped snapshot prints only that frame's accessibility subtree. Its frame-prefixed refs (f1e5) work with every ref command except drag, screenshot, and snapshot --boxes; do not pass --frame to those commands.

Common Failure Modes

  • --tab <targetId> is required — you forgot --tab=<id>. Run tab-list to get IDs.
  • is a frame ID, not a tab target ID — keep the owning tab's targetId in --tab and pass the frame ID with --frame.
  • No snapshot available — run snapshot --tab=<id> before using refs.
  • unknown flag "--x" / unexpected argument "y" — every subcommand rejects arguments it does not support, so an exit code of 0 means everything you passed was honoured. Check <verb> --help.
  • For free-text payloads that start with - (e.g. fill/type/eval), put -- before the text: fill --tab=<id> e1 -- --dash-looking.
  • is not an element ref — a screenshot's positional is a main-frame element ref (e5); the output path is --filename=<path>. Frame-prefixed refs (f1e5) clip only with click-family commands.
  • Unknown ref / is no longer on the page — that element was removed or renamed, or the page navigated. Re-run snapshot for current refs; a ref is never re-pointed at a different element.
  • Refs are tied to one tab + one page load. They do not carry across tabs, navigations, or reloads.

Read the full file on GitHub · 413 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 17d ago Changed · +2 lines 266b3fdda3d0
  2. 18d ago Changed · +2 lines 0306a8d17df0
  3. 20d ago Changed 16296423151a
  4. 27d ago Changed · +1 lines 9b67a658e4db
  5. 1mo ago Changed · +1 lines ad770c8b4613
  6. 1mo ago Changed · +4 lines 7eee99764155
  7. 1mo ago Changed · +2 lines 61fca37d4ef5
  8. 1mo ago Changed · +18 lines 936f43499b02
  9. 1mo ago Changed · +15 lines c7a7e67eacf1
  10. 1mo ago First seen · 368 lines · 103 tokens per session scan A f4cc50cc092e

Subscribe to this mod's changes

playwright-cli is a skill published in the GitHub repository ai-ecoverse/slicc (34 stars, last pushed 2d ago), licensed Apache-2.0. It adds 103 tokens to every session and 7,440 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.

Related

Other skills, from other repositories

actionbook-web-test

Run browser-based web tests against websites using Actionbook CLI. Activate when the user wants to test a website workflow, run smoke tests, verify a user flow, check if a web application works, run regression tests, or validate browser-based interactions. Supports test definition, execution, assertion, reporting, and…

actionbook/actionbook · 71 tokens

browser-viz-verify

Verifies that a NetClaw-generated visualization HTML file (three.js, canvas, drawio, UML, markmap) actually renders correctly — screenshot, console-error check, and an optional Lighthouse audit. Use immediately after generating any browser-based visualization output, to close the QA gap that otherwise requires a human…

automateyournetwork/netclaw · 84 tokens

BrowserBash Browser Automation

BrowserBash is a vendor-independent, natural-language browser automation CLI. Drive a real browser from plain-English objectives or committable Markdown tests, run on local Chrome, CDP/Playwright MCP, Browserbase, LambdaTest, or BrowserStack, and stream NDJSON results with CI exit codes — using free local Ollama…

PramodDutta/qaskills · 79 tokens

Geb Testing

Browser automation testing with Geb framework for Groovy/JVM using jQuery-like content DSL, Page Object pattern, Spock integration, and WebDriver abstraction.

PramodDutta/qaskills · 34 tokens

checking-a-page

Check that a web page you wrote or changed actually works, by opening it in a browser and driving every control on it. Use after creating or editing an HTML page, or the JavaScript or CSS that a page loads.

awss1i/assay · 49 tokens

muggle-test

Change-driven E2E acceptance testing: detects the user's recent changes (local diff, branch, or PR), maps them to the user flows they affect, and runs real-browser tests on localhost or a preview/staging URL. Use whenever the user wants their own work validated before it ships — "make sure I didn't break anything"…

multiplex-ai/muggle-ai-works · 228 tokens