playwright-stealth-setup
Skill0 starsChanged 2 months agoMITView on GitHub
Installs and verifies the CloakBrowser stealth-Chromium toolchain — pip package, ~200 MB patched binary, licence key, macOS unquarantine. Use to install or get the stealth browsing environment ready, or when it is missing or broken — 'set up cloakbrowser', 'cloakbrowser install failed'. Not for installing plain Playwright or Chrome, creating an identity or profile, or launching a session.
- Installs packages
In this repository7 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- add-skillSkill
- publish-repoSkill
- playwright-stealth-identitySkill
- playwright-stealth-jobSkill
- playwright-stealthSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 1 is distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
Use when the environment is missing or broken: cloakbrowser not importable, the binary not downloaded, a failing launch test, macOS …
- Distinctive: line 31
Run everything through the bundled script.
- Very specific: line 37
Read the STATUS <component>: OK|MISSING|WARN|FAIL|SKIP lines and the final RESULT:.
- Very specific: line 44
Install what is missing: Only if step 1 reported RESULT: fail:
- Very specific: line 66
If a required step fails, read the FAIL/MISSING detail and fix the root cause using the troubleshooting table in references/toolchain.md.
- Very specific: line 76
No browser session was started and no .stealth/ identity was created.
- Very specific: line 103
Binaries drift: After any wrapper or binary upgrade, the playwright-stealth canary will report fingerprint drift against its baseline — …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
playwright-stealth-setup
Get the CloakBrowser stealth-browsing toolchain installed and verified on this machine, idempotently: probe what is present, then install only what is missing. CloakBrowser is a Chromium fork with fingerprint patches applied at the C++ source level, driven through Playwright — you install a pip wrapper, then download its patched browser binary separately.
Authorized use only. This toolchain is for automating properties you own or are
authorized to test, and for lawful, privacy-respecting browsing. Respect Terms of
Service and robots.txt; no fraud, credential abuse, mass account creation, or evading
access controls you have no right to bypass. Full policy in
references/toolchain.md.
When to use / when NOT to use
Use when the environment is missing or broken: cloakbrowser not importable, the binary
not downloaded, a failing launch test, macOS refusing to open the app, a licence key to
add, or "get the stealth env ready". Not for running a browsing task, creating an
identity, or resuming a session — that is the playwright-stealth skill, which installs
nothing.
Workflow
Run everything through the bundled script. It is the deterministic gate.
- Probe first — no changes. See what already exists before touching anything:
Read thepython3 "${CLAUDE_SKILL_DIR}/scripts/setup_check.py"STATUS <component>: OK|MISSING|WARN|FAIL|SKIPlines and the finalRESULT:.python,cloakbrowser_pkg,binaryandlaunchare required;geoip_extrais advisory and never fails the run.--jsongives machine-readable output.--quickgives a fast, fully offline component list but can never returnRESULT: ok— it skips the launch test, and an unexecuted binary is not a verified install. Use the plain form for the gate. - Install what is missing. Only if step 1 reported
RESULT: fail:
This runspython3 "${CLAUDE_SKILL_DIR}/scripts/setup_check.py" --installpip install -U 'cloakbrowser[geoip]', thenpython -m cloakbrowser install(~200 MB on first run), then clears the macOS Gatekeeper quarantine, then re-probes. It skips anything alreadyOK. - Add a licence key if the user wants a newer binary (optional — the toolchain
works without one):
Or exportpython3 -m cloakbrowser login # GitHub sign-in for a free key, or paste a paid keyCLOAKBROWSER_LICENSE_KEYin the shell. Never write the key into a file in the repository, and never pass it as a visible command-line argument. Re-run step 1 afterwards — the binary version andlicense.tiershould change. - Verify and report. Re-run step 1 and require
RESULT: ok. Report to the user: the wrapper version, the Chromium version that will actually launch, and the licence tier — all read from the live diagnostic, never from documentation. Do not launch a browsing session or create an identity here.
If a required step fails, read the FAIL/MISSING detail and fix the root cause using
the troubleshooting table in references/toolchain.md. Never
edit the script to get past the gate, and never report success from a RESULT: fail.
What "done" looks like
setup_check.pyprintsSTATUS binary: OK chromium <version> (licence tier: <tier>),STATUS launch: OK, andRESULT: ok(exit 0).- You reported the resolved Chromium version and licence tier, and named the trust boundary below in one or two sentences.
- No browser session was started and no
.stealth/identity was created.
Gotchas
cloakbrowser infoexits 0 even when nothing is installed.binary.installedcan befalseon a successful exit. The script reads the JSON, not the exit code — so should you if you ever probe by hand.- The binary is licence-gated, the wrapper is not. MIT covers the Python wrapper
only. Without a key you get the pinned public build for your platform, which on macOS
trails current Chrome by several major versions.
cloakbrowser login(free, GitHub sign-in) moves you to the latest Stable build. - The Chromium sandbox is disabled.
--no-sandboxis part of the wrapper's default stealth args and cannot be removed withoutstealth_args=False, which would turn off every fingerprint patch. Combined with an old free-tier binary, a renderer exploit lands on the host. Say this to the user; do not bury it. - macOS quarantines the binary. It is ad-hoc signed, so the first launch fails with
"app is damaged".
--fix-quarantineclears it withxattr -crscoped to~/.cloakbrowser/, and only aftercloakbrowser installhas already verified the download against a pinned Ed25519 signature — the Gatekeeper flag is cleared on a file whose publisher is authenticated, not on an arbitrary download. This is also the usual cause of alaunch: FAILon a fresh Mac. - You do not need
playwright install chromium. CloakBrowser downloads its own binary. On Linux you may still needplaywright install-deps chromium. - Python ≥ 3.11 is required because the identity format is read with stdlib
tomllib. Fix the interpreter; do not add a TOML backport. - Vendor benchmark claims are marketing. "Passes every bot detection test" and "0.9 reCAPTCHA v3" are unreproduced. Report what the diagnostic says, nothing more.
- Binaries drift. After any wrapper or binary upgrade, the
playwright-stealthcanary will report fingerprint drift against its baseline — that is correct behaviour and needs a reviewed re-baseline, not a suppressed check.
References
- references/toolchain.md — install matrix, the
cloakbrowser infoJSON contract, licence tiers, macOS Gatekeeper, the full trust boundary, version pinning and rollback, troubleshooting, cleanup, authorized use.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

