Obscura
Skill tdimino/claude-code-minoan/skills/integration-automation/obscura
Stealth headless browser with CDP server for anti-fingerprint browsing, parallel scraping, and low-memory CDP automation. This skill should be used when stealth browsing, anti-detection scraping, headless CDP automation with fingerprint protection, or tracker-free page fetching is needed. Triggers on 'stealth browse', 'anti-fingerprint', 'obscura', 'stealth CDP', 'undetectable scraping', 'headless stealth', 'tracker-free browsing'.From its SKILL.md
npx -y skills add tdimino/claude-code-minoan --skill obscuraAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.6 KB, 643 tokens by cl100k_base, as published. Nobody here has run it
Obscura
Rust headless browser with built-in anti-fingerprinting and CDP server. Fills the gap between Lightpanda (CDP, no stealth) and Scrapling (stealth, no CDP). Binary at ~/tools/obscura/obscura.
When to Use
| Scenario | Tool |
|---|---|
| Clean single-page markdown | Firecrawl |
| Cloudflare Turnstile bypass | Scrapling |
| Lightpanda / Scrapling | |
| Twitter/X | Jina |
Interactive @ref automation | agent-browser |
| Stealth CDP automation | Obscura |
| Batch stealth scraping | Obscura |
| Low-RAM headless (30MB) | Obscura |
Usage
Fetch a page with stealth:
obscura fetch --stealth --quiet https://example.com --eval "document.title"
Parallel batch scrape:
obscura scrape URL1 URL2 URL3 --concurrency 25 --format json
Start CDP server (port 9224 to avoid Chrome conflict on 9222):
obscura serve --port 9224 --stealth
Chain through Proxelar for defense-in-depth — --proxy is a global flag, goes before the subcommand:
obscura --proxy http://127.0.0.1:8080 serve --port 9224 --stealth
obscura --proxy http://127.0.0.1:8080 fetch --stealth https://example.com
Connect Puppeteer: browserWSEndpoint: "ws://127.0.0.1:9224/devtools/browser"
Connect Playwright: endpointURL: "ws://127.0.0.1:9224"
CDP domain coverage: see references/cdp-coverage.md. Includes non-standard LP.getMarkdown for DOM-to-Markdown.
Gotchas
- Port 9224 is convention, not default. The binary defaults to 9222 (Chrome's port). Always pass
--port 9224. --stealthis off by default. Pass it explicitly for anti-fingerprinting and tracker blocking.--proxyis a global flag. Place it beforefetch/serve/scrape, not after.--quietsuppresses the banner. Use it when piping output.- WebSocket path differs from Lightpanda. Obscura:
/devtools/browser. Lightpanda: bare endpoint. - Ad-hoc signed binary, no notarization. SHA-256 recorded at
~/tools/obscura/obscura.sha256. Verify on update.
Helper Scripts
| Script | Purpose |
|---|---|
scripts/obscura_serve.sh | Start CDP server on 9224 with cleanup trap, PID file, optional --with-proxelar |
What ships with it: 7 files
19.3 KB alongside SKILL.md, 4 of them executable
evals/
- evals.json2.9 KB
references/
- cdp-coverage.md1.1 KB
scripts/
- obscura_serve.shruns1.0 KB
- test_academic_sites.shruns4.7 KB
- test_obscura.shruns3.1 KB
- test_stealth_comparison.shruns3.1 KB
- README.md3.4 KB