h4ckf0r0day

obscura: Rust Headless Browser Built on V8 for AI Agents

Obscura is a Rust headless browser for AI agents and web scraping, built on V8 and the Chrome DevTools Protocol. It offers a Chromium alternative with Puppeteer, Playwright, and MCP support, plus an independent rendering engine for screenshots and PDFs.

Stars
30k
Forks
2.3k
Last commit
1 day ago
Contributors
93
Releases, 12 months
19

Our take

Activeregular commits and releases

Health score

74/100

How it is scored
Activity
79
Community
62
Issues
74
Pull requests
81
  • Merges more pull requests than 90% of the projects we track
  • More contributors than 76% of the projects we track

Obscura is an actively developed, Apache-2.0 browser option with broad contributor participation, but its independent renderer is still evolving and should be validated against the pages you depend on.

Good fit if

  • You need a Rust-based, V8-powered browser for scraping or AI-agent workflows and want CDP, Puppeteer, or Playwright access.
  • You want an MCP browser server or a Chromium-free path to screenshots and PDF export.
  • Your team can evaluate rendering and stealth behavior on its target sites before relying on them in production.

Look elsewhere if

  • Your workload requires exact Chromium rendering behavior, broad long-tail CSS coverage, media playback, or compositor effects.
  • Your application depends on browser APIs that Obscura does not implement, or on platform font rendering matching Chromium exactly.
  • You need a project with a longer operating history: Obscura is relatively young, despite frequent commits and releases.
All health signals
Last commit2026-10-31 (1 day ago)
Commits, last 90 days100+
Releases, last 12 months19 (latest v0.2.6, 2026-10-31)
Contributors93 (top contributor: 74% of commits)
Issues closed, last 90 days26+ (typically closed in 2 days)
Pull requests merged, last 90 days85 (typically merged in 0 days)
Project age7 months

Checked on 2026-11-02 with the GitHub API.

Overview

Obscura is a Rust headless browser for web scraping and AI agent automation, built on V8 for JavaScript execution and the Chrome DevTools Protocol (CDP) for browser control. It aims to replace headless Chrome for teams that want a smaller browser engine and compatibility with Puppeteer and Playwright, without installing Chrome or Node.js.

It runs on Linux, macOS, and Windows through release binaries, and can also be built from source or run in Docker. Its independent rendering engine supports screenshots and PDF export, while an MCP server gives compatible AI clients browser tools directly.

Key Features

  • Runs page JavaScript using embedded V8 and exposes browser operations through CDP.
  • Connects with Puppeteer and Playwright using their CDP interfaces.
  • Provides CLI commands for fetching pages, extracting content, evaluating JavaScript, and scraping multiple URLs in parallel.
  • Includes an independent rendering engine for screenshots, screencasting, and PDF export without Chromium.
  • Offers optional stealth mode with fingerprint randomization and tracker blocking.
  • Exposes browser navigation and interaction tools over MCP, using stdio or HTTP.
  • Includes SSRF protections that block private and internal IPs by default.

Use Cases

  • AI-agent developers can give MCP-compatible clients browser navigation, page inspection, and interaction tools without building a browser integration from scratch.
  • Scraping teams can fetch and extract content from many URLs in parallel, with JavaScript evaluation and proxy support when needed.
  • Puppeteer or Playwright users can test a CDP-compatible alternative where avoiding a Chromium installation is useful.
  • Teams generating page captures can use the built-in renderer for screenshots and PDFs, while accounting for differences from Chromium.

What you need

Detected in the repository

  • Rust (from Cargo.toml)
  • A Dockerfile, so it can run in a container
  • Automated checks on GitHub Actions

License in plain words

Apache-2.0permissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the license, the NOTICE file and a note of your changes
  • Share your changes: no
  • Includes an explicit patent grant from the contributors:

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

Download a release for your platform, extract it, and try:

./obscura fetch https://example.com --eval "document.title"

See the README for Docker, source-build, CDP, MCP, and integration instructions.

Alternatives

  • browser-rs-mcp: It connects agents to tabs in a shared Chrome profile over CDP, rather than providing an independent Rust browser and rendering engine.
  • stagehand: It adds natural-language actions and structured extraction to Playwright-style automation, and supports hosted Browserbase or local browsers.
  • browserable: It provides agent automation through a JavaScript SDK and REST API, rather than Rust browser tooling with Puppeteer, Playwright, and MCP support.
ProjectLanguageLicenseStarsStatus
obscuraRustApache-2.030kActive
browser-rs-mcpRustApache-2.025New
stagehandTypeScriptMIT25.5kActive
browserableJavaScriptMIT1.2kInactive

Considerations

  • The renderer is an independent, evolving implementation. The README notes gaps or differences in long-tail CSS, some Web APIs, media playback, compositor effects, and platform font rasterization.
  • Building from source requires Rust 1.75 or later, and the first build compiles V8 from source. The stealth build adds BoringSSL, CMake, Clang, and LLVM development-library requirements.
  • The project has a short history, though its recent commit and release cadence is regular. Its contributor base is broad rather than concentrated around one person, and issue handling is active.
  • The supplied project requirements indicate CI but do not indicate a test suite. Teams should verify behavior against their own pages and automation flows.
  • The repository is licensed under Apache-2.0. Review the license terms when redistributing or incorporating it into a product.

Found this useful?

Share it with someone who would like obscura.