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.4.0.tar.gz (9.4 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.4.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for orb_browser-0.4.0.tar.gz
Algorithm Hash digest
SHA256 b5127263f74b41eb495323bc42f5aca58985d47f7064b90ebd979db3d0101d63
MD5 9a2f597a888d47b8a5526f77a8f44070
BLAKE2b-256 2127d53df56b09ec4e3608a1a44aaa1ac3366c5a5a4d16f4d94ff61a69554fd9

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for orb_browser-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8649a4e451fafeda0fcea162f8b34adce03861657e9157894d9958ed21a76c9b
MD5 7c584fb5ca97f27db360159f10abee30
BLAKE2b-256 92cb6895da8c92203c4634685ec99acacb68608faf51632f0a1d50b0fcc0bd15

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