Cloud desktops vs. headless browsers
When to use a browser, a full desktop, or both.
A headless browser runs web pages without displaying a browser window. A cloud desktop gives your agent a remote operating system, including a browser, terminal, filesystem, and desktop applications.
Start with browser automation if the task stays inside a website. Use a desktop when it needs native applications or a persistent working environment.
Compare the environments
| Headless browser | Cloud desktop | |
|---|---|---|
| Scope | Web pages, tabs, and browser contexts | Browser, terminal, files, and installed applications |
| Control | Locators, browser APIs, JavaScript, and optionally a model | Mouse, keyboard, screenshots, shell commands, and optionally a model |
| State | Cookies and storage can be saved and restored | Application state and files can remain on the computer |
| Debugging | Screenshots, traces, and browser logs | Live desktop, screenshots, application logs, and shell access |
| Operations | Manage browser processes or use a hosted service | Manage computers or use a hosted desktop service |
The two overlap. Browser automation can save files to the host and run alongside other programs. A desktop can run browser scripts without a model interpreting each click.
Playwright supports Chromium, Firefox, and WebKit. Hosted browser services may support a narrower set. Check the service and the browser version when a task depends on a particular feature. See Playwright's browser documentation.
Start with browser automation
For a repeatable web task, use explicit locators where possible. This small Playwright example visits a page and reads its heading without a model call.
In a Python virtual environment, install Playwright and its Chromium binary:
python -m pip install playwright
python -m playwright install chromiumOn Linux, additional system packages may be required. Playwright documents them in its installation guide.
from playwright.sync_api import sync_playwright
with sync_playwright() as playwright:
browser = playwright.chromium.launch(headless=True)
try:
page = browser.new_page()
page.goto("https://example.com", wait_until="domcontentloaded")
print(page.get_by_role("heading", level=1).inner_text())
finally:
browser.close()This runs locally. A hosted service such as Browserbase provides managed browser sessions; use its current quickstart for connection details.
Choose a desktop for work across applications
A desktop is useful when your agent needs to edit a file in a native application, inspect the result in a browser, and then run a command in a terminal. The applications share one filesystem and one working environment.
Orgo provides that computer remotely. Connect through the dashboard or control it through the API. The Orgo quickstart covers the computer lifecycle; the Claude walkthrough adds an agent loop.
A full desktop also gives a person a way to inspect the same interface the agent is using. This is useful for debugging and for steps that need a handoff.
Measure cost per completed task
There is no universal latency or cost winner. A locator click avoids the model work needed to interpret an image, but both workflows may still wait on page loads, network requests, or application processing.
Account for compute, model calls, storage, retries, and time spent handling failures. Compare equivalent tasks at the concurrency you expect to run. A cheaper session that fails more often may cost more per completion.
Plan limits and prices change. Use the current Orgo pricing and your browser provider's pricing when making that comparison, rather than a historical price table.
Use both when it helps
You can run Playwright inside a cloud computer. Let the desktop agent handle the parts that need visual interaction and use a script for repetitive browser work. The outputs remain available to the other applications on the computer.