playwright-cli

playwright-cli is a skill for Claude Code from ai-ecoverse/slicc. It costs 103 tokens per session (6,046 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.

agentmods
npx agentmods add skills/ai-ecoverse/slicc/playwright-cli
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.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.svg" alt="Measured on agentmods" 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 6,046 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
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.06046
Opus 5 $0.00051 $0.03023
Sonnet 5 $0.00021 $0.01209
Haiku 4.5 $0.00010 $0.00605

Measured yesterday against content hash f4cc50cc092e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, 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 yesterday.

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 · 368 lines

How it starts

The opening of the file, as written. The whole thing — 368 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. Re-snapshot after interactions (refs change)
playwright-cli snapshot --tab=E9A3F

Tab IDs

  • tab-list shows all tabs with their targetIds. The user's active tab is marked (active).
  • 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 work with click, fill, dblclick, hover, select, check, and uncheck; do not pass --frame to those commands. Other ref commands require refs from a top-level snapshot.

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.
  • Refs are tied to one tab + one snapshot. They do not carry across tabs, navigations, or reloads.

Read the full file on GitHub · 368 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. yesterday 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 (30 stars, last pushed yesterday), licensed Apache-2.0. It adds 103 tokens to every session and 6,046 once invoked, about $0.0005 per session on Opus 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

playwright-cli

Use when a task needs Playwright-backed browser automation from the shell: open or attach to browser sessions, inspect snapshots and element refs, click/type/fill forms, debug Playwright tests, inspect console/network/storage, run Playwright snippets, capture screenshots/traces/videos, or generate reliable test code.…

appautomaton/webmaton · 91 tokens

ui-automation

WHartTest UI 自动化管理工具。用于创建、编辑、删除 UI 测试模块、页面、元素、页面步骤和测试用例。支持执行记录查询和错误分析。当需要将浏览器技能获取到的页面元素保存到平台、创建 UI 自动化用例、执行测试或分析执行结果时使用。元素采集默认优先 browser-use,无法覆盖时再用 playwright-skill 兜底。.

MGdaasLab/WHartTest · 96 tokens