Skip to main content

OpenBrowse

OpenBrowse

The open-source Browser Use Cloud alternative. Self-host AI browser agents on a Raspberry Pi or any VPS, drive them through the same v3 REST API the browser-use-sdk already speaks, and watch every run live in a real browser. Built on top of the Browser Use SDK. It's cheaper, faster, and more reliable than BU Cloud.

openbrowse.co

Built in London

Benchmarks

Given the same real-world extraction task (a careers page with 14 records behind an embedded, cross-origin board, requiring full schema output):

Runtime Model Reasoning Time Tokens LLM cost Records
BU Cloud claude-sonnet-5 high 2m 36s 859k $0.78 14/141
OpenBrowse gpt-5.6-terra none 1m 47s 202k $0.24 14/14
OpenBrowse claude-sonnet-5 high 4m 02s 242k $0.40 14/14

1 Extracted successfully, though some returned fields (e.g. job seniority) were hallucinated when not shown on the page.

Why OpenBrowse over BU Cloud?

BU Cloud OpenBrowse
Hosting Managed, per-task pricing Your hardware, you pay only LLM tokens
How it works Code-first: the agent scripts its way through pages Visual-first: the agent opens real tabs you can watch live, like a human working
Bulk page reads One page at a time read_pages opens whole listings in parallel tab waves, one step
Structured output Schema-validated Schema-validated, plus a live answer store with a completeness gate the agent must pass before finishing
Anti-hallucination Often fills fields the page never shows On-screen data first, enriched from the page's own structured data (JSON-LD, APIs), never guessed: values without evidence are refused at the store boundary
Profiles Cloud profiles Import your BU Cloud profiles (cookies and localStorage) with one command
Live view Replay Real-time VNC of the actual browser, a step feed with the model's reasoning, and an IDE-style code tab that streams the agent's sandbox scripts live as they're written
API v3 REST The same v3 REST surface: point browser-use-sdk at your box and change nothing but baseUrl and apiKey

⚡ See it in action

Here's a snippet of our benchmark run, with claude-opus-5 taking agentic actions across parallel tabs while its code streams into a live IDE.

https://github.com/user-attachments/assets/c1330d77-67b6-4a7d-bd43-7cdfa230b9d1

Model providers

Recommended models

  1. For most use cases, gpt-5.6-terra { "reasoningEffort": "none" }, gpt-5.6-sol { "reasoningEffort": "none" } and claude-sonnet-5 { "reasoningEffort": "high" } all strike a great balance of reliability, accuracy, and cost.

  2. For intense workflows, use claude-opus-5 { "reasoningEffort": "medium" } or gpt-5.6-sol { "reasoningEffort": "none" } — both are great options, but watch out for token burn.

  3. On a budget? Use gpt-5.6-luna { "reasoningEffort": "max" } with a tightly focused prompt. It might take a while, and it's more prone to hallucinations (especially with broad prompts), but the actual extractions are still great quality.

Comparisons

The same real-world extraction task (a careers page with 14 records behind an embedded, cross-origin board, full schema output) run against BU Cloud and against OpenBrowse on a Raspberry Pi 5 (16GB) without concurrency, ordered cheapest to most expensive:

Runtime Model Reasoning Steps Time Tokens LLM cost Records
OpenBrowse gpt-5.6-luna max 36 17m 03s 1.08M $0.22 14/14
OpenBrowse gpt-5.6-terra none 11 1m 47s 202k $0.24 14/14
OpenBrowse claude-sonnet-5 high 10 4m 02s 242k $0.40 14/14
OpenBrowse gpt-5.6-sol none 8 2m 03s 136k $0.41 14/14
OpenBrowse claude-sonnet-5 none 9 5m 18s 237k $0.51 14/14
OpenBrowse gpt-5.6-terra high 17 5m 05s 434k $0.66 14/14
BU Cloud claude-sonnet-5 high 10 2m 36s 859k $0.78 14/141
OpenBrowse gpt-5.6-sol medium 16 5m 24s 339k $1.12 14/14
OpenBrowse claude-opus-5 medium 15 3m 56s 398k $1.32 14/14
OpenBrowse claude-opus-5 none 17 4m 53s 480k $1.62 14/14

1 Extracted successfully, though some returned fields (e.g. job seniority) were hallucinated when not shown on the page.

OpenAI and Anthropic models are generally at their best at the opposite ends of the reasoning dial. For example, OpenAI's GPT-5.6-Terra performs better with less reasoning, spending less time planning ahead and more time reacting to the page in front of it, while Anthropic's 5-series Claude models lean towards rabbit holes and need reasoning time to refocus on the goal.

Common questions

What's the difference between "thinking" and "reasoning"?

OpenBrowse separates two kinds of reasoning. Browser thinking is our way of describing how the platform works in "steps" (the 👁️ see / 🛝 plan / ➡️ next / 💭 thinking cards in the live feed), so it can't be disabled.

Model reasoning is different: it's the Chain-of-Thought reasoning provided by LLM providers (e.g. Anthropic's extended thinking, OpenAI's reasoning effort), and can be controlled per session by changing reasoningEffort in the API. Values are validated per model at runtime.

See all supported models
  • OpenAI: gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna
  • Anthropic: claude-mythos-5, claude-fable-5, claude-opus-5, claude-sonnet-5, claude-opus-4.8, claude-opus-4.8[1m], claude-opus-4.7, claude-opus-4.7[1m], claude-opus-4.6, claude-opus-4.6[1m], claude-sonnet-4.6, claude-sonnet-4.6[1m]
  • Google: ⚠️ Coming soon

Quick start

Install OpenBrowse with your favorite package manager:

# uv
uv tool install openbrowse
openbrowse start

# pipx
pipx install openbrowse
openbrowse start

# venv
source <path-to-venv>/bin/activate
pip install openbrowse
openbrowse start

To install from source, clone the repo and use uv directly:

git clone git@github.com:lujstn/openbrowse.git
cd openbrowse
uv sync
uv run openbrowse serve

Then, open http://localhost:8420 in a browser. You'll be guided through everything you need to run OpenBrowse. View the installation guide for more details.

Exposing it to the web

OpenBrowse runs on plain Python + Chromium and can be easily port forwarded. To reach it from outside that box without opening ports, put it behind Tailscale:

# private access from your own devices
tailscale up

# or expose the API publicly over TLS with Tailscale Funnel
sudo tailscale funnel --bg 8420

Features

  • v3-compatible REST API: sessions, structured output schemas, cost caps, live URLs.
  • Visual, tab-based browsing: parallel foreground tab waves for bulk reads; a code tab shows when the agent runs a script; everything visible over VNC.
  • Schema answer store: every write validated live against your JSON Schema, coverage tracked per field, a completeness gate before done, and mark-absent semantics for data a site genuinely does not publish.
  • Grounding guards: shell-read detection with automatic in-frame retry, evidence-checked enum writes, URL fields validated as absolute http(s) links at the store boundary, honest failure over invented data.
  • Profile import: bring BU Cloud profiles (cookies + localStorage) via CLI or the dashboard.
  • Dashboard: live session feed with model reasoning, per-step costs, JSON export (full / steps / output-only), profile management.
  • CAPTCHA solving: optional CapSolver integration.
  • Multi-provider: Anthropic and OpenAI models behind one API, with per-provider repair layers for each family's failure modes.

Citation

This project is licensed under the MIT License. If you use OpenBrowse as part of your research or project, please cite:

@software{openbrowse2026,
  author = {Johnston Kurilov, Lucas},
  title = {{OpenBrowse}: Self-hosted AI browser agents},
  year = {2026},
  publisher = {Zenodo},
  doi = {10.5281/zenodo.21986248},
  url = {https://github.com/lujstn/openbrowse}
}

DOI



built with <з by @lujstn
@lujstn Twitter
Instagram
TikTok
lujstn.com

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openbrowse-1.9.1.tar.gz (431.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openbrowse-1.9.1-py3-none-any.whl (370.4 kB view details)

Uploaded Python 3

File details

Details for the file openbrowse-1.9.1.tar.gz.

File metadata

  • Download URL: openbrowse-1.9.1.tar.gz
  • Upload date:
  • Size: 431.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for openbrowse-1.9.1.tar.gz
Algorithm Hash digest
SHA256 d477c425904cad876ba85832de7ef82b377e0e5a1fe8c2efec8a8377d068f319
MD5 585bf09296f3b967c2ddee5340717e33
BLAKE2b-256 7de1477f47384c9d968684b11ba24c5616dbd8764f329a8c50f3e437b7e59bec

See more details on using hashes here.

Provenance

The following attestation bundles were made for openbrowse-1.9.1.tar.gz:

Publisher: release.yml on lujstn/openbrowse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openbrowse-1.9.1-py3-none-any.whl.

File metadata

  • Download URL: openbrowse-1.9.1-py3-none-any.whl
  • Upload date:
  • Size: 370.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for openbrowse-1.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b5084651c1692c6a5a7ee3d3454e38ea2ab86b3db552b1a7f00f90d44207df1f
MD5 7d8c457be26a3f256f151131bd974517
BLAKE2b-256 bb6f7bf4fe0c0f31b32099a65e22fe507ea6b5c352a5bd6ad71c61205b055063

See more details on using hashes here.

Provenance

The following attestation bundles were made for openbrowse-1.9.1-py3-none-any.whl:

Publisher: release.yml on lujstn/openbrowse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.9.4

2 files

1.9.3

2 files

1.9.2

2 files

This release

1.9.1 This release

2 files

1.9.0

2 files

1.8.5

2 files

1.8.4

2 files

1.8.3

2 files

1.8.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page