A closed-source browser kernel executes locally and continually contacts the vendor
Source references: 3The npm/PyPI package is not the only executable content. First launch downloads a closed-source Chromium kernel from the vendor CDN, caches it, runs it locally, and contacts the vendor for license verification. Pinning the wrapper or checking npm integrity does not verify this later download.
If the vendor, CDN, update channel or binary is compromised, the kernel runs with the MCP server user's access to browser sessions, page data and local profiles. License traffic also reveals service-use events and network metadata to the vendor.
The document says first launch downloads and caches a closed-source browser kernel from the vendor CDN, and that there is no offline mode because license verification phones home. The npm integrity check covers the published npm tarball; no kernel hash or signature verification is shown. Running it therefore adds trust in a later-downloaded local binary. A user can request signed, version-pinned kernel artifacts and documented network destinations, or restrict it to an isolated environment.
| `antibrow` (Python path) | PyPI | `pip install "antibrow[mcp]==0.9.0"`, exact version, in a lockfile || Browser kernel | AntiBrow's CDN, fetched by the package on first launch | Closed-source Chromium build, cached in `~/.anti-detect-browser/`. Prefetch it during a build and mount the cache, so a running agent never triggers a download |Show 2 other places
The kernel being a closed binary from a small vendor is a real supply-chain consideration, not a formality - it is the tradeoff for the spoofing living in C++ rather than in an injectable script. Treat it the way you would any vendor binary: install it deliberately, pin it, keep it in an image you built, and if a deployment cannot accept a closed binary that phones home for license verification, this is the wrong tool - there is no offline mode.|---|---|---|| `anti-detect-browser` | npm registry | Install an exact version; `npm view anti-detect-browser@2.8.0 dist.integrity` gives the published tarball hash. No install scripts; dependencies are `ws`, `socks`, `yauzl`, `adm-zip`, `@modelcontextprotocol/sdk` || `antibrow` (Python path) | PyPI | `pip install "antibrow[mcp]==0.9.0"`, exact version, in a lockfile |