Introduction
Learn what Apostate spoofs, how C++-level patching works, and how it compares to script-injection approaches.
Installation
Install Apostate with pip or npm and let it download the patched Chromium binary automatically on first launch.
Quickstart
Go from zero to a verified fingerprint in under five minutes with a single launch call.
Python Guide
Full walkthrough for Python users: seeds, platforms, proxies, and Playwright integration.
How it works
1
Install the package
Run
pip install apostate or npm install @heretic-tech/apostate. The package manager handles everything; the patched Chromium binary is fetched automatically on first launch.2
Choose a fingerprint seed
Pass any integer as your
fingerprint seed. Apostate derives a complete, reproducible machine identity from that seed — the same integer always produces the same GPU, fonts, screen, voices, and locale on every host.3
Launch with your persona
Call
launch() with the seed and your target platform (windows, macos, or linux). Optionally attach a proxy so that timezone and locale resolve automatically from the exit IP.4
Browse undetected
Every API the page can query —
navigator.userAgent, WebGL renderer strings, screen.width, speechSynthesis.getVoices(), and more — returns values that are consistent with the chosen machine. No wrappers, no redefined getters, no detectable seams.Apostate enforces its fingerprint entirely inside the Chromium C++ source — not through injected JavaScript, Chrome DevTools Protocol overrides, or redefined property getters. Detection tools that look for script injection, CDP artifacts, or inconsistent getter behavior will find nothing to flag.