The request interception API (#306) and the global --stealth flag are merged, so: - Use-as-a-Rust-library.md: add an "Intercept requests" section covering on_request/on_response, enable_interception (Continue/Fulfill/Fail), and add_preload_script, with examples. - Intercept-and-modify-requests.md: point embedders at the native API. - AGENTS.md: --stealth is now global (all subcommands incl. scrape, via OBSCURA_STEALTH for workers); note the interception API on the obscura crate and that op_fetch_url rewrites must stay behind validate_fetch_url. - skills/obscura/SKILL.md: fix the build note (stealth is not a default feature), correct "randomized" to a consistent fingerprint, add the global --stealth flag, --dump assets/cookies, and an interception note.
Obscura is an open-source headless browser engine written in Rust. It runs JavaScript via V8, speaks the Chrome DevTools Protocol, and works as a drop-in replacement for headless Chrome with Puppeteer and Playwright.
Versus headless Chrome
| Metric | Obscura | Headless Chrome |
|---|---|---|
| Memory | 30 MB | 200+ MB |
| Binary size | 70 MB | 300+ MB |
| Startup | Instant | ~2s |
| Page load | 85 ms | ~500 ms |
| Anti-detect | Built-in | None |
| Puppeteer | Yes | Yes |
| Playwright | Yes | Yes |
Quickstart
Guides
- Build from source
- Configure stealth and proxies
- Markdown extraction
- Use with Puppeteer
- Use with Playwright
- Use the MCP server
- Use as a Rust library
- Persist cookies and storage
- Intercept and modify requests
- Run in production at scale
Reference
Contributing
Links
- Source: https://github.com/h4ckf0r0day/obscura
- Releases: https://github.com/h4ckf0r0day/obscura/releases
- Issues: https://github.com/h4ckf0r0day/obscura/issues
License: Apache-2.0.