liarjsdev avatar

Playwright Stealth Verify

Playwright, Puppeteer, Selenium, or raw CDP sessions can each leave fingerprint tells that a site might notice, and this skill gives you a way to measure them instead of guessing. It wraps the liarjs library around a Page you already have, so the check runs against your real launch flags, plugins, and proxy. Checks cover `navigator.webdriver`, a leftover HeadlessChrome token in the UA, patched APIs that no longer report `[native code]`, and whether WebGL and WebGPU agree on the GPU. The worker-versus-main-thread check is the one people tend to miss, since partial overrides often patch the main thread and leave workers telling a different story. It's a good fit for a test assertion on a score threshold, and you can run `--offline` if the harness can't reach outside the test network.

skills.sh installs
119K
GitHub stars
5
last updated
Oct 26, 2026

Install

$ npx -y skills add liarjsdev/liarjs-skills --skill playwright-stealth-verify --agent claude-code

Installs into .claude/skills of the current project.

Files

Verify an automation harness against itself

A test browser that quietly looks wrong is a test suite that quietly gets challenged. liarjs answers one question about a harness: does its JavaScript story agree with itself and with what the network layer saw? It measures; it does not modify the browser and ships no evasions or profiles.

Node 22 or newer. Zero runtime dependencies, so it adds nothing to an existing Playwright or Puppeteer install.

Against a Page you already have

checkPage works with any object exposing evaluate(expression: string). Playwright and Puppeteer Page objects both qualify, so the harness under test is the harness being measured, with its real launch flags, real plugins and real proxy in place.

import { checkPage } from 'liarjs';

const result = await checkPage(page);

expect(result.score).toBeGreaterThanOrEqual(85);

// Or assert on specific ids rather than a single number:
const critical = result.checks.filter((c) => c.status === 'bad');
expect(critical, JSON.stringify(critical, null, 2)).toHaveLength(0);

Sponsors

Details

Repository
github.com/liarjsdev/liarjs-skills
Categories
Backend & APIs, Testing & QA, Code Review & Quality, Automation & Workflows
First seen
Oct 26, 2026

More from liarjsdev/liarjs-skills

All 4
1cloudflare avatarcloudflare-email-servicecloudflare/skillsSend and receive transactional emails with Cloudflare Email Service (Email Sending + Email Routing). Use when building email sending (Workers binding or REST AP114.4Kskills.sh installs
2cloudflare avatarcloudflare-onecloudflare/skillsGuides Cloudflare One Zero Trust and SASE work across Access, Gateway, WARP, Tunnel, Cloudflare WAN, DLP, CASB, device posture, and identity. Use when designing105.8Kskills.sh installs
3cloudflare avatarturnstile-spincloudflare/skillsSet up Cloudflare Turnstile end-to-end in a project. Scan the codebase, create the widget via the Cloudflare API, embed it where user requests need bot verifica105.1Kskills.sh installs
4currents-dev avatarplaywright-best-practicescurrents-dev/playwright-best-practices-skillUse when writing Playwright tests, fixing flaky tests, debugging failures, implementing Page Object Model, configuring CI/CD, optimizing performance, mocking AP104.5Kskills.sh installs
5microsoft avatarazure-aigatewaymicrosoft/github-copilot-for-azureConfigure Azure API Management as an AI Gateway for AI models, MCP tools, and agents. WHEN: semantic caching, token limit, content safety, load balancing, AI mo103Kskills.sh installs
6microsoft avatarazure-preparemicrosoft/github-copilot-for-azurePrepare Azure apps for deployment (infra Bicep/Terraform, azure.yaml, Dockerfiles). Use for create/modernize or create+deploy; not cross-cloud migration (use az103Kskills.sh installs