Obscura: Rust Headless Browser for AI Agents — 14,000 Stars

Obscura (14,788 GitHub stars) is a Rust headless browser engine for AI agents and web scraping. 30MB memory, 85ms page load, built-in anti-detection. Drop-in replacement for headless Chrome with Puppeteer and Playwright support. Docker and binary installs.

  • ⭐ 14788
  • Rust
  • Apache-2.0
  • Updated 2026-08-27

Mem0: 56K+ Stars — AI Agent Memory Performance Tuning Guide 2026Persistent Memory for AI Coding Agents in 2026

Introduction #

AI agents need to browse the web — but headless Chrome is a heavyweight. A typical headless Chrome instance consumes 500MB+ of memory and takes seconds to cold-start. For an agent that needs to check a dozen pages per task, that overhead adds up fast. Obscura is a Rust headless browser engine built for exactly this workload: 30MB memory, 85ms page loads, built-in anti-detection, and a drop-in API compatible with Puppeteer and Playwright.

Architecture #

┌───────────────────────────────────────────────────┐
│             Obscura Architecture                    │
│                                                     │
│  ┌─────────────────────────────────────────────┐   │
│  │           CLI / Server Interface              │   │
│  │  fetch │ serve │ scrape │ eval │ dump        │   │
│  └──────────────────────┬──────────────────────┘   │
│                         │                           │
│          ┌──────────────┼──────────────┐           │
│          ▼              ▼              ▼           │
│  ┌────────────┐  ┌────────────┐  ┌──────────┐    │
│  │  fetch()   │  │  serve()   │  │ scrape() │    │
│  │ Single page │  │ CDP server │  │ Parallel │    │
│  └─────┬──────┘  └─────┬──────┘  └────┬─────┘    │
│        │               │               │           │
│        ▼               ▼               ▼           │
│  ┌─────────────────────────────────────────────┐   │
│  │           Rust Core Engine                   │   │
│  │  • V8 JavaScript engine                      │   │
│  │  • Chrome DevTools Protocol (CDP)            │   │
│  │  • Stealth mode (anti-detection)             │   │
│  │  • Tracker blocking                          │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
│  ┌─────────────────────────────────────────────┐   │
│  │     Drop-in replacement for Chrome           │   │
│  │     ✅ Puppeteer      ✅ Playwright          │   │
│  └─────────────────────────────────────────────┘   │
└───────────────────────────────────────────────────┘

Installation #

# Binary install
curl -fsSL https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-linux-x86_64 -o obscura
chmod +x obscura && sudo mv obscura /usr/local/bin/

# Docker
docker pull h4ckf0r0day/obscura

Quick Start #

Fetch a Page #

obscura fetch https://example.com --output page.html

Interactive Scraping #

obscura scrape https://example.com --selector ".product-title" --format json

Serve as a CDP Server (Puppeteer/Playwright compatible) #

obscura serve --port 9222

Using with Puppeteer #

// puppeteer-compatible: just point at Obscura
const puppeteer = require('puppeteer-core');

const browser = await puppeteer.launch({
  executablePath: 'obscura',       // instead of chrome
  args: ['--headless'],
});

const page = await browser.newPage();
await page.goto('https://example.com');
const text = await page.evaluate(() => document.title);
console.log(text);  // "Example Domain"
await browser.close();

Using with Playwright #

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(executable_path="obscura")
    page = browser.new_page()
    page.goto("https://example.com")
    print(page.title())
    browser.close()

AI Agent Integration #

Obscura’s low footprint makes it ideal as an MCP server tool for agents:

{
  "mcpServers": {
    "obscura": {
      "command": "obscura",
      "args": ["serve", "--port", "9222", "--mcp"]
    }
  }
}

Agents can then fetch pages, extract content, and interact with sites through standard browser tools — with far lower latency and memory than headless Chrome.

Stealth & Anti-Detection #

Obscura includes built-in stealth features:

  • Canvas/WebGL fingerprint randomization
  • Navigator API normalization (removes headless markers)
  • Tracker and ad blocking by default
  • Realistic viewport and user-agent defaults

Benchmarks #

MetricObscuraHeadless Chrome
Memory footprint~30MB500MB+
Cold start~85ms1-3s
Page load (simple)~150ms~800ms
Binary size~15MB~150MB+

Conclusion #

For AI agents and scraping workloads, Obscura replaces a heavyweight dependency with a lightweight, fast, anti-detection headless browser that drops into existing Puppeteer/Playwright tooling. If your agent does any web interaction, Obscura is worth serious evaluation in 2026.

💬 Discussion