Skip to content

Latest commit

 

History

History
314 lines (209 loc) · 14.5 KB

File metadata and controls

314 lines (209 loc) · 14.5 KB
Kameleo Anti-Detect Browser

Automate browsers at scale. Stop getting blocked.

Self-hosted, always current, no per-request pricing

Discord npm PyPI NuGet

⭐ Detectors evolve daily. Star us to keep Kameleo one step ahead.


Manually maintaining fingerprint configurations that get detected within hours? Kameleo keeps pace with anti-bot systems automatically, so you stop firefighting and build your actual product.

Blocked Without Kameleo. Undetected With Kameleo.

✅ Validated against real services

We run automated tests frequently. Here are the results with recordings of each run.

Website Playwright + Chromium Playwright + Kameleo
Pixelscan
Watch

Watch
BrowserScan
Watch

Watch
Brotector
Watch

Watch
CreepJS
Watch

Watch
Bot Sannysoft
Watch

Watch
Cloudflare Turnstile
Watch

Watch
Google Search
Watch

Watch

View masking report →

💡 Why Kameleo?

Built for developers who want control.

Predictable pricing at any scale

No per-request pricing. Your cost is fixed by the number of concurrent browsers — run 100 million requests a month and pay the same as running one million. At 40 concurrent browsers you know your cost on day one and at 10×. Competitors charge per API call, per minute, or per profile slot; here the economics stay in your control.

Your data, your infrastructure

Your scraped data never leaves your servers. No vendor lock-in. Deploy on any machine: cloud VM, bare metal, or your own datacenter.

Always current

Stop manually re-testing which fingerprint configuration still works this week. We ship Chroma kernels within 5 days of every Chrome stable release. Junglefox (Firefox-based) follows every 2 months. Multikernel support lets you run multiple browser versions simultaneously, no forced upgrades.

Cloud-native by design

Docker images available for both Linux and Windows containers. Run headlessly at scale, deploy across multiple VMs, and integrate with your CI/CD pipeline. Linux container deployments are fully supported, Kameleo is not Windows-only.

Your stack, unchanged

Works with Selenium, Puppeteer, and Playwright with no framework rewrite. SDKs in Python, JavaScript, and C#. Connect to your existing automation code in minutes.

✨ Features

  • Fingerprints from real devices, always current — Millions of profiles sourced from real hardware, updated continuously. When anti-bot systems update, so do the fingerprints
  • Mobile browser profiles — Engine-level mobile emulation across Android and iOS profiles. Supports Chrome on Android and Safari on iOS out of the box
  • Multi-engine browser pool — Run Chroma (Chrome) and Junglefox (Firefox) simultaneously to diversify fingerprints across targets
  • Persistent profiles and session warmup — Reuse profiles, import/export cookies. Profiles behave like returning users, reducing block and shadow-ban risk
  • Proxy integration — HTTP, HTTPS, SOCKS5, and SSH tunnel support. Geo-location and timezone auto-matched to your proxy IP
  • Headless mode — UI-free sessions on Business plan and above; same fingerprint masking quality as headed mode
  • Docker containers — Linux and Windows Docker images; horizontal scaling without Windows-only constraints
  • Multikernel — pin any browser version — Run multiple Chroma and Junglefox versions side-by-side; upgrade on your schedule
  • No device limits — Licensing is per concurrent browser, not per machine. Deploy across as many servers as your workload demands

📊 How we compare

Anti-detect browsers

GUI-first tools built around manual workflows. If you're automating at scale, you'll be working against the grain.

Feature Kameleo Multilogin GoLogin
Chrome engine ✅ Chroma ✅ Mimic ✅ Chromium-based
Firefox engine ✅ Junglefox
Kernel update speed ≤5 days No SLA No SLA
Pricing unit Concurrent browsers Profiles Profiles
Typed SDK packages ✅ Python / JS / C#
Automation frameworks ✅ Selenium / Puppeteer / Playwright ✅ Selenium / Puppeteer / Playwright ✅ Selenium / Puppeteer
Headless mode
Docker / container deployment
Data stays on your servers
Free tier

Cloud-based web unlockers

Cloud-based scraping APIs: all requests routed through vendor infrastructure, costs tied to usage volume.

Feature Kameleo Zyte ScrapeNinja
Self-hosted
Data stays on your infrastructure
Per-request pricing
Fixed concurrent-browser pricing
Bring your own proxy
Bring your own Playwright / Selenium / Puppeteer
Local API + SDKs (Python / JS / C#)
Docker / container deployment
Free tier ❌ Trial only ✅ 100 req/mo

Open source / community tools

Free to run, but the maintenance cost lands entirely on you — keeping up with every new fingerprinting vector, debugging breakage after Chrome updates, handling the issue backlog yourself.

Feature Kameleo Camoufox undetected-chromedriver / puppeteer-stealth
Commercial support
Chrome engine
Firefox engine
Evasion method ✅ C++ engine-level ✅ C++ engine-level ⚠️ Binary patch / JS injection
Multi-framework SDKs ✅ Py / JS / C# Python only Py / JS
Mobile profiles
Docker / container deployment
Free to use ✅ Free tier ✅ Open source ✅ Open source

🔌 Integrations

Connect with your favorite automation framework:

Selenium
from selenium import webdriver

# Get the WebDriver URL from Kameleo
ws_endpoint = f'http://localhost:5050/webdriver/{profile.id}'
driver = webdriver.Remote(command_executor=ws_endpoint)

driver.get('https://example.com')

Full Selenium guide →

Puppeteer
import puppeteer from 'puppeteer';

const browser = await puppeteer.connect({
    browserWSEndpoint: `ws://localhost:5050/puppeteer/${profile.id}`,
});

const page = await browser.newPage();
await page.goto('https://example.com');

Full Puppeteer guide →

Playwright
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(f'ws://localhost:5050/playwright/{profile.id}')
    page = browser.contexts[0].new_page()
    page.goto('https://example.com')

Full Playwright guide →

📂 Example Code

Working examples for every common scenario:

🏆 Trusted by builders

"Kameleo's human-like browser automation and great fingerprint masking helped our customers with their scraping and automation projects." — Pierluigi Vinciguerra, Co-Founder, Databoutique.com & The Web Scraping Club

"Kameleo keeps our scraping and automation users unblocked at scale: reliable, low-maintenance, and cost-effective." — Jason Grad, Co-Founder of Massive

"Kameleo and Scrapoxy make scraping undetectable, fast and rock-solid — no bans, no downtime." — Fabien Vauchelles, Creator of Scrapoxy

🚀 Start in minutes

Works with your existing Playwright, Puppeteer, or Selenium setup — no framework rewrite required.

1. Install Kameleo:

# Windows
winget install Kameleo.App

# macOS
brew install --cask kameleo

# Docker (Linux & Windows containers available)
docker pull kameleo/kameleo-app:latest

2. Install the SDK:

npm install @kameleo/local-api-client playwright

3. Run your code:

import { KameleoLocalApiClient } from "@kameleo/local-api-client";
import { chromium } from "playwright";

const client = new KameleoLocalApiClient({ basePath: "http://localhost:5050" });

// Pick a real Chrome fingerprint and create a profile
const fingerprints = await client.fingerprint.searchFingerprints("desktop", undefined, "chrome");
const profile = await client.profile.createProfile({ fingerprintId: fingerprints[0].id });

// Connect with Playwright and automate
const browser = await chromium.connectOverCDP(`ws://localhost:5050/playwright/${profile.id}`);
const page = await browser.contexts()[0].newPage();

await page.goto("https://example.com"); // Running undetected ✓

Also available in Python and C#. Supports Selenium, Puppeteer, and Playwright.

❓ FAQ

Is this really free?

Yes! The free tier includes 2 concurrent browsers, 300 minutes of browser usage per month, and 100 cloud profiles. No credit card required to start.

Why on-premise instead of a cloud API?
  • Predictable cost at scale — No per-request pricing. At 40 concurrent browsers you pay the same whether you run 1 million or 100 million requests that month
  • Data ownership — Your scraped data never leaves your infrastructure
  • No scraping rate limits — Only API calls to fetch fingerprints count against limits; your actual scraping traffic is unlimited
  • Compliance — Deploy on-premise for sensitive or regulated workloads
How often are browsers updated?

We ship new Chroma kernels within 5 days of every Chrome stable release. Junglefox (Firefox-based) is updated every 2 months. With multikernel support, you can run multiple versions simultaneously.

How is this different from stealth plugins?

Stealth plugins patch browser APIs at the JavaScript level — detectable by anything that runs before your patches or inspects the JS environment itself. Kameleo patches at the C++ engine level inside Chroma and Junglefox, so the masking is applied before any JavaScript ever runs and cannot be unwound from the page context.

When should I use Junglefox instead of Chroma?

Junglefox (Firefox-based) is valuable for two reasons: fingerprint diversity and target-specific detection logic. Some anti-bot systems apply stricter heuristics to Chrome than Firefox, or vice versa. Running a mix of Chroma and Junglefox profiles diversifies your browser engine signature across a session fleet. Junglefox is also the right choice when a target actively distinguishes Chrome from Firefox in its bot-detection stack.

What about headless mode?

Headless mode is available on Business and Enterprise plans. It launches UI-free browser sessions to reduce resource overhead.

How stable is Kameleo for long-running production workloads?

Kameleo is deployed in production by teams running multi-day, high-volume scraping operations. The CLI is designed for unattended runs. If you hit a stability problem, open an issue or reach us on chat and our support team responds directly.

🤝 Contributing

We welcome contributions! Here's how you can help:

  • Improve documentation — Found something unclear? Submit a PR to /docs
  • Add detection tests — Know a bot detector we should test against? Check our masking report tests
  • Report issuesOpen an issue for bugs or feature requests

Made with ❤️ by the Kameleo Team

Website · Documentation · Discord