Skip to main content

o-browser

Python async browser automation client built on Patchright.

Install

pip install o-browser

Usage

from o_browser import BrowserClient, RemoteBrowser

# Local headless browser
async with BrowserClient() as browser:
    await browser.goto("https://example.com")
    text = await browser.get_text()

# Persistent Chrome profile (cookies survive between runs)
async with BrowserClient(profile_path="~/.config/browser/linkedin") as browser:
    await browser.goto("https://linkedin.com")

# With recording (HAR + video)
async with BrowserClient(record=True) as browser:
    await browser.goto("https://example.com")

# Interactive (opens browser window, waits for user to close)
async with BrowserClient(interactive=True) as browser:
    await browser.wait_closed()

# Connect to remote Chrome (e.g. o-browser-full)
# RemoteBrowser auto-creates a session via POST /api/sessions if none active.
async with RemoteBrowser("http://host:8080", workflow="my-app") as browser:
    await browser.goto("https://example.com")

# Disable auto-session if you manage sessions yourself
async with RemoteBrowser("http://host:8080", auto_session=False) as browser:
    ...

Features

  • Headless and headful modes
  • Persistent Chrome profiles
  • HAR + video recording (HAR captured Python-side, survives the user closing the window in interactive mode)
  • Proxy support
  • Cookie management
  • CDP connection to existing Chrome instances
  • Anti-detection via Patchright

Site adapters (plugins)

Site-specific scrapers are separate distributions, not bundled in core. Each registers in the o_browser.sites entry-point group and is discovered at runtime:

from o_browser import load_site, available_sites

available_sites()                       # -> ['vivatech', ...] (installed adapters)
VivaTechClient = load_site("vivatech")   # pip install o-browser-vivatech

Scope — kept & consolidated as the local-CLI browser

o-browser is the canonical, kept browser lib of Otomata, consolidated as the local-CLI browser tooling: disco/scraping on your own machine, where a local Chrome (persistent profiles + anti-detection + HAR) is all you need.

Server-side browser automation in production runs on the hosted Browserbase substrate (cf. oto-backend) — a real remote Chrome with persistent Contexts and Live View, off-box (anti-OOM). The former self-hosted remote-Chrome service o-browser-full (VNC + CDP proxy + recording) is archived/decommissioned: it overlapped Browserbase entirely and is never needed locally. It stays re-hostable for a sovereign self-hosted setup, which we don't run.

Release files for o-browser 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for o-browser 0.4.1
File Size Uploaded
o_browser-0.4.1.tar.gz 19.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for o-browser 0.4.1
File Interpreter ABI Platform
o_browser-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 33.1 kB

Release files / o_browser-0.4.1.tar.gz

Download URL o_browser-0.4.1.tar.gz
Size 19.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2e05526b082e9a8f1b64d72d5928bfb028f78112b3f1fbcf112e0c055c50b3f3
BLAKE2b-256 checksum
How to use checksums
19b87a0b259258ae2479d5d622679ef9cf29e085c759de2b899b67609ccd7a4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / o_browser-0.4.1-py3-none-any.whl

Download URL o_browser-0.4.1-py3-none-any.whl
Size 14.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c330e5abf9fb9cf01051b7a353f4b17cd14bca76592ee7d20798dd6e02cbd4b0
BLAKE2b-256 checksum
How to use checksums
2050efaeb80488f36c4454a8a5cedada256270a9cda1e2867aad98573fcae38a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page