← Back to Skills Marketplace
mrchenkuan

playwright-controller

by 陈宽同学 · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
487
Downloads
0
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install playwright-controller
Description
Browse webpages using Playwright with automatic loading wait, screenshots, and text extraction. Use playwright:fetch or playwright:screenshot commands. API:...
Usage Guidance
Do not install blindly. The core functionality matches its description, but there are red flags you should address first: (1) playwright-cmd.js contains a hard-coded absolute require to the developer's local path — this is unexpected and could cause the skill to try to load files from the host filesystem if that path exists; it should require the bundled module with a relative path (e.g. './playwright-crawler-v3.js'). (2) The SKILL.md/README and code disagree about headless defaults and resource interception — ask the author to clarify and fix so behaviour is predictable. (3) Playwright/Chromium are heavy dependencies and will download browsers; ensure you run this in a sandboxed environment and that you trust the code. Recommended actions before using: review/patch the require path, run the code in an isolated VM or container, verify package.json dependency installation is intentional, and confirm the author updates the docs to match the actual code. If the developer cannot or will not fix the absolute path and documentation inconsistencies, treat the skill as unsafe to run in a non-sandboxed environment.
Capability Analysis
Type: OpenClaw Skill Name: playwright-controller Version: 1.0.0 The skill is classified as suspicious due to several critical vulnerabilities, not malicious intent. The `playwright-cmd.js` file uses an absolute path (`/Users/chenkuan/...`) for a required module, which is a severe path traversal/injection vulnerability and will break the skill in most environments. Additionally, the `playwright-crawler-v3.js` module explicitly forces the Playwright browser into 'headed' (visible) mode (`headless: false`), which is an information disclosure risk if the agent processes sensitive data in a visible environment. The skill also allows arbitrary file writes to a user-specified directory (`--dir`), posing a risk for overwriting sensitive system files or achieving persistence if exploited. These flaws are vulnerabilities that could be leveraged for attacks, rather than direct evidence of malicious design.
Capability Assessment
Purpose & Capability
Name/description match the included code: the JavaScript implements page loading, screenshots and text extraction via Playwright. The package.json dependency on Playwright is consistent with the stated purpose.
Instruction Scope
playwright-cmd.js requires an absolute path (/Users/chenkuan/.openclaw/.../playwright-crawler-v3.js) instead of the local module — this attempts to load code from the developer's home directory on the host if present, which is unexpected and potentially accesses files outside the skill bundle. The SKILL.md/README also contain contradictory statements about resource interception and headless defaults vs. what the code actually does (the crawler hardcodes headful launches regardless of option), indicating sloppy or inconsistent runtime instructions.
Install Mechanism
There is no install spec (instruction-only), but the bundle includes package.json with a Playwright dependency. That means Playwright/Chromium are required but not guaranteed to be installed by the platform — this is a usability concern (and large dependency) rather than direct maliciousness. The absolute require path is more concerning for runtime behavior than the lack of install steps.
Credentials
The skill requests no environment variables or credentials. It only reads/writes local files (screenshot/text output) which is appropriate for its stated purpose. No secret-exfiltration patterns or external API keys are requested.
Persistence & Privilege
Flags show no always:true; the skill does not request elevated agent privileges. It writes files to user-configurable directories (./screenshots or custom dir) — expected for a scraper tool, but be aware it creates files on disk.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install playwright-controller
  3. After installation, invoke the skill by name or use /playwright-controller
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of playwright-controller. - Browse webpages using Playwright with automatic loading wait, screenshots, and text extraction. - Supports both full page and specific element screenshots with text extraction. - Mobile simulation by default: iPhone viewport and user-agent, visible (headed) browser mode. - CLI commands: playwright:fetch (full page), playwright:fetch-element (specific selector). - Customizable options: timeout, output directory, headless mode. - Outputs both screenshot (PNG) and extracted text for each request; error handling saves screenshots even on failure. - Node.js API: fetchWithPlaywright and fetchElementAndScreenshot for programmatic use.
Metadata
Slug playwright-controller
Version 1.0.0
License
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is playwright-controller?

Browse webpages using Playwright with automatic loading wait, screenshots, and text extraction. Use playwright:fetch or playwright:screenshot commands. API:... It is an AI Agent Skill for Claude Code / OpenClaw, with 487 downloads so far.

How do I install playwright-controller?

Run "/install playwright-controller" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is playwright-controller free?

Yes, playwright-controller is completely free (open-source). You can download, install and use it at no cost.

Which platforms does playwright-controller support?

playwright-controller is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created playwright-controller?

It is built and maintained by 陈宽同学 (@mrchenkuan); the current version is v1.0.0.

💬 Comments