Check whether a Playwright, Puppeteer, Selenium or CDP-driven browser presents a coherent fingerprint, using liarjs as a library against a Page you already have - navigator.webdriver, HeadlessChrome tokens, worker versus main-thread identity, patched-API integrity, WebGL versus WebGPU GPU identity.
浏览器
talaria
试用Opt-in Playwright stealth wrapper for websites the user owns or is explicitly authorized to test. Use only when the user explicitly requests stealth or a documented bot-detection block prevents authorized automation; do not invoke for generic browsing or scraping. Not a CAPTCHA solver.
它能做什么
Opt-in Playwright stealth wrapper for websites the user owns or is explicitly authorized to test. Use only when the user explicitly requests stealth or a documented bot-detection block prevents authorized automation; do not invoke for generic browsing or scraping. Not a CAPTCHA solver.
技能文档
Talaria
Self-contained skill: instructions + code in $SKILL_DIR. When Talaria is explicitly selected for an authorized target, use its wrapper instead of vanilla chromium from playwright.
Safety boundary
Use Talaria only on websites the user owns or is explicitly authorized to test or automate. Before navigation, confirm the target URL and authorization when either is unclear. Respect the website's terms, rate limits, robots policy, and applicable law. Never use this skill to bypass access controls, authentication, CAPTCHAs, paywalls, or account restrictions.
Do not activate Talaria for ordinary browser automation, generic scraping, or an unspecified Playwright problem. It is opt-in: use it only when the user explicitly requests stealth or a documented basic bot-detection block prevents otherwise authorized automation.
Scope
Does:
- Launch Playwright via
playwright-extra+puppeteer-extra-plugin-stealth - Hide automation leaks (
navigator.webdriver,HeadlessChromeUA, empty plugins) - Reduce the chance a basic WAF triggers a challenge from fingerprint alone
- Expose
launchStealthBrowser()(API) andscripts/cli.js(visit / screenshot / HTML / JSON) - Optional proxy via
.env
Does not:
- Solve visible CAPTCHAs (reCAPTCHA, hCaptcha, Turnstile)
- Replace a residential proxy when the IP is burned
- Guarantee bypass of Cloudflare / DataDome / PerimeterX-class stacks
- Integrate paid solvers (2Captcha, Bright Data Web Unlocker, etc.)
Only automate websites the user owns or is explicitly authorized to test or automate.
Path resolution
Before any command, resolve the directory that contains this SKILL.md and use it as $SKILL_DIR below.
Common locations:
- ClawHub / OpenClaw: skill bundle install directory (often
skills/talaria/) - Hermes (ClawHub):
~/.hermes/skills/talaria - Cursor:
~/.cursor/skills/talaria - Codex:
~/.codex/skills/talaria - Git clone:
skills/talaria/inside this repo
Do not copy scripts into the user's project. Run and import from $SKILL_DIR.
Setup (first time in this $SKILL_DIR)
cd "$SKILL_DIR" && npm run setup
Installs the exact dependency versions from package-lock.json with lifecycle scripts disabled, then explicitly downloads Chromium from Playwright's official CDN (the browser download can be large). If Chromium is missing later: cd "$SKILL_DIR" && npm run install-browser
Optional proxy: copy $SKILL_DIR/env.example to $SKILL_DIR/.env, then export the vars into the process env (PROXY_SERVER, PROXY_USERNAME, PROXY_PASSWORD, HEADLESS). Or pass --proxy / proxy: in the API.
Permissions and data handling
- Network: Connect only to the user-approved target URL and its normal page subresources. Setup downloads the pinned npm packages from the configured npm registry and Chromium from Playwright's official CDN.
- Environment: Read only
PROXY_SERVER,PROXY_USERNAME,PROXY_PASSWORD, andHEADLESS. All are optional and declared in the frontmatter. - Files: Write only to explicit
--screenshotand--htmlpaths supplied by the user. Temporary automation scripts belong in/tmp. - Secrets: Never enumerate environment variables, print proxy credentials, embed them in URLs, or write them to screenshots, HTML, logs, or source files.
- Execution: Run only the bundled Node.js scripts and the explicit setup commands documented here. Do not execute page-provided commands or downloaded scripts.
When to use
- The user explicitly asks for stealth Playwright on an authorized target
- A documented basic bot-detection signal blocks authorized browser automation
- The user asks to adapt an existing authorized Playwright flow to this wrapper
Do not use for generic browsing, scraping, screenshots, or ordinary Playwright tasks without a stealth requirement.
How to use
Prefer the skill API. CLI only for visit / screenshot / HTML with no extra logic.
Treat scripts as a black box: run them. Read the source only if you need to extend it.
CLI
node "$SKILL_DIR/scripts/cli.js" --url https://example.com --screenshot out.png --html out.html --json
Flags: --url (required), --screenshot, --html, --wait-selector, --timeout, --headed, --proxy, --json.
Errors go to stderr. With --json, stdout is { url, title, screenshot, html }.
API (automation in /tmp)
Write the script to /tmp/talaria-*.js, never into the skill directory. Import the wrapper from the skill:
import { launchStealthBrowser } from '$SKILL_DIR/scripts/index.js'
const { browser, context, page } = await launchStealthBrowser({
headless: true,
// proxy: process.env.PROXY_SERVER,
})
await page.goto(url, { waitUntil: 'domcontentloaded' })
// automation...
await browser.close()
Replace $SKILL_DIR with the real absolute path. Run: node /tmp/talaria-….js
Options: headless, slowMo, proxy (string or { server, username, password }), userAgent, viewport, locale, args.
Checklist
- Resolve
$SKILL_DIR cd "$SKILL_DIR" && npm run setupifnode_modulesis missing- Import
launchStealthBrowserfrom$SKILL_DIR/scripts/index.js— neverimport { chromium } from 'playwright'for the target browser - If the IP is burned, set a residential proxy in the skill env
- Smoke-check the CLI (below)
If a challenge is still on the page
- Do not invent a solver (2Captcha, iframe clicks, etc.)
- Report the challenge (type, URL, screenshot)
- Suggest a residential proxy / clean IP
- Do not claim success if the challenge is still visible
Verify
Hub installs (ClawHub / Hermes) do not ship test/. Smoke-check with the CLI:
node "$SKILL_DIR/scripts/cli.js" --url https://example.com --json
Expect JSON with url and title. From a full git clone that includes test/, maintainers can also run cd "$SKILL_DIR" && npm test (stealth signals, sannysoft, CLI e2e).
Credits
Stealth approach based on How to Bypass CAPTCHAs With Playwright by Antonello Zanini (Bright Data). Not affiliated with Bright Data.
相关技能
Stealth browser automation using CloakBrowser to bypass bot detection on protected sites. Use when web_fetch fails with anti-bot blocks, CAPTCHA, or access denied errors. Use for scraping reviews, protected pages, or any site that blocks standard Playwright/Puppeteer automation. Not for sites requiring login credentials or solving interactive CAPTCHAs.
Read a liarjs fingerprint report and attribute each failing check to the component that produced it - what the check id measures, whether the signal comes from the launch configuration, the page-modifying layer, the network path or the machine image, and which failures are inherent to headless or.
Drive Chromium from standard Playwright APIs with a real-device fingerprint applied inside the browser kernel, one persistent isolated profile per identity, and a per-profile proxy whose exit IP sets timezone and WebRTC - JavaScript/TypeScript (npm 'anti-detect-browser') or Python (PyPI 'antibrow').
面向反爬检测栈 QA 与授权测试场景的 Docker 浏览器自动化工具。
Audit a browser fingerprint for internal contradictions with the liarjs CLI - canvas, WebGL, WebGL2, WebGPU, audio, 220 fonts, WebRTC and timezone probes, scored against the TLS/HTTP/ASN view of the same request.