Obscura: scrape any website without getting blocked
The complete guide to install Obscura, the open source headless browser written in Rust, and scrape almost any website without getting blocked. Install, 3 commands, stealth mode, and how to plug it into Claude.
June 18, 2026 · 5 min read
Why Obscura
You launch a scraper, and after a few hundred pages you get kicked out. Captcha, blocked IP, empty page. The problem almost always comes from the browser you use to collect the data. Headless Chrome leaves traces everywhere, eats 200 MB of RAM per instance, and gets spotted in two seconds by Cloudflare or DataDome.
Obscura takes the problem the other way around. It is a browser with no interface, written in Rust, built for scraping and for AI agents. It renders pages like a real browser (it runs JavaScript through V8), but it weighs 30 MB, starts instantly, and knows how to stay invisible to anti-bot protections. Open source, Apache 2.0 license, free, and more than 15,000 stars on GitHub in a few weeks.
This guide shows you how to install it, your first 3 commands, how to get past anti-bot protections, and how to plug it straight into Claude.
The Claude AI Lab is my Skool community where I share my Claude systems and the more advanced modules. Entry is free.
Join the Lab →Install Obscura
Three ways to install it. The fastest for testing is Docker. The cleanest for daily use is the binary.
The binary on macOS Apple Silicon:
curl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-aarch64-macos.tar.gz
tar xzf obscura-aarch64-macos.tar.gz
On Intel Mac, replace aarch64 with x86_64. On Linux, grab the x86_64-linux or aarch64-linux build.
Docker, if you do not want to install anything natively:
docker run -d --name obscura -p 127.0.0.1:9222:9222 h4ckf0r0day/obscura
Build from source, if you already have Rust:
git clone https://github.com/h4ckf0r0day/obscura.git
cd obscura
cargo build --release --features stealth
Keep both obscura and obscura-worker files in the same folder. The second one handles parallel scraping, without it the workers will not launch.
Your first 3 commands
Three commands cover 90% of the cases.
Fetch a page that is already rendered. JavaScript runs, and you get the final HTML, the text, the links, or markdown directly:
obscura fetch https://example.com --dump markdown
Scrape several URLs in parallel. You pass your list, set the concurrency, and get clean JSON:
obscura scrape url1 url2 url3 --concurrency 25 --format json
Run a server. Obscura exposes a CDP (Chrome DevTools Protocol) server, so you drive it from Puppeteer or Playwright as if it were Chrome:
obscura serve --port 9222
The --dump flag accepts html, text, links, markdown, assets, or original. To feed an LLM, markdown gives you clean content directly, without the HTML noise.
Get past anti-bot protections
This is where Obscura changes the game. You add a single flag:
obscura serve --port 9222 --stealth
Or on a single request:
obscura fetch https://example.com --dump text --stealth
Stealth mode randomizes your fingerprint on every session: GPU, resolution, canvas, audio, battery. It returns a real navigator.userAgentData (Chrome 145), hides navigator.webdriver, and blocks 3,520 tracking domains (analytics, ads, telemetry, fingerprinting). The result: the site treats you like a human and lets you through.
Being able to get through does not mean you should grab everything. Respect each site's terms, do not overload their servers, and use --obey-robots when you want to follow robots.txt. You collect public data, not private accounts.
Plug it into Claude
Obscura ships with an MCP server. In practice, you give Claude the ability to browse and scrape the web live, inside your conversations.
Start the server:
obscura mcp
Then add it to your Claude Desktop config:
{
"mcpServers": {
"obscura": {
"command": "obscura",
"args": ["mcp"]
}
}
}
Claude then gets about a dozen tools: browser_navigate, browser_snapshot, browser_click, browser_fill, browser_evaluate, browser_wait_for, and more. You ask it to read a page, fill a form, or extract a table, and it does it itself.
This is what turns Claude into an agent that can act on the real web, not just answer. You plug Obscura in once, and all your AI agents can scrape without getting blocked.
Before you start
Three habits to avoid wasting time.
--stealth for the sites that actually block you.--dump markdown saves you from cleaning the HTML by hand.Obscura is a headless browser that fits in 30 MB, gets past anti-bot protections with a single flag, and plugs into Claude in three lines. Install it with Docker, test fetch on your site, add --stealth if you get blocked.
Want to go further?
In the Lab, I share my Claude and n8n automations, from idea to something that runs while you sleep.
A dedicated session or program, tailored to your tools and use cases.
And day-to-day, I post one reel a day on Instagram: @quentin_iamarketing