Install and drive the Fortress stealth Chromium engine. Prebuilt binary, no source.
Project description
tilion-fortress
Drive the Fortress stealth Chromium engine with one line — no build, no Chromium source.
Stop getting blocked — without puppeteer-stealth. JavaScript stealth patches self-reveal: a detector checks whether a getter is native code and catches the override. Fortress compiles the fingerprint correction into Chromium's C++, so a page inspecting itself sees stock Chrome. It clears CreepJS, Sannysoft, BrowserScan, and live Cloudflare as a normal Chrome install.
Install
pip install tilion-fortress
On first use it downloads the prebuilt Fortress binary for your platform from the official GitHub Release (SHA-256 verified) and caches it. No Chromium source, no compilation.
Quick start
from tilion_fortress import Fortress
from playwright.sync_api import sync_playwright
with Fortress() as f: # launches the stealth engine on a CDP endpoint
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(f.cdp_url)
page = browser.new_page()
page.goto("https://bot.sannysoft.com")
page.screenshot(path="all-green.png")
Keep your existing Playwright / Puppeteer / CDP code — just point it at f.cdp_url. Works the same under browser-use, Crawl4AI, Stagehand, and LangChain.
Verified against live detectors
| Suite | Result |
|---|---|
| CreepJS | 0% headless · 0% stealth |
| bot.sannysoft.com | 0 failed · all green · WebGL = NVIDIA RTX 3060 / ANGLE D3D11 |
| browserscan.net | "No bots detected, could be a human" |
| rebrowser bot-detector | no Runtime.enable leak · webdriver=false |
| Cloudflare Turnstile | cleared a live challenge |
Custom persona
The default persona is a coherent Windows identity. Override any surface:
Fortress(
persona={"timezone": "America/Chicago", "languages": "en-GB,en",
"hw_concurrency": 16, "webgl_renderer": "ANGLE (NVIDIA, RTX 3060 ...)"},
extra_args=["--window-size=1280,800"],
)
Platform support
Linux x64 has a native prebuilt binary. On macOS / Windows the package transparently runs Fortress via the official Docker image (tilion/fortress) — Docker is the cross-OS vehicle until native Win/Mac builds ship.
Still blocked? ~90% of the time it's your IP, not your fingerprint — datacenter ranges are flagged before any page script runs. Route egress through a residential or mobile proxy and retry.
Links
- Source & docs: https://github.com/tiliondev/fortress
- Agent guide: https://github.com/tiliondev/fortress/blob/main/AGENTS.md
- Docker image: https://hub.docker.com/r/tilion/fortress
BSD-3-Clause · reproducible from source · monthly Chromium rebase · Blink · V8 · BoringSSL patched in-tree.
Project details
Release history Release notifications | RSS feed
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 tilion_fortress-151.0.7908.0.post2.tar.gz.
File metadata
- Download URL: tilion_fortress-151.0.7908.0.post2.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
262d23464f48fd240e2aecc3ff39073617177bff907a882d7d565382b069b03c
|
|
| MD5 |
2ad77f5cab0be2878242df78400ab502
|
|
| BLAKE2b-256 |
0f01ce54954b3f8de5d01f8dfb0b834cedd1956d2d65b368fa80f60d917452ec
|
File details
Details for the file tilion_fortress-151.0.7908.0.post2-py3-none-any.whl.
File metadata
- Download URL: tilion_fortress-151.0.7908.0.post2-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f32cf0214da4fb7a0cff48bcaa2c65df6c6c7f80f585cb41734ef612450348d
|
|
| MD5 |
823dab7bbac752ea5c7c2c68d7b14ee4
|
|
| BLAKE2b-256 |
b2fc54581392b4fb19ea5f80d891fab9b8fe99d275824b245382f5d2443d3286
|