Obscura is a headless browser engine written in Rust for web scraping and AI agent automation. It runs real JavaScript through V8, implements the Chrome DevTools Protocol (CDP), and stands in for headless Chrome under Puppeteer and Playwright without needing Chromium, Chrome, or Node.js installed.
The engine includes its own rendering layer: CSS layout and paint, viewport and full-page screenshots, CDP screencasting, and raster PDF export. It covers block, inline, flex, grid, table, float, SVG, canvas, and animation paths, while long-tail CSS, some Web APIs, media playback, and font rasterization may differ from Chromium. Release builds come with or without rendering and with or without the stealth transport.
For agents, Obscura ships an MCP server that exposes browser tools to clients such as Claude Desktop and Cursor, and a Hermes agent plugin runs Hermes browser tasks on it over CDP. A hosted Obscura Cloud with managed infrastructure and residential proxies is in development.
Published comparisons against headless Chrome:
| Metric | Obscura | Headless Chrome |
|---|---|---|
| Memory | 30 MB | 200+ MB |
| Binary size | ~70 MiB | 300+ MB |
| Page load (static HTML) | 51 ms | ~500 ms |
| Page load (JS + XHR + fetch) | 84 ms | ~800 ms |
| Startup | Instant | ~2 s |
Features
- CDP compatibility: Target, Page, Runtime, DOM, Network, Fetch, IO, Storage, and Input domains, including live request interception and streamed response bodies
- Puppeteer and Playwright: existing scripts connect over CDP as they would to headless Chrome
- Native rendering: screenshots, screencasts, and PDF export without starting Chromium
- Stealth mode: per-session fingerprint randomization for GPU, screen, canvas, audio, and battery, plus native function masking
- Tracker blocking: blocks 3,520 analytics, ad, telemetry, and fingerprinting domains in stealth mode
- MCP server: browser tools to navigate, snapshot, screenshot, click, fill, type, evaluate JavaScript, and read network and console logs
- Parallel scraping: a scrape command fans URLs out to worker processes, with a shared HTTP or SOCKS5 proxy
- Fetch CLI: fetch a page, extract links, dump rendered HTML, evaluate JavaScript, or list sub-resources from the command line
- Markdown extraction: a CDP method converts the DOM to Markdown



