Powered by Camoufox β Firefox with C++ level fingerprint spoofing
π Documentation β’ π Quick Start β’ π Report Bug β’ β¨ Request Feature
| π¦ Camoufox Engine | π‘οΈ 0% Detection | β‘ 3x Faster |
|---|---|---|
| Firefox with binary-level stealth patches | Passes CreepJS, Sannysoft, & all major tests | Optimized context pooling |
+ π¦ NEW: Camoufox browser engine (replaces Chromium + stealth plugins)
+ π‘οΈ NEW: 0% headless detection rate (was 67%+)
+ π NEW: Built-in WebRTC leak protection
+ π NEW: C++ level Canvas/WebGL/AudioContext fingerprint spoofing
+ β‘ IMPROVED: Faster browser launches with persistent contexts
+ π§Ή REMOVED: playwright-extra (no longer needed)
+ π§Ή REMOVED: puppeteer-extra-plugin-stealth (no longer needed)| Tool | Headless Detection | Stealth Score | Engine |
|---|---|---|---|
| π¦ HeadlessX V2.0 (Camoufox) | β 0% | β 0% | Firefox (C++ patched) |
| HeadlessX V1 (Playwright Extra) | β 67% | Chromium (JS patches) | |
| Puppeteer Stealth | β 33% | β 80% | Chromium (JS patches) |
| Vanilla Playwright | β 100% | β 100% | Chromium |
| Vanilla Selenium | β 100% | β 100% | Chrome |
Lower scores = better (0% = undetectable)
| π Website Scraping | |
|---|---|
| Extract search results with zero detection | Scrape any website with full JS rendering |
| β Live | β Live |
| Product & Reviews | Job Listings & Profiles | Tweets & Trends | Posts & Stories |
- π What's New in V2.0
- π Detection Benchmark Comparison
- π€ Scrapers
- πΈ Proof of Undetectability
- π Table of Contents
- β‘ Quick Start
- π₯ Key Features
- π API Endpoints
- Configuration
- π οΈ Manual Setup
- π€ Contributing
- π License
- π Star History
Prerequisites: Node.js 18+, pnpm 9+
cd HeadlessX
# 1. Install Node.js dependencies
pnpm install
# 2. Install Model Dependencies & Download Models (YOLO/Recaptcha)
# Windows:
install.bat
# Linux/macOS:
chmod +x install.sh
./install.sh# Push schema to database
pnpm db:push
# Or run migrations
pnpm db:migrate# Start both frontend and backend
pnpm devOr start individually:
| Windows | Linux / macOS |
scripts\start.bat |
chmod +x scripts/start.sh
./scripts/start.sh |
| π Backend API | http://localhost:3001 |
| π₯οΈ Dashboard | http://localhost:3000 |
|
|
| Endpoint | Method | Description |
|---|---|---|
/api/website/html |
POST |
Get raw HTML (fast) |
/api/website/html-js |
POST |
Get HTML with JS rendering |
/api/website/content |
POST |
Get Markdown content |
/api/website/screenshot |
POST |
Capture full-page Screenshot |
/api/website/stream |
POST |
Real-time SSE Stream |
| Endpoint | Method | Description |
|---|---|---|
/api/google-serp/search |
POST |
Extract Google search results |
/api/google-serp/stream |
GET |
Real-time SSE Stream |
curl -X POST http://localhost:3001/api/website/html \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key" \
-d '{"url": "https://example.com", "stealth": true}'{
"success": true,
"data": {
"url": "https://example.com",
"title": "Example Domain",
"html": "<!DOCTYPE html>...",
"statusCode": 200
}
}
β οΈ Note: Most configuration (Browsers, Stealth, Proxy, Timeouts) is managed directly via the Dashboard Settings.
Only the following core variables are required in .env:
| Variable | Default | Description |
|---|---|---|
PORT |
3001 |
Backend API port |
DATABASE_URL |
- | Supabase Connection String |
NEXT_PUBLIC_API_URL |
http://localhost:3001 |
Frontend API URL |
Configure these live at /settings:
- Headless Mode: Run browser without UI (faster execution)
- Browser Timeout: Max execution time per job (default: 60000ms)
- Max Concurrent Jobs: Concurrent scraping jobs (recommended: 3-8)
- Block WebRTC: Prevent IP leaks via WebRTC
- Camoufox GeoIP: Spoof location based on IP
- Enable Cache: Cache resources for speed
- Manage proxy configurations and rotation settings
cd backend
pnpm install
npx camoufox-js fetch # Download stealth Firefox
pnpm dev # Start dev servercd frontend
pnpm install
pnpm devContributions are welcome! Please read our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.



