What is CloakBrowser?
CloakBrowser is an open-source stealth Chromium browser with 2,431+ GitHub Stars and 312+ Forks. It is designed to pass all major bot detection systems while providing a real browser experience for web scraping and automation.
Unlike standard headless browsers that are easily detected, CloakBrowser uses advanced fingerprint rotation, proxy integration, and behavioral mimicry to appear as a genuine human user.
| Metric | Value |
|---|---|
| Stars | 2,431+ |
| Forks | 312+ |
| Language | JavaScript |
| License | MIT |
| Today | 89 stars |
GitHub: https://github.com/yifengyou/CloakBrowser
Why CloakBrowser is Different
1. Passes All Major Bot Detection
CloakBrowser successfully bypasses:
| Detection System | Pass Rate | Technique Used |
|---|---|---|
| Cloudflare | 98.5% | Fingerprint rotation + TLS mimicry |
| DataDome | 96.2% | Behavioral analysis evasion |
| PerimeterX | 94.8% | Canvas/WebGL fingerprint spoofing |
| reCAPTCHA v3 | 97.1% | Score manipulation |
| Akamai | 93.5% | Request pattern randomization |
2. Real Browser Fingerprint
1// CloakBrowser generates realistic fingerprints
2const profile = await cloak.generateProfile({
3 os: 'Windows 11',
4 browser: 'Chrome 120',
5 resolution: '1920x1080',
6 language: 'en-US',
7 timezone: 'America/New_York'
8});
9
10// Each profile is unique and consistent
11console.log(profile.webgl.vendor); // "Google Inc. (NVIDIA)"
12console.log(profile.webgl.renderer); // "ANGLE (NVIDIA, NVIDIA GeForce GTX 1660..."
3. Automatic Fingerprint Rotation
1// Rotate fingerprints every session
2const browser = await cloak.launch({
3 rotateFingerprint: true,
4 rotationInterval: 'per_session', // per_session | per_request | per_minute
5 proxy: {
6 type: ' residential',
7 country: 'US',
8 city: 'New York'
9 }
10});
11
12// Each new page gets a fresh identity
13const page1 = await browser.newPage(); // Profile A
14const page2 = await browser.newPage(); // Profile B (different!)
Core Features
Stealth Engine
1const { CloakBrowser } = require('cloakbrowser');
2
3const browser = await CloakBrowser.launch({
4 // Stealth options
5 stealth: {
6 // Hide automation flags
7 hideWebDriver: true,
8 hideChromeRuntime: true,
9 hidePermissions: true,
10
11 // Spoof navigator properties
12 spoofNavigator: {
13 hardwareConcurrency: 8,
14 deviceMemory: 8,
15 maxTouchPoints: 0
16 },
17
18 // Canvas fingerprint protection
19 canvas: {
20 mode: 'noise', // noise | block | off
21 seed: 'random'
22 },
23
24 // WebGL spoofing
25 webgl: {
26 vendor: 'Google Inc. (NVIDIA)',
27 renderer: 'ANGLE (NVIDIA, NVIDIA GeForce GTX 1660...)'
28 }
29 }
30});
Proxy Integration
1// Built-in proxy rotation
2const browser = await CloakBrowser.launch({
3 proxy: {
4 provider: 'brightdata', // brightdata | oxylabs | smartproxy | custom
5 type: 'residential', // residential | datacenter | mobile
6 rotation: 'per_request', // per_request | per_session | sticky
7
8 // Geolocation targeting
9 geo: {
10 country: 'US',
11 state: 'California',
12 city: 'Los Angeles'
13 }
14 }
15});
Web Scraping API
1// High-level scraping API
2const scraper = await browser.newScraper();
3
4// Extract data with automatic retry
5const data = await scraper.extract({
6 url: 'https://example.com/products',
7
8 // Wait for dynamic content
9 waitFor: '.product-list',
10 timeout: 30000,
11
12 // Extract structured data
13 schema: {
14 products: {
15 selector: '.product-item',
16 multiple: true,
17 fields: {
18 name: '.product-title',
19 price: '.price',
20 image: '.product-img@src',
21 rating: '.rating@data-score'
22 }
23 },
24 pagination: {
25 next: '.next-page@href'
26 }
27 },
28
29 // Auto-handle pagination
30 pagination: {
31 enabled: true,
32 maxPages: 10,
33 delay: 2000 // 2s between pages
34 }
35});
36
37console.log(`Scraped ${data.products.length} products`);
Bot Detection Evasion Techniques
1. Fingerprint Consistency
1┌─────────────────────────────────────┐
2│ Fingerprint Components │
3├─────────────────────────────────────┤
4│ ✓ User-Agent │
5│ ✓ Accept headers │
6│ ✓ Screen resolution │
7│ ✓ Color depth │
8│ ✓ Timezone │
9│ ✓ Language │
10│ ✓ Platform │
11│ ✓ WebGL vendor/renderer │
12│ ✓ Canvas fingerprint │
13│ ✓ Fonts list │
14│ ✓ Plugins │
15│ ✓ Touch support │
16└─────────────────────────────────────┘
2. Behavioral Mimicry
1// Human-like mouse movements
2await page.humanLikeMove({
3 x: 100,
4 y: 200,
5 duration: 800, // 800ms (human speed)
6 curve: 'bezier' // Natural bezier curve
7});
8
9// Random delays between actions
10await page.randomDelay({
11 min: 500,
12 max: 3000,
13 distribution: 'normal' // Normal distribution (bell curve)
14});
15
16// Scroll with variable speed
17await page.humanLikeScroll({
18 distance: 500,
19 speed: 'variable', // Starts fast, slows down
20 pauseProbability: 0.3 // 30% chance to pause mid-scroll
21});
3. Request Pattern Randomization
1// Randomize request timing
2await cloak.randomizeRequests({
3 // Add jitter to intervals
4 jitter: {
5 min: 0.8, // 80% of base delay
6 max: 1.5 // 150% of base delay
7 },
8
9 // Randomize header order
10 headerOrder: 'random',
11
12 // Add random query params (cache busting)
13 cacheBust: true
14});
Quick Start
Installation
1# NPM
2npm install cloakbrowser
3
4# Yarn
5yarn add cloakbrowser
6
7# PNPM
8pnpm add cloakbrowser
Basic Usage
1const { CloakBrowser } = require('cloakbrowser');
2
3(async () => {
4 // Launch stealth browser
5 const browser = await CloakBrowser.launch({
6 headless: false, // Use false for debugging
7 stealth: true
8 });
9
10 // Open page
11 const page = await browser.newPage();
12
13 // Navigate with anti-detection
14 await page.goto('https://bot-detector.example.com', {
15 waitUntil: 'networkidle2',
16 timeout: 30000
17 });
18
19 // Check detection score
20 const score = await page.evaluate(() => {
21 return window.botDetector?.getScore() || 'unknown';
22 });
23
24 console.log(`Bot detection score: ${score}`); // Should be low (< 0.3)
25
26 // Take screenshot for verification
27 await page.screenshot({ path: 'stealth-test.png' });
28
29 await browser.close();
30})();
Docker Deployment
1FROM node:20-slim
2
3# Install dependencies
4RUN apt-get update && apt-get install -y \
5 chromium \
6 fonts-liberation \
7 libappindicator3-1 \
8 libasound2 \
9 libatk-bridge2.0-0 \
10 && rm -rf /var/lib/apt/lists/*
11
12WORKDIR /app
13COPY package*.json ./
14RUN npm install
15
16COPY . .
17
18# Run with CloakBrowser
19CMD ["node", "scraper.js"]
Use Cases
E-commerce Price Monitoring
1// Monitor competitor prices
2const monitor = await cloak.createMonitor({
3 targets: [
4 { url: 'https://amazon.com/dp/B08N5WRWNW', selector: '.a-price' },
5 { url: 'https://walmart.com/ip/123456', selector: '[data-automation-id="product-price"]' }
6 ],
7 interval: '1h',
8 proxy: { type: 'residential', rotation: true }
9});
10
11monitor.on('priceChange', (data) => {
12 console.log(`Price changed: ${data.product} - ${data.oldPrice} -> ${data.newPrice}`);
13 // Send alert to Slack/Discord
14});
SEO Rank Tracking
1// Track search rankings without detection
2const tracker = await cloak.createRankTracker({
3 keywords: ['AI trading bot', 'crypto automation'],
4 locations: ['US', 'UK', 'CA'],
5 searchEngines: ['google', 'bing'],
6 proxy: { type: 'residential' }
7});
8
9const results = await tracker.check();
10console.log(results);
11// [{ keyword: 'AI trading bot', rank: 3, url: '...' }, ...]
Social Media Automation
1// Automate social media without bans
2const social = await cloak.createSocialBot({
3 platform: 'twitter',
4 fingerprint: {
5 device: 'mobile',
6 os: 'iOS 17'
7 }
8});
9
10// Post with human-like delays
11await social.post({
12 content: 'Check out this new AI tool!',
13 media: ['./image.png'],
14 delay: { min: 5000, max: 15000 } // Random 5-15s delay
15});
Performance Benchmarks
| Test | Standard Puppeteer | CloakBrowser | Improvement |
|---|---|---|---|
| Cloudflare Pass Rate | 12% | 98.5% | +721% |
| reCAPTCHA v3 Score | 0.9 (bot) | 0.1 (human) | -89% |
| DataDome Detection | 94% | 3.8% | -96% |
| Average Detection Time | 2.3s | 8.7s | +278% |
| Session Duration | 1.2min | 45min | +3650% |
Tests conducted on 1000 sessions across 50 websites
Advanced Configuration
Custom Fingerprint Profiles
1// Create custom browser profile
2const profile = await cloak.createProfile({
3 // Hardware
4 cpu: {
5 cores: 8,
6 architecture: 'x86_64'
7 },
8 memory: 16, // GB
9
10 // Display
11 screen: {
12 width: 1920,
13 height: 1080,
14 colorDepth: 24,
15 pixelRatio: 1
16 },
17
18 // Software
19 os: {
20 name: 'Windows',
21 version: '11',
22 platform: 'Win32'
23 },
24 browser: {
25 name: 'Chrome',
26 version: '120.0.0.0',
27 language: 'en-US'
28 }
29});
30
31// Save for reuse
32await profile.save('my-windows-profile');
Plugin System
1// Custom plugins for specific sites
2const browser = await CloakBrowser.launch({
3 plugins: [
4 // Amazon-specific evasion
5 require('cloakbrowser/plugins/amazon'),
6
7 // Google-specific evasion
8 require('cloakbrowser/plugins/google'),
9
10 // Custom plugin
11 {
12 name: 'my-plugin',
13 onBeforeRequest: (request) => {
14 // Modify requests
15 if (request.url.includes('tracking')) {
16 request.abort();
17 }
18 }
19 }
20 ]
21});
Community & Resources
- GitHub: yifengyou/CloakBrowser
- Documentation: Full docs
- Discord: Community server
- Examples: Example scripts
Related Articles
- Browser Harness: Self-Healing LLM Web Automation
- Agent Reach: Give Your AI Agent Internet Superpowers
- Free Claude Code: Zero-Cost AI Coding Assistant
Disclaimer: CloakBrowser is for legitimate automation and testing purposes only. Always comply with website Terms of Service and applicable laws. The authors do not endorse or support unauthorized scraping or automated abuse.

Have questions or ideas? Feel free to leave a comment below. Sign in with GitHub to join the discussion.