Feature Request: Obscura Browser Provider
What is Obscura?
Obscura is an open-source headless browser engine written in Rust, purpose-built for AI agent automation and web scraping. It exposes a full Chrome DevTools Protocol (CDP) WebSocket server, making it compatible with Puppeteer and Playwright as a drop-in replacement for headless Chrome.
Why integrate it?
Compared to Chrome/Chromium:
| Metric |
Obscura |
Chrome |
| Memory |
~30 MB |
200+ MB |
| Binary size |
~70 MB |
300+ MB |
| Page load |
~85 ms |
~500 ms |
| Startup |
Instant |
~2s |
Key features relevant to Hermes Agent's browser tool:
- CDP-compatible — WebSocket server at
ws://127.0.0.1:9222, same protocol Hermes already uses for Browserbase/local Chrome
- Stealth mode built-in (
--stealth flag) — anti-fingerprinting, tracker blocking (3,520 domains), navigator.webdriver = undefined
- Zero dependencies — single binary, no Chrome/Node.js needed
- Parallel scraping —
obscura scrape with configurable concurrency
- CLI tools —
serve, fetch, scrape subcommands
- Cross-platform — Linux x86_64, macOS (ARM + Intel), Windows
How it could work
Since Hermes already has a provider model (tools/browser_providers/) with browserbase.py, browser_use.py, and firecrawl.py, an obscura.py provider could be added that:
- Spawns
obscura serve --port 9222 as a local subprocess (or connects to an already-running instance)
- Connects via the existing CDP WebSocket path (same as local Chrome mode)
- Optionally enables
--stealth mode via config flag
- Falls back gracefully if
obscura binary is not found
Suggested config
browser:
provider: obscura # new provider option
obscura:
binary_path: obscura # or full path
stealth: true # enable anti-fingerprinting
port: 9222 # CDP WebSocket port
headless: true # always true for Obscura (no GUI)
Environment variables
OBSCURA_BINARY_PATH — override binary location
OBSCURA_STEALTH — true/false to enable stealth mode
OBSCURA_PORT — CDP port (default 9222)
Benefits for Hermes users
- Lightweight alternative to running full Chrome on VPS/memory-constrained environments
- Built-in stealth without needing Browserbase's advanced stealth (which costs extra)
- Fast startup — ideal for short-lived browser tasks (cron jobs, quick scrapes)
- Single binary — easy to install via
hermes setup tools
Links
Contribution
I'd be happy to contribute a PR for the Obscura browser provider if there's interest. The implementation would follow the existing BrowserbaseProvider / BrowserUseProvider pattern.
Feature Request: Obscura Browser Provider
What is Obscura?
Obscura is an open-source headless browser engine written in Rust, purpose-built for AI agent automation and web scraping. It exposes a full Chrome DevTools Protocol (CDP) WebSocket server, making it compatible with Puppeteer and Playwright as a drop-in replacement for headless Chrome.
Why integrate it?
Compared to Chrome/Chromium:
Key features relevant to Hermes Agent's browser tool:
ws://127.0.0.1:9222, same protocol Hermes already uses for Browserbase/local Chrome--stealthflag) — anti-fingerprinting, tracker blocking (3,520 domains),navigator.webdriver = undefinedobscura scrapewith configurable concurrencyserve,fetch,scrapesubcommandsHow it could work
Since Hermes already has a provider model (
tools/browser_providers/) withbrowserbase.py,browser_use.py, andfirecrawl.py, anobscura.pyprovider could be added that:obscura serve --port 9222as a local subprocess (or connects to an already-running instance)--stealthmode via config flagobscurabinary is not foundSuggested config
Environment variables
OBSCURA_BINARY_PATH— override binary locationOBSCURA_STEALTH—true/falseto enable stealth modeOBSCURA_PORT— CDP port (default 9222)Benefits for Hermes users
hermes setup toolsLinks
Contribution
I'd be happy to contribute a PR for the Obscura browser provider if there's interest. The implementation would follow the existing
BrowserbaseProvider/BrowserUseProviderpattern.