What is this?
An open-source headless browser engine written in Rust, built for web scraping and AI agent automation. It runs real JavaScript via an embedded V8 and supports the Chrome DevTools Protocol.
Is this a browser engine of its own, or a wrapper around Chrome?
An independent engine, not a wrapper: no Chromium is required, V8 is embedded directly, and a native rendering engine handles CSS layout and paint, screenshots, screencasts and PDF export.
How do I get it running?
Download a prebuilt binary from GitHub Releases, pull the Docker image (about 57 MB, distroless), or build from source with Rust 1.75+. Then run obscura fetch for a single page or obscura serve --port 9222 to expose the CDP server.
Do I need Chrome or Node.js installed first?
No, nothing beyond the binary itself — release archives are self-contained and the Docker image is distroless. Only building the stealth variant from source needs extra tools: CMake, Clang and the libclang/LLVM dev libraries.
Is its rendering as complete as Chrome's?
Not yet — it is an evolving independent engine. It covers flex, grid, tables, transforms, SVG, canvas and more, but long-tail CSS, some Web APIs, media playback, compositor effects and font rasterization may differ from Chromium.
How much lighter is it than headless Chrome?
By its own benchmarks: about 30 MB of memory vs 200+ MB for Chrome, a ~70 MiB binary vs 300+ MB, ~85 ms page loads vs ~500 ms, and instant startup vs about 2 s.
What does stealth mode do?
It randomizes fingerprints per session (GPU, screen, canvas, audio, battery), presents realistic Chrome 145 user-agent data, hides navigator.webdriver, and blocks 3,520 tracker domains. Enable it with the --stealth flag; screenshots, PDF, CDP and MCP keep working.
How do AI agents drive it?
It ships a built-in MCP server over stdio or HTTP that exposes tools like browser_navigate, browser_snapshot, browser_click, browser_fill and browser_screenshot to clients such as Claude Desktop and Cursor.
Will my existing Puppeteer or Playwright scripts work?
Yes — it implements the Chrome DevTools Protocol as a drop-in replacement. Start obscura serve (default port 9222) and point your Puppeteer or Playwright code at it like headless Chrome.
What are similar projects?
moli, browser, botasaurus, invisible_puppeteer, untidetect-tools, camoufox, CloakBrowser, crawlee
Which topics is it in?
antidetect, antidetect-browser, stealth, anti-detection, cdp, puppeteer, headless, crawler, screenshot, lightweight, playwright, web-scraping