Claude Skill MartBrowse skillsQuick linesLearn by videoTerminal guideWhat is a Skill?
Back to list

Playwright Stealth Verify

Measures whether your Playwright, Puppeteer, Selenium or CDP browser presents a self-consistent fingerprint, scoring an existing Page object in place.

Dev & CodingIntermediate2370AI score 9/10Last updated: Aug 6, 2026

What it does

  • Uses liarjs as a library: checkPage(page) accepts any object exposing evaluate(), so Playwright and Puppeteer Page objects work and the harness under test is measured with its real launch flags, plugins and proxy.
  • Catches harness-specific tells with named check ids: webdriver left set by the driver, a HeadlessChrome token in the UA, worker-consistency where an override only patched the main thread, native-integrity where a patched API no longer reports [native code], gpu-triad where WebGL and WebGPU name different GPUs, plus chrome-object, headless-viewport and codecs.
  • Returns { score, label, checks[], client, server, meta }, so you can assert a minimum score or require zero bad checks in a test suite.
  • Can attach to a browser already running outside the test process via npx liarjs@0.3 --cdp http://127.0.0.1:9222.
  • Measurement only: it does not modify the browser and ships no evasions or profiles.

Who it's for

  • QA and automation engineers running E2E or scraping harnesses on Playwright, Puppeteer or Selenium.
  • Anyone who wants to measure a stealth plugin's actual effect instead of assuming it.
  • Teams turning fingerprint quality into a regression gate in CI.

Examples

  1. Assert in a test: call checkPage(page) and require result.checks.filter(c => c.status === 'bad') to be empty, failing the suite on a stealth regression.
  2. Audit a patched Chromium: launch it with --remote-debugging-port=9222, then run npx liarjs@0.3 --cdp http://127.0.0.1:9222 against that exact process.
  3. Air-gapped run: use --offline to execute only the 32 JavaScript-layer checks with no outbound request, or point --endpoint at your own deployment of the edge Worker.

· · · Install guide · · ·

Try it now, no install

Paste this into Claude to use the skill without installing anything.

Read the instructions in this file and follow them to help me:
https://raw.githubusercontent.com/liarjsdev/liarjs-skills/HEAD/skills/playwright-stealth-verify/SKILL.md

What I want: (describe your task here)

If Claude can't open the link, open it yourself and paste the contents instead.

If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.

Install in the Claude app (no terminal)
  1. Download the ZIP with the button below.
  2. In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
  3. Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Download ZIP
Install in Claude Code

Let Claude do it — paste this into Claude Code

Install the skill I found on Claude Skill Mart.
Copy the skills/playwright-stealth-verify folder from the GitHub repo liarjsdev/liarjs-skills into my ~/.claude/skills/playwright-stealth-verify/.
When it's done, tell me in one line what this skill can do.

Install with a command instead

git clone https://github.com/liarjsdev/liarjs-skills.git /tmp/liarjs-skills && mkdir -p ~/.claude/skills && cp -r /tmp/liarjs-skills/skills/playwright-stealth-verify ~/.claude/skills/

This is a third-party skill. Check the source repository before installing.

  1. Confirm Node.js 22 or newer is installed (node -v).
  2. Clone the skills repository: git clone https://github.com/liarjsdev/liarjs-skills.git
  3. Copy the skill into your Claude skills folder: mkdir -p ~/.claude/skills && cp -r liarjs-skills/skills/playwright-stealth-verify ~/.claude/skills/
  4. Restart Claude Code and ask something like "check whether my headless browser looks coherent" to confirm the skill loads.
  5. For library use, inside your test project run npm install --save-dev liarjs so the version is pinned in the lockfile.
  6. To try the CLI with no install, run npx liarjs@0.3 first — it launches a throwaway temp profile and cleans it up.
  7. If outbound traffic is restricted, add --offline, or self-host the edge Worker and pass --endpoint.