Skip to content
Conduit

skill

liarjs-skills

Agent Skills for browser fingerprint testing: run liarjs from Claude Code, Codex, Cursor or Copilot to score a browser against itself - 40 consistency checks over canvas, WebGL, WebGPU, audio, fonts a

liarjsdev/liarjs-skillscommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/liarjsdev/liarjs-skills itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 17, 2026

liarjs skills

Agent Skills for browser fingerprint testing and automation-harness QA.

Four skills that teach a coding agent to run liarjs: 40 consistency checks over 19 fingerprint probes, cross-checked against what the TLS/HTTP layer actually saw.

liarjs.dev - what the checks mean - field notes

npx skills add liarjs.dev                  # from the site's well-known endpoint
npx skills add liarjsdev/liarjs-skills     # from this repo

The skills

skilluse it when
browser-fingerprint-auditrun a browser fingerprint test and read the result: canvas, WebGL, WebGL2, WebGPU, audio, 220 fonts, WebRTC, timezone, TLS
playwright-stealth-verifycheck whether a Playwright, Puppeteer, Selenium or CDP-driven browser presents a coherent fingerprint, as an assertion in a test
fingerprint-ci-gatefail a GitHub Actions or GitLab job on a fingerprint regression, with a baseline diff
fingerprint-failure-triageturn a low score into a shortlist of things to change, by check id

Each skill is a directory with a SKILL.md following the Agent Skills format, so it works in any client that supports the standard: Claude Code, Codex, Cursor, GitHub Copilot, VS Code, Gemini CLI, OpenCode, Amp, Windsurf, Goose, Kiro and others.

Install

With the cross-agent installer:

npx skills add liarjs.dev                                               # all four, from the site
npx skills add liarjsdev/liarjs-skills                                  # all four, from this repo
npx skills add liarjsdev/liarjs-skills/skills/browser-fingerprint-audit # just one

liarjs.dev works because the site publishes this same tree at /.well-known/agent-skills/index.json (RFC 8615), so no directory site sits between you and the skills. The generator lives in the site repo as scripts/sync-skills.mjs and takes this repo as its source of truth.

Or copy a skill directory into the location your agent reads:

agentpath
Claude Code~/.claude/skills/ (user) or .claude/skills/ (project)
Codex~/.agents/skills/
GitHub Copilot~/.copilot/skills/ (user) or .github/skills/ (repo)

What the underlying tool does

A browser controls its own JavaScript. It does not control the network it connects over. liarjs reads the fingerprint inside the browser, reads the TLS/HTTP/ASN view from the edge that served the request, and reports every place the two stories disagree.

   18 / 100  Likely spoofed / bot

  x navigator.webdriver -40
    webdriver=true, the automation flag is set.
    id: webdriver

  x Worker <-> main-thread consistency -20
    A Web Worker reported different values than the main thread for userAgent, canvasHash.
    id: worker-consistency

  22 checks - 2 critical - 1 warnings - 18 clean
  edge: 203.0.113.7 - AS4058 - LAS - HTTP/2 - TLSv1.3

32 of the 40 checks need nothing but the browser (--offline). 8 compare the JavaScript story against the wire. Full list with deductions: checks.md.

Requirements: Node 22 or newer, and a local Chrome, Chromium or Edge. liarjs has zero runtime dependencies.

Scope and safety

These skills are measurement and diagnostics. They ship no evasions, profiles or proxies.

  • A scan launches its own Chrome with a fresh profile in a temp directory and deletes it when the run ends. It does not read the user's browser profile, history, cookies or saved credentials.
  • No token, login or account is involved. The skills never ask an agent to handle secrets.
  • Nothing is fetched at runtime that changes agent behaviour: the instructions and reference files are the whole content, and the npm package is version-pinned in every command.
  • Probes run on about:blank by default. The skills do not direct an agent to browse third-party sites, and they state that scan output is data to relay rather than instructions to follow.
  • Attaching to an already-running browser (--cdp) is documented as an explicit, user-requested path, not a default, because that drives a session the user owns.
  • The one outbound request in the default path is the browser under test fetching https://liarjs.dev/api/net.json, which answers with what Cloudflare saw about that request. --offline makes no request at all; --endpoint <url> points at your own deployment of that Worker. liarjs.dev does not store scans.

Related packages

packagewhat it is
liarjsthe CLI and library API these skills drive
@liarjs/collectthe 19 browser-side probes, standalone
@liarjs/checksthe 40 consistency rules as pure functions

Source for all three: github.com/liarjsdev/liarjs.

Limits worth stating up front

  • A score is not a ban prediction. It measures internal coherence. Real sites also weigh IP reputation, account age and behaviour, none of which a local scan can see.
  • Headless is detected on purpose. A stock headless run loses points, and that is the correct measurement.
  • Checks drift with Chrome. The rules are versioned with the package and reviewed per Chrome major, which is why every command here pins a version.

MIT (c) liarjs.dev

↑↓ navigate openesc close