Skip to main content

A browser in the cloud that sleeps for $0 and wakes in 500ms

Project description

orb-browser

A browser in the cloud that sleeps for $0 and wakes in 500ms.

Deploy Chrome on Orb Cloud. Browse, log in, interact. When you're done, put it to sleep — the entire browser is checkpointed to NVMe. Wake it later in ~500ms with everything intact: cookies, login sessions, page state. You're still logged in.

Install

pip install orb-browser

Get an API Key

curl -X POST https://api.orbcloud.dev/api/v1/auth/register \
  -H 'Content-Type: application/json' -d '{"email":"you@example.com"}'

curl -X POST https://api.orbcloud.dev/v1/keys \
  -H "Authorization: Bearer YOUR_KEY" \
  -H 'Content-Type: application/json' -d '{"name":"my-key"}'

Quick Start

from orb_browser import OrbBrowser

orb = OrbBrowser(api_key="orb_...")

# Deploy a browser (~1-2 min first time)
orb.deploy()

# Browse
orb.navigate("https://example.com")
orb.screenshot("page.jpg")
print(orb.text())

# Sleep — $0/hr while frozen
orb.sleep()

# Wake — ~500ms, everything restored
orb.wake()
print(orb.url())  # still on example.com

# Done
orb.destroy()

Manual Login

Need to log into Twitter, Gmail, or any site with OAuth/2FA? Use the live browser view:

from orb_browser import OrbBrowser

orb = OrbBrowser(api_key="orb_...")
orb.deploy()

# Navigate to login page
orb.navigate("https://x.com/login")

# Open the live view in your browser
print(orb.live_url)
# → https://abc12345.orbcloud.dev/live

# Click, type, do 2FA in the live view...
# When done, checkpoint the session:

orb.sleep()
print(f"Saved! ID: {orb.computer_id}")

# Later — wake and you're still logged in:
orb.connect("COMPUTER_ID", AGENT_PORT)
orb.wake()

API

orb = OrbBrowser(api_key="orb_...")

Lifecycle

Method Description
orb.deploy() Deploy browser VM (~1-2 min)
orb.sleep() Checkpoint to NVMe ($0)
orb.wake() Restore (~500ms)
orb.destroy() Delete the VM
orb.connect(id, port) Connect to existing VM

Browse

Method Description
orb.navigate(url) Go to URL
orb.click(selector) Click element
orb.click(x=100, y=200) Click coordinates
orb.fill(selector, value) Fill input field
orb.type(text) Type text
orb.press(key) Press key (Enter, Tab, etc)
orb.scroll(direction, amount) Scroll up/down
orb.evaluate(js) Run JavaScript

Read

Method Description
orb.screenshot(path) JPEG screenshot
orb.url() Current URL + title
orb.text() Page text content
orb.html() Page HTML
orb.cookies() All cookies

Properties

Property Description
orb.vm_url VM HTTPS URL
orb.live_url Live browser view URL
orb.computer_id VM ID (save for reconnecting)
orb.state init, deploying, running, sleeping, destroyed

Live View

Open orb.live_url in your browser to see and control the remote Chrome:

  • Click anywhere on the screen to click
  • Type on your keyboard to type in the browser
  • URL bar to navigate
  • Back/Forward buttons

This is how you log into sites that need OAuth, 2FA, or CAPTCHA.

How It Works

  1. deploy() creates a VM on Orb Cloud with Python + Playwright + Chrome
  2. Chrome runs locally in the VM — no remote WebSocket, no CDP over internet
  3. You send HTTP requests, the agent executes them against local Chrome
  4. sleep() uses CRIU to checkpoint the entire process tree to NVMe
  5. wake() restores everything in ~500ms — Chrome doesn't know it was frozen

Cost

State Cost
Running ~$0.03/hr
Sleeping $0/hr
1,000 browsers, 90% sleeping ~$50/month

License

MIT

Project details


Download files

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

Source Distribution

orb_browser-0.3.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

orb_browser-0.3.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file orb_browser-0.3.0.tar.gz.

File metadata

  • Download URL: orb_browser-0.3.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for orb_browser-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4bc785e55e76e4aba57f9dae609b2a1d4797f188fbc7ec26762dc97c5b327351
MD5 9bf79fa07cc347217ad95b656686429f
BLAKE2b-256 46b0f713fa63b568fdac9935e9223a40ca85c4982394f0b9ed55838be6ee3c0c

See more details on using hashes here.

File details

Details for the file orb_browser-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: orb_browser-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for orb_browser-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 071a8d2bcd6e9df28f8bbfc80a598bb73c2d0b63885bcdf4b20437ae6d28d07d
MD5 1a5199b196d16d27d40d16888c0578e8
BLAKE2b-256 bb0d97000140967d588910c6d36d699e4830ced0c766b7694809dcba61606f5e

See more details on using hashes here.

Supported by

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