Open-source alternatives to Browserbase

Lightpanda leads with 92, ahead of Obscura (85) and camofox-browser (75). Updated from public GitHub data.

The highest-scoring open-source projects in Sandboxes. They are picks, not exact replacements, so read the weaknesses before you switch. The same picks fit if you are leaving Hyperbrowser or Browserless.

Permissive license
Obscura Apache-2.0
Open-source alternatives to Browserbase
RankProjectScore
1LightpandaHeadless browser written in Zig for agents and scraping, with CDP and MCPSandboxes36.9k starsAGPL-3.092 out of 100
2ObscuraRust headless browser with V8 and CDP for scraping and agentsSandboxes29.2k starsApache-2.085 out of 100
3camofox-browserREST API server that gives AI agents an anti-detection Camoufox browserAgent frameworks and SDKs11.9k starsMIT75 out of 100
#4Steel BrowserBrowser API that manages Chrome sessions for Puppeteer, Playwright and SeleniumSandboxes7.9k starsApache-2.048 out of 100

Reviews

192 out of 100

Lightpanda

Headless browser written in Zig for agents and scraping, with CDP and MCP

36.9k starsAGPL-3.0last commit Oct 2026

Lightpanda is a headless browser written from scratch in Zig, using V8 for JavaScript, libcurl for HTTP and html5ever for parsing, with no graphical rendering. It exposes a CDP server for Puppeteer and Playwright, WebDriver BiDi, an MCP server over stdio or HTTP, and a fetch command that dumps pages as HTML or Markdown. An agent mode records sessions as replayable scripts.

Strengths

  • README benchmark: 123MB peak vs 2GB for headless Chrome over 100 pages
  • Speaks CDP, WebDriver BiDi and MCP, so Puppeteer and Playwright clients can connect
  • Agent mode supports many LLM providers and local Ollama or llama.cpp, or runs with --no-llm
  • Agent sessions export to deterministic scripts that replay without a model

Weaknesses

  • No graphical rendering; web platform coverage is partial (see WPT results)
  • No native Windows binary; needs WSL2, and Linux binaries need glibc
  • Usage telemetry is on by default and must be disabled via environment variable
  • AGPL-3.0 license and a CLA required for contributions
  • no GPU
  • Docker
  • Needs Puppeteer or Playwright (optional client), LLM provider API key (agent mode only)
  • Models: Anthropic, OpenAI, Gemini, Google Vertex AI, Mistral
  • port 9222
285 out of 100

Obscura

Rust headless browser with V8 and CDP for scraping and agents

29.2k starsApache-2.0last commit Oct 2026

Obscura is a headless browser engine written in Rust that runs JavaScript through embedded V8 and exposes the Chrome DevTools Protocol, so Puppeteer and Playwright can connect to it. It has its own rendering layer for screenshots, screencasts and PDF export without Chromium, plus an optional stealth build with fingerprint randomization and tracker blocking. A CLI covers single-page fetch, parallel scrape, and a CDP server on port 9222.

Strengths

  • No Chrome or Node.js needed; release archives ship as prebuilt binaries for Linux, macOS and Windows
  • Connects to existing Puppeteer and Playwright scripts over CDP
  • README claims ~30 MB memory and ~85 ms page load versus headless Chrome
  • Parallel scrape command and DOM-to-Markdown CDP method suit LLM pipelines

Weaknesses

  • Independent rendering engine; long-tail CSS, some Web APIs and media playback may differ from Chromium
  • Stealth transport needs a separate build or archive, compiling BoringSSL with CMake and Clang
  • Blocks private-network fetches by default; local dev servers need --allow-private-network
  • Speed and memory figures are the project's own; independent verification not given in README
  • no GPU
  • Docker
  • port 9222
375 out of 100

camofox-browser

REST API server that gives AI agents an anti-detection Camoufox browser

11.9k starsMITlast commit Oct 2026

Wraps Camoufox, a Firefox fork with C++-level fingerprint spoofing, in a REST API for agents. Pages are returned as accessibility snapshots with stable element refs (e1, e2) instead of raw HTML. It adds per-user session isolation, cookie import, proxy with GeoIP, search macros, and an OpenClaw plugin.

Strengths

  • Accessibility snapshots with stable element refs, stated as about 90% smaller than raw HTML
  • Per-user session isolation with persisted cookies and localStorage under ~/.camofox/profiles
  • Proxy support including backconnect sticky sessions, with GeoIP-derived locale and timezone
  • Idle shutdown keeps memory at about 40MB when idle, per the README

Weaknesses

  • First run downloads the Camoufox binary, about 300MB
  • Docker build needs make or build.ps1; plain docker build is explicitly unsupported
  • Anonymized crash telemetry to a hosted endpoint is on by default; opt out via env var
  • Firefox-based, so Playwright video recording is unavailable; tracing is the substitute
  • no GPU
  • Docker
  • Needs Camoufox, yt-dlp (optional), Node.js
  • port 9377
#448 out of 100

Steel Browser

Browser API that manages Chrome sessions for Puppeteer, Playwright and Selenium

7.9k starsApache-2.0last commit Oct 2026

REST API and UI on port 3000 that launches Chrome sessions with persisted cookies and storage, proxy chains, stealth plugins and request logging, then hands you a CDP endpoint for Puppeteer or Playwright or a WebDriver endpoint for Selenium. Quick-action endpoints return a page as HTML, markdown, screenshot or PDF. Runs from a prebuilt ghcr.io image or docker compose; Node and Python SDKs target cloud or self-hosted instances.

Strengths

  • One image serves API, UI and console debugger (ports 3000 and 9223)
  • Session API persists cookies and storage; Selenium sessions via isSelenium
  • Swagger UI at /documentation on the local instance
  • Node and Python SDKs switch between cloud and self-host with baseURL

Weaknesses

  • Public beta; API still changing
  • Runs full Chrome; needs a Chrome executable when run outside Docker
  • Selenium integration lacks some features of the CDP session API
  • Apple Silicon compose needs DOCKER_DEFAULT_PLATFORM=linux/arm64
  • no GPU
  • Docker + Compose
  • Needs Google Chrome (non-Docker runs), Node.js (non-Docker runs)
  • port 3000