mirror of
https://github.com/CloakHQ/CloakBrowser.git
synced 2026-06-23 11:41:46 +02:00
Spawns a separate Chrome process per unique fingerprint seed, all behind
a single port (9222). Clients specify seeds and fingerprint params via
query string on the CDP URL:
connect_over_cdp("http://host:9222?fingerprint=12345&timezone=Asia/Tokyo")
Supports all --fingerprint-* flags as query params, geoip=true for
auto timezone/locale from proxy IP, and proxy= for per-process proxies.
- Rewrite bin/cloakserve from 57-line wrapper to aiohttp CDP multiplexer
- Add ChromePool with per-seed process management and port allocation
- Bidirectional WebSocket proxy for CDP traffic
- URL rewriting for /json/version, /json/list, and WS paths
- Rename _build_args -> build_args, _maybe_resolve_geoip -> maybe_resolve_geoip
- Add aiohttp + websockets to serve optional deps
- Dockerfile installs .[serve] extras
- Add 20 unit tests for cloakserve (param parsing, CLI args, URL rewriting)
78 lines
2.1 KiB
TOML
78 lines
2.1 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "cloakbrowser"
|
|
dynamic = ["version"]
|
|
description = "Stealth Chromium that passes every bot detection test. Drop-in Playwright replacement with source-level fingerprint patches."
|
|
readme = "README.md"
|
|
license = "MIT"
|
|
requires-python = ">=3.9"
|
|
authors = [
|
|
{ name = "CloakHQ", email = "cloakhq@pm.me" },
|
|
]
|
|
keywords = [
|
|
"stealth",
|
|
"browser",
|
|
"chromium",
|
|
"playwright",
|
|
"puppeteer",
|
|
"scraping",
|
|
"web-scraping",
|
|
"anti-detect",
|
|
"antidetect",
|
|
"undetected",
|
|
"bot-detection",
|
|
"fingerprint",
|
|
"recaptcha",
|
|
"cloudflare",
|
|
"turnstile",
|
|
"datadome",
|
|
"captcha",
|
|
"headless",
|
|
"automation",
|
|
"ai-agent",
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: Internet :: WWW/HTTP :: Browsers",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
"Topic :: Software Development :: Testing",
|
|
]
|
|
dependencies = [
|
|
"playwright>=1.40",
|
|
"httpx>=0.24",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
geoip = ["geoip2>=4.0"]
|
|
patchright = ["patchright>=1.40"]
|
|
serve = ["aiohttp>=3.9", "websockets>=12.0"]
|
|
dev = ["pytest>=7.0", "pytest-asyncio>=0.23"]
|
|
|
|
[project.scripts]
|
|
cloakbrowser = "cloakbrowser.__main__:main"
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/CloakHQ/CloakBrowser"
|
|
Documentation = "https://github.com/CloakHQ/CloakBrowser#readme"
|
|
Repository = "https://github.com/CloakHQ/CloakBrowser"
|
|
Issues = "https://github.com/CloakHQ/CloakBrowser/issues"
|
|
|
|
[tool.hatch.version]
|
|
path = "cloakbrowser/_version.py"
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
asyncio_mode = "auto"
|
|
markers = ["slow: marks tests that hit live detection sites (deselect with '-m \"not slow\"')"]
|