chromix (Python)
Drive the Chromix stealth Chromium engine with a CloakBrowser-compatible API —
function names, keyword arguments, return types (Playwright Browser / BrowserContext)
and CLOAKBROWSER_* env-var names all match the cloakbrowser
wrapper, so existing CloakBrowser scripts run on Chromix by changing only the import:
- from cloakbrowser import launch
+ from chromix import launch
from chromix import launch
browser = launch(proxy="http://user:pass@proxy:8080", geoip=True, humanize=True)
page = browser.new_page()
page.goto("https://example.com")
browser.close()
Install
pip install chromix playwright
The distribution and import package are both named chromix. To install the
SDK directly from a repository checkout instead, run:
pip install ./sdk/python playwright
On first launch the stealth Chromium binary is downloaded from this repo's GitHub
Release, SHA256-verified, and cached under ~/.cache/chromix. Point
CLOAKBROWSER_BINARY_PATH at a local build (e.g. your own chrome.exe) to skip
the download.
API
| Function | Description |
|---|---|
launch(**opts) |
Returns a Playwright Browser |
launch_async(**opts) |
Async variant |
launch_context(**opts) |
Returns a BrowserContext (viewport/locale/color_scheme pre-set) |
launch_context_async(**opts) |
Async variant |
launch_persistent_context(user_data_dir, **opts) |
Persistent profile |
launch_persistent_context_async(user_data_dir, **opts) |
Async variant |
build_args / get_default_stealth_args |
Arg assembly (32-bit random seed + platform claim) |
maybe_resolve_geoip(geoip, proxy, tz, locale, args) |
Egress IP → (tz, locale, exit_ip) |
ensure_binary / clear_cache / binary_info / check_for_update |
Binary management |
HumanConfig / resolve_human_config |
Behavioral-layer config (default / careful presets) |
ProxySettings |
Playwright-shaped proxy TypedDict |
Options (headless, proxy, args, stealth_args, timezone, locale, geoip, humanize, human_preset, human_config, extension_paths, license_key, browser_version, release_channel, user_agent, viewport, color_scheme) match CloakBrowser
name-for-name; **kwargs passes through to playwright.chromium.launch() /
browser.new_context().
Env vars
CLOAKBROWSER_BINARY_PATH— use a local chrome binary instead of downloadingCLOAKBROWSER_VERSION/CLOAKBROWSER_RELEASE_CHANNEL— pin a version/channelCLOAKBROWSER_GEOIP_TIMEOUT_SECONDS— geoip lookup timeoutCLOAKBROWSER_WIDEVINE_CDM— explicit Widevine CDM dir (DRM);CLOAKBROWSER_WIDEVINE=0disables DRMCHROMIX_CACHE_DIR/CHROMIX_DOWNLOAD_HOST— cache location / release host override
High-risk engine ports are available only through explicit browser args:
browser = launch(args=[
"--fingerprint-devtools-runtime-suppression",
"--fingerprint-canvas-bridge=127.0.0.1:9228",
"--fingerprint-canvas-bridge-unsafe",
"--fingerprint-webrtc-fake-srflx=203.0.113.20",
"--fingerprint-webrtc-fake-srflx-allow-udp",
])
Runtime suppression can break console/binding-based automation. Canvas Bridge
removes the sandbox from bridge renderer processes and forwards canvas/WebGL
operations to the configured endpoint. Fake srflx does not enable non-proxied
UDP unless the separate allow-udp flag is supplied.
CLI
python -m chromix install # pre-download the binary
python -m chromix info # binary / cache info
python -m chromix widevine # fetch the Widevine CDM (Linux x64)
python -m chromix clear-cache
Intentional differences from CloakBrowser
license_keyis accepted and ignored (one open tier).geoipqueries ip-api.com over HTTP instead of a local GeoLite2 database; explicittimezone=/locale=always win.- No
cloakbrowser/puppeteersubpath — use the Playwright surface. - Widevine is enabled automatically when a CDM is present (installed Chrome,
CLOAKBROWSER_WIDEVINE_CDM, orpython -m chromix widevine).
License
The Python SDK is available under the BSD 3-Clause License. See
LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chromix-152.0.7977.82.tar.gz.
File metadata
- Download URL: chromix-152.0.7977.82.tar.gz
- Upload date:
- Size: 23.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cee9bfe55d37f73b4ca22fee0ad91c3c44e41c0b352eafe272ff0773389b599c
|
|
| MD5 |
88929468a87de309d7610dc07cbcf39e
|
|
| BLAKE2b-256 |
479fad3f1dc7e67ffb3a640695b95e7be4c7092c208658538b8afb52aa9432d2
|
File details
Details for the file chromix-152.0.7977.82-py3-none-any.whl.
File metadata
- Download URL: chromix-152.0.7977.82-py3-none-any.whl
- Upload date:
- Size: 22.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d4fffbcf1246eb478de7e8f3bb33d28ad4d2a23a233c700ff2b73fb23428049
|
|
| MD5 |
1a633b07b9621a8a639021c50194b1ec
|
|
| BLAKE2b-256 |
6957e0cdba46f088263263b9836954149ced71d947761c17e91fe0f5d25c255a
|