
Fortress
io.github.tiliondev由 GitHub 帳號 tiliondev 發布v0.1.3更新於 Oct 27, 2026
Stealth browser for AI agents: fetch pages behind Cloudflare/DataDome/CAPTCHA, extract clean data.
概覽
Fortress 為助理提供隱身 Chromium 瀏覽器工具,可載入會阻擋一般自動化的網頁並擷取其中資料。
- 可以做什麼
- 抓取並讀取被 Cloudflare、DataDome 或驗證碼阻擋的頁面,並進行網頁搜尋
- 從網頁以及 PDF、DOCX、XLSX 文件中擷取結構化資料
- 整站爬取,並探測網站使用的私有 JSON 介面
- 操作頁面:列出元素、點擊、填寫表單、按鍵、等待、執行 JavaScript
- 執行登入、翻頁、無限捲動、結帳等多步驟流程
- 截圖、儲存頁面、下載檔案、儲存與載入瀏覽器設定,並提供供 Playwright 或 Puppeteer 使用的 CDP 端點
- 適用情境
- 適合助理需要讀取或抓取會阻擋一般請求與標準無頭瀏覽器的網站,或需要以一致且不易被辨識的指紋進行代理式瀏覽時使用。也適用於多步驟網頁任務與整站爬取。
- 執行需求
- 以 stdio 本機程序執行,從 PyPI 安裝 tilion 套件並以 uvx 或 tilion-mcp 指令啟動;SDK 會下載適用於 Linux x64 或 Windows x64 的預先編譯二進位檔。v3 引擎需透過 tilion activate 或 TILION_LICENSE_KEY 啟用,未啟用時使用公開的第一代引擎。可選 TILION_BASE_URL 與 TILION_API_KEY 切換至託管伺服器;TILION_MCP_HEADLESS、TILION_MCP_PREWARM 與 TILION_ALLOW_PRIVATE_EGRESS 用於調整瀏覽器。僅支援桌面端。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Fortress,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
One browser engine to rule them all
Stealth Chromium engine · v3 (Chromium 153)
[Chromium] [Docker pulls] [Discord]
[Copy for agent] [llms.txt] [MCP server] [npm tilion-mcp]
Fortress is a Chromium fork that stops scrapers and browser agents from getting blocked. Bot detectors flag automation by reading the browser fingerprint. Fortress corrects that fingerprint inside Chromium's C++, so the browser reads as an ordinary Chrome install. Point your existing Playwright or Puppeteer at it over CDP; nothing else in your code changes.
Headless, on datacenter IPs, with no proxies, Fortress loaded 86.4% of 92 protected sites. The next best stack (Camoufox) loaded 74.5%.
A site reads the fingerprint. Stock Chrome driven by a script fails CreepJS, BrowserScan, rebrowser and the WebGL check and is blocked; Fortress passes all four.
Real runs, fully headless
Unedited captures over CDP, with no stealth plugins. Reproduce with examples/scrape_demos.py.
Akamai, before and after, on aa.com from the same residential IP: a stock browser gets Access Denied, Fortress loads the page and Akamai issues its _abck sensor cookie. Same result on lowes.com, macys.com and kohls.com.
Contents
Quick start · Every session a distinct machine · The Fortress MCP · Works with your stack · Why patch the engine · How Fortress compares · Results · Configure the persona · Build & verify · Reference
Quick start
The pip and npm SDKs download a prebuilt, SHA-256-verified binary (Linux x64, Windows x64). Portable tarballs, a .deb and the Windows .zip are on Releases.
Free for developers
v3 is free for developers, with no machine, session or concurrency caps. Activate once:
The key is checked offline and Fortress never reports usage. Without activation it still runs, on the public first-generation engine. For CI, Docker and agents, set TILION_LICENSE_KEY=<key> or run tilion activate --token <key>; one key covers a fleet. Production keys for larger organizations are at fortress.tilion.com/pricing.
The tilion CLI
Platforms
The arm64, x86 and armhf builds ship without the bundled Widevine CDM.
Set it up with an AI assistant
[Ask ChatGPT] [Ask Claude] [Ask Gemini] [Copy for agent]
Every session a distinct machine
Each launch mints a fresh, internally coherent machine: GPU, screen, cores, timezone, language and fonts all agree. The persona reaches the renderer over IPC, so nothing shows on the command line and every BrowserContext can hold its own identity. Across 40 back-to-back launches of the same binary:
Reproduce with tools/gauntlet.py --runs 40. A 64-clone fleet resumed from one snapshot comes up 48/48 distinct, because on_restore re-keys the whole persona with no relaunch.
The Fortress MCP
[Beta]A Model Context Protocol server that gives Claude, Codex, Cursor, Windsurf, Cline or any MCP client a stealth browser as 29 tools, local and free. When a plain fetch is blocked, the agent calls a tool and gets the page.
For Claude Desktop, Cursor (~/.cursor/mcp.json), Cline and Windsurf, add the same block to the client's MCP config:
The full tool reference, benchmarks and agent skill are in mcp/.
Works with your stack
With Fortress running (Docker or the tilion command), one line changes: launch() becomes connect_over_cdp("http://localhost:9222").
Why patch the engine, not the page
A JavaScript stealth patch is a function standing where a native one belongs, and detectors check for exactly that:
Realm re-acquisition defeats every main-world patch. A detector takes a pristine primitive from another realm and turns it on your function:
In Fortress the getter for navigator.vendor is the C++ getter. It reports [native code] because it is native code, the same in every frame and worker. Fortress applies the Camoufox idea to V8 and Blink, so the fingerprint matches a Chrome user agent by construction.
The four layers of bot detection
Fortress is the Layer C engine, built to be driven so A and B hold too, and to stay geo-coherent (timezone, locale, WebRTC) once you bring a Layer D IP.
How Fortress compares
¹ Multilogin / GoLogin / Dolphin / Nstbrowser: closed-source engine patches, persistent identity by design, bundled residential egress (their Layer-D advantage over Fortress).
Fortress builds on prior art: fingerprint-chromium, ChromiumFish and CloakBrowser came first, and Camoufox, Multilogin, GoLogin and Dolphin also patch engine C++. Fortress's edge is the combination: the broadest native surface set on a Chromium base, fleet dynamism with on_restore, and parameter-level coherence. Where it is behind: IP egress (bring your own) and behavioral humanization beyond mouse motion.
Results
Benchmark: 92 protected sites, eight stacks
Run on 2026-09-28 from US-East cloud machines, headless, on datacenter IPs with no proxies. Every tool loaded every target twice, each time on a fresh machine destroyed afterwards (1,584 machines). A run counts only if the real page loaded with no challenge or deny page. Method and target list: docs/BENCHMARK.md.
95% Wilson intervals; Fortress's does not overlap the next stack's. Fortress got 2/2 on ten sites where neither Camoufox nor puppeteer-stealth got more than 1/2, and there is no site where it got 0/2 while either of them got 2/2. A repeat run the same day scored 85.3%.
Live detectors
Headless, from a datacenter IP, on the v3 binary. Reproduce with tools/gauntlet.py --bundle ./fortress-v153; dated re-runs are in docs/GAUNTLET_RESULTS.md.
[Fortress clearing a live Cloudflare challenge, then passing sannysoft and BrowserScan]
Unedited capture in a real window: Fortress clears a live Cloudflare challenge, turns bot.sannysoft.com all green and reads BrowserScan "Normal".
Configure the persona
The default is a fresh coherent persona per launch, delivered over IPC. Pin or override any surface with --uxr-* switches:
Every flag, env var and coherence rule: docs/UXR_CONFIG.md.
Build & verify
Output: out/Fortress/chrome. The fork is 81 single-surface patches, and the gauntlet gates every release. The first-generation patch series is public and rebuilds with the same script.
Fortress ships only from these channels:
Every release ships SHA256SUMS (the SDKs check it on install). Verify the Docker image by digest against the release notes:
Reference
Troubleshooting
Still blocked on Cloudflare, DataDome or Kasada. Usually the IP: datacenter ranges are flagged before any page script runs. Retry through a residential or mobile proxy; if it clears, the fingerprint was fine. Tilion Cloud runs Fortress on residential egress (waitlist at tilion.com).
The fingerprint looks off on a Linux host. The default persona is Windows, but TLS and some OS signals follow the host. Match the persona to your egress OS with --uxr-*, or run the native Windows build.
macOS. Run the Docker image or build the .app from source.
A detector flags something the gauntlet passes. Confirm you are on the current rebase, then email [email protected] with the test page.
FAQ
Does Fortress work with Selenium? Drive it over CDP. chromedriver adds the driver artifacts Fortress is built to avoid.
How is it different from puppeteer-stealth, undetected-chromedriver, nodriver and patchright? Those patch the JavaScript or CDP layer, which toString and realm re-acquisition reveal, and headless they send HeadlessChrome in the user agent. In the benchmark they loaded 34 to 36% (puppeteer-stealth 72.3%) against Fortress's 86.4%.
How is it different from Camoufox? Same engine-level idea. Camoufox forks Firefox; Fortress forks Chromium/V8, the majority engine, and adds WebGPU coherence and on_restore fleet re-identity. Benchmark: 86.4% vs 74.5%.
Is it an alternative to Multilogin, GoLogin, Kameleo, AdsPower or Dolphin? Those are closed-source builds sold as persistent profiles with bundled proxies. Fortress is an engine you run yourself, with a fresh identity per launch, published first-generation patches and no telemetry.
Does it run headless? Yes. The benchmark is headless, and headless and headed launches present the same fingerprint.
Do I still need proxies? For sites that block datacenter ranges, yes. Fortress keeps timezone, locale and WebRTC coherent with whatever exit you use.
Is it open source? What does it cost? Source-available under the Fortress Source Available License 1.1; see License.
Is this legal? Fortress is for legitimate automation, testing and scraping of public data. Respect each site's terms and your local law.
Will it pass everything forever? No. Detection moves, so Fortress rebases on Chromium monthly and publishes a dated, reproducible gauntlet.
Roadmap
- First-party residential and mobile egress, wired to the existing geo-coherence
- Keystroke and scroll variance (mouse motion has shipped)
- TLS ClientHello (JA3/JA4) in the persona surface set
- Linux arm64 / x86 / armhf tarballs (rolling out) and a macOS
.app - Code-signed Windows
.exeand macOS.app
Shipped in v3: the IPC persona with per-context isolation, on_restore, parameter-level WebGL and WebGPU, recorded-human mouse motion, the Widevine CDM, the native Windows build, the MCP server and the 92-site benchmark.
Repo layout
Contributing
Fortress does not accept outside pull requests; see CONTRIBUTING.md. Found a detection vector or a leak? Email [email protected] with a reproducible test page.
License
Fortress Source Available License 1.1. Free to read, modify, rebuild and redistribute, and to use for development, testing and evaluation at any size. Production use is free for individuals and for organizations under US$500,000 in cumulative funding and US$300,000 or less in ARR; other organizations need one flat subscription (fortress.tilion.com/pricing, LICENSE, SUBSCRIPTION-TERMS.md). Earlier BSD-licensed releases keep their BSD permissions (LICENSE-BSD-LEGACY). Chromium and the bundled fonts keep their own licenses (NOTICE).
來源:README.md,提交 026da4d
工具
0版本歷史
1- v0.1.3最新Sep 16, 2026
評分
已滿足適用檢查項的 40%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。