Fortress: A Stealth Chromium Engine Built for Scrapers and Browser Agents

Fortress stealth Chromium browser automation featured image

Browser automation has a new bottleneck: the browser itself. Proxies still matter. Behavior still matters. But when a scraper or AI agent gets flagged before it can even load the page, the problem often starts with the fingerprint exposed by headless Chrome.

Fortress attacks that problem lower in the stack. Instead of layering JavaScript stealth patches on top of Chromium, it modifies Chromium’s own engine surfaces so automation presents more like a normal Chrome install.

What Fortress Is

Fortress is an open-source stealth Chromium engine from tiliondev. It is designed for scrapers, browser agents, and automation systems that already use Playwright, Puppeteer, or raw Chrome DevTools Protocol.

The pitch is simple: launch Fortress, connect your existing automation over CDP, and keep the rest of your code mostly unchanged. The project describes support for Python, Node, Docker, portable bundles, and Debian/Ubuntu packages.

That matters because many teams do not want to rebuild their scraping or agent stack. They want the same workflow to survive modern bot detection.

Why Engine-Level Stealth Matters

Traditional stealth tools often patch browser properties from JavaScript. That can work for simple checks, but it also creates a surface that sophisticated detectors can inspect. A page can look at function source, compare values across iframes and workers, or catch mismatches between the user agent, WebGL, audio, canvas, fonts, TLS, and client hints.

Fortress takes a more serious path: it corrects those surfaces inside Chromium’s C++ layer. The project says its spoofed getters return native-code-style behavior across realms, including the main frame, iframes, and Web Workers.

The core idea is coherence: the browser should not look like a pile of patched signals. It should look like one real device.

What Stands Out

Fortress is not just another wrapper around headless Chrome. The repository highlights 34 small, auditable C++ patches, raw CDP access on port 9222, and a Windows-style persona that can be tuned with command-line switches.

The project also claims strong detector results, including 0% headless/stealth on CreepJS, clean reads from Sannysoft and BrowserScan, and successful Cloudflare Turnstile and Akamai examples. Those claims should still be tested in your own environment, because IP quality and browsing behavior can still sink a run. But the technical direction is right.

For AI agents, the most interesting piece is the Fortress MCP. Instead of only giving developers a browser binary, Fortress also offers a Model Context Protocol server with tools for fetching blocked pages, extracting structured data, crawling sites, interacting with page elements, saving profiles, and exposing a stealth CDP endpoint.

Who Should Care

Fortress is most relevant for teams running:

  • Web scraping pipelines that keep getting blocked by fingerprint checks
  • AI browser agents that need to reach pages reliably before extracting data
  • Competitive intelligence, pricing, availability, and ecommerce monitoring workflows
  • Automation stacks already built around Playwright, Puppeteer, CDP, browser-use, Crawl4AI, Stagehand, or LangChain

It is less relevant if your bottleneck is purely legal access, account bans, CAPTCHA volume, or low-quality datacenter proxies. Fortress can make the browser look cleaner. It cannot make bad behavior look human.

The Practical Takeaway

The smart move is not to treat Fortress as magic. Treat it as infrastructure.

If your automation depends on pages loading consistently, the browser fingerprint is now part of your operating stack. You test it, version it, monitor it, and swap it when it becomes the weakest link.

Fortress is worth watching because it points in the direction browser automation is already moving: away from brittle page-level tricks and toward coherent, engine-level environments built for agents and scrapers from the start.

Source: tiliondev/fortress on GitHub

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top