cloakbrowser
v0.2.0
Published
Stealth Chromium that passes every bot detection test. Drop-in Playwright/Puppeteer replacement with source-level fingerprint patches.
Downloads
1,429
Maintainers
Readme
CloakBrowser
Stealth Chromium that passes every bot detection test.
Drop-in Playwright/Puppeteer replacement. Same API — just swap the import. Scores 0.9 on reCAPTCHA v3, passes Cloudflare Turnstile, and clears 30/30 stealth detection tests.
- 🔒 16 source-level C++ patches — not JS injection, not config flags
- 🎯 0.9 reCAPTCHA v3 score — human-level, server-verified
- ☁️ Passes Cloudflare Turnstile, FingerprintJS, BrowserScan — 30/30 tests
- 🔄 Drop-in replacement — works with both Playwright and Puppeteer
- 📦
npm install cloakbrowser— binary auto-downloads, zero config
Install
# With Playwright
npm install cloakbrowser playwright-core
# With Puppeteer
npm install cloakbrowser puppeteer-coreOn first launch, the stealth Chromium binary auto-downloads (~200MB, cached at ~/.cloakbrowser/).
Usage
Playwright (default)
import { launch } from 'cloakbrowser';
const browser = await launch();
const page = await browser.newPage();
await page.goto('https://protected-site.com');
console.log(await page.title());
await browser.close();Puppeteer
Note: Playwright is recommended for sites with reCAPTCHA Enterprise. Puppeteer's CDP protocol leaks automation signals that reCAPTCHA Enterprise can detect. This is a known Puppeteer limitation, not specific to CloakBrowser.
import { launch } from 'cloakbrowser/puppeteer';
const browser = await launch();
const page = await browser.newPage();
await page.goto('https://protected-site.com');
console.log(await page.title());
await browser.close();Options
import { launch, launchContext } from 'cloakbrowser';
// With proxy
const browser = await launch({
proxy: 'http://user:pass@proxy:8080',
});
// Headed mode (visible browser window)
const browser = await launch({ headless: false });
// Extra Chrome args
const browser = await launch({
args: ['--window-size=1920,1080'],
});
// Browser + context in one call
const context = await launchContext({
userAgent: 'Custom UA',
viewport: { width: 1920, height: 1080 },
locale: 'en-US',
timezoneId: 'America/New_York',
});Utilities
import { ensureBinary, clearCache, binaryInfo, checkForUpdate } from 'cloakbrowser';
// Pre-download binary (e.g., during Docker build)
await ensureBinary();
// Check installation
console.log(binaryInfo());
// Force re-download
clearCache();
// Manually check for newer Chromium version
const newVersion = await checkForUpdate();
if (newVersion) console.log(`Updated to ${newVersion}`);Test Results
| Detection Service | Stock Browser | CloakBrowser |
|---|---|---|
| reCAPTCHA v3 | 0.1 (bot) | 0.9 (human) |
| Cloudflare Turnstile | FAIL | PASS |
| FingerprintJS | DETECTED | PASS |
| BrowserScan | DETECTED | NORMAL (4/4) |
| bot.incolumitas.com | 13 fails | 1 fail |
| navigator.webdriver | true | false |
Configuration
| Env Variable | Default | Description |
|---|---|---|
| CLOAKBROWSER_BINARY_PATH | — | Skip download, use a local Chromium binary |
| CLOAKBROWSER_CACHE_DIR | ~/.cloakbrowser | Binary cache directory |
| CLOAKBROWSER_DOWNLOAD_URL | cloakbrowser.dev | Custom download URL |
| CLOAKBROWSER_AUTO_UPDATE | true | Set to false to disable background update checks |
Migrate From Playwright
- import { chromium } from 'playwright';
- const browser = await chromium.launch();
+ import { launch } from 'cloakbrowser';
+ const browser = await launch();
const page = await browser.newPage();
// ... rest of your code works unchangedPlatforms
| Platform | Status | |---|---| | Linux x86_64 | ✅ Available | | macOS arm64 (Apple Silicon) | ✅ Available | | macOS x86_64 (Intel) | ✅ Available | | Windows | Planned |
On Windows? You can still use CloakBrowser via Docker or with your own Chromium binary by setting CLOAKBROWSER_BINARY_PATH=/path/to/chrome.
Requirements
- Node.js >= 18
- One of:
playwright-core>= 1.40 orpuppeteer-core>= 21
Links
- 🌐 Website
- 🐛 Bug reports & feature requests
- 📦 PyPI (Python package)
- 📖 Full documentation
- 📧 Contact: [email protected]
License
MIT — see LICENSE.
