Region ready

Browsers built for agents,
without the infrastructure tax.

Launch an isolated Chrome in one call, connect with CDP or Selenium, and keep a live view, replay, and human takeover when automation meets the real web.

From API call to verified result
Launch
isolated Chrome session
Observe
live frames and agent trace
Verify
receipt, replay, and attribution
CDPSELENIUMPROXYTAKEOVER
Start building
Sessions
Connect to load fleet health
Success rate
Terminal runs
Needs attention
Failed · human · timed out
Browser time
Across listed sessions

Needs attention

Connect an API key to surface failures and human handoffs.

Recent activity

latest sessions
No recent sessions yet.

Fleet status

Connect an API key to load activity.

Get started with WebX

Create a real isolated browser, connect your stack, keep replay and takeover.

< 5 minsBrowserbase-compatible API · WebX verification
1

Create a browser session

Use the Browserbase-compatible endpoint, then connect Playwright over CDP.

2

Set the API key

Use the key you connected with here; WebX accepts x-api-key and Browserbase's X-BB-API-Key.

export WEBX_API_KEY=wx_your_project_key
3

Choose your driver

Playwright / PuppeteerConnect to the returned CDP URL.
SeleniumUse the returned Selenium remote URL.
WebX AgentRun natural-language tasks in Playground.
REST / cURLProvision sessions from any language.
Trust, not just automation

WebX preserves the evidence you need when an agent touches the real web.

ReplaySee every step
TakeoverResolve barriers
ReceiptsProve outcomes
Go to https://example.com and report the main heading Go to https://news.ycombinator.com and report the title of the top story Go to https://en.wikipedia.org and report today's featured article title

Browser

LIVE
driving
Run a task to watch the browser live
live

Chat

idle
ask the agent — it replies with the answer, then you can follow up
Run console Attach a saved policy, describe the goal, dispatch onto a real browser. Runs open in the Playground live view
Policy and result schema apply to every run.
POST /api/agents POST /api/agents/runs
Run variablesnone
Write {{name}} in the task to parameterize it.
Values are sent as inputs on POST /api/agents/runs and substituted into the task before the run starts. They are not stored with the run record — only the variable names are.
Run configurationdefaults
Agent — how far the run may go and which model drives it.
Only strict and critical change behavior (they raise verification strength); the others resolve to the deployment default.
Browser launch — applies to the new session this run starts. A follow-up on an existing session rejects these rather than ignoring them.
Proxy credentials are sent once with the run and used only to launch the browser. They are never written to the session record, the logs, or any API response — the run's provenance keeps a lease hash (managed) or the credential-free host (external).

Agent library

reusable policy + output contract, scoped to this project
Connect to load the agent library Saved agents carry a system prompt and a requested JSON result shape into every run.

Recent runs

newest first · open one to inspect its trajectory and receipts
AgentTaskStatusStarted
No agent runs yet Attach an agent in the run console above, or POST to /api/agents/runs.

Sessions

SessionStatusTaskRegionStartedDur
connect to load sessions

Evidence

select a session to open its evidence
Local client workspace. WebX does not run this code. It is a starting point generated in your browser from this deployment's origin and your current Run configuration — copy or download it and run it on your own machine or CI. Nothing here is uploaded, executed, or deployed by WebX, and no run appears in Sessions until your own process connects. The natural-language Playground remains the primary way to drive a browser here.

Stagehand

Create a project— the tenant every key, session, agent, and context is scoped to

Projects

suspend stops a tenant without revoking keys one by one
ProjectStatusKeysSessionsUsedQuota
Issue a project key— shown once; only the hash is stored
Keys bind to an existing project — create one in Projects first.

Issued keys

HashProjectStatusCreated

Tenant identity config

OIDC, SAML, claims, and SCIM

OIDC client secrets stay envelope-encrypted at rest. The field below shows only a stable marker; leave it blank to keep the stored secret.

Live status

Load a tenant to inspect identity health

SCIM token

shown once

Recent identity audit

No audit data loaded

Users

directory + custom local accounts

Custom local users (email/password) are managed here. OIDC/SAML/SCIM users also appear for visibility. First admin can be created at /login when a project has no local users.

UserOriginRoleActiveLast login
Load a tenant to list users
Set a project quota— over-cap sessions are rejected with 429; empty hours clears it

Per-project usage

ProjectSessionsBrowser-secondsBrowser-hours

Pending confirmations

membrane-gated actions awaiting approval
none pending

Live now

Provider
Model
Endpoint
Key

This is what agents use on the next task. Editing below does not change Live until save is allowed to activate.

Desired configuration

edit & save

Your intended provider. Saves always persist here. When the deployment allows console overrides, Live updates to match. Master token required to save.

Add integration

outbound

Deliver task results to Slack, a webhook, and more. Master token required.

Events: task.completed · task.failed · task.timed_out · task.cancelled · *

Integrations

results pushed out

Add trigger

inbound

Let external systems — CI, cron, Zapier, a form webhook — start an agent task. Master token required.

Triggers

external events start a task

Metrics & dashboards

Prometheus · Grafana

Add telemetry exporter

otlp · datadog

Stream task telemetry to your observability stack on every terminal event. Master token required.

Telemetry exporters

task events → your stack
Capability-aware engine routing
WebX chooses the lowest-cost engine that can honor every declared and launch-implied requirement. Capacity and availability may fall back before execution; browser actions are never silently replayed on another engine.
fail closed
Create context— persistent profile; reuses cookies/logins across sessions (process tier)

Contexts

Context id
Workflow versions— draft / publish / rollback + diff. Single published head. The visual editor is out of scope; payloads are captured elsewhere.

Versions

VersionStatusActionsCommentCreated
Enter a workflow id and load.

Diff

from→ to
Pick two versions to compare their actions.
Workflow— pick or type a workflow id, then load its versions. Master token required.

Versions

Edit loads a version into the editor below (saves as a new draft — versions are immutable)
VersionStatusActionsCommentCreated
Enter a workflow id and load.

Action editor

new workflow (saves as a fresh draft)
#KindSelectorValue / textURL
No actions — click “Add action”.
Params map per kind: goto→url · fill→selector,text · select→selector,value · key→selector,key · wait→for_selector,duration_ms · others use selector. Unlisted params from a loaded version are preserved on save.

Diff

from→ to
Pick two versions to compare their actions.