OxiBrowser icon
Cross-platform · Active · v0.17+

OxiBrowser

Pure-Rust headless browser

You're building AI agents that need to browse the web. You don't need a full browser with GPU rendering, audio output, and extension support. You need something fast, small, and programmable. OxiBrowser is built for exactly that use case — a pure Rust browser engine with boa_engine for JS, html5ever for HTML, and BoringSSL for stealth TLS fingerprint emulation.

$ cargo install oxibrowser View on GitHub
24 MB
Binary
~50 ms
Cold start
~8 MB
Base RAM
554
Tests
$ oxibrowser fetch https://example.com
<!doctype html>
<html>
  <head>
    <title>Example Domain</title>
  </head>
  <body>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples…</p>
  </body>
</html>

What's inside

Single 24 MB binary

Pure Rust JS engine (boa), no V8, no Chromium. Run 100 instances without breaking a sweat.

~50 ms cold start

No Chromium overhead, no Node.js required. ~8 MB base memory footprint.

CDP-compatible

Puppeteer, Playwright, and any Chrome DevTools Protocol client works out of the box.

Secure by default

SSRF protection with CIDR blocking, robots.txt respect, no sandbox escape surface.

Agent-first CLI

--json output, describe for schema introspection, skill for agent prompts, session for multi-step automation.

Stealth TLS

BoringSSL C binding for stealth fingerprint emulation. Look like a real browser to anti-bot systems.

Install

Cargo install cargo install oxibrowser

In action

Real prompts, real output — the same interfaces humans and agents use.

fetch - HTML to stdout
<!doctype html>
<html>
<head>
  <title>Example Domain</title>
  ...
</head>
<body>
  <div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples...</p>
  </div>
</body>
</html>

$ oxibrowser fetch https://example.com

describe - schema introspection
{
  "binary": "oxibrowser (24 MB, static)",
  "commands": [
    { "name": "fetch",      "args": ["--url"] },
    { "name": "screenshot", "args": ["--url", "--out", "--width", "--height"] },
    { "name": "crawl",      "args": ["--url", "--depth", "--max-pages"] },
    { "name": "describe" }
  ],
  "backends": [
    { "engine": "boa_engine", "version": "0.20" },
    { "engine": "html5ever",  "version": "0.27" },
    { "tls": "BoringSSL (stealth)" }
  ]
}

$ oxibrowser describe --json