Cloud

Cloud Mode

Cloud mode runs the same high-level OpenSteer API against a managed Playwright session.

Cloud Mode

Cloud mode keeps the same high-level OpenSteer API but moves the browser session to a managed Playwright runtime.

Enable it

Environment:

export OPENSTEER_PROVIDER=cloud
export OPENSTEER_API_KEY=your_api_key
export OPENSTEER_BASE_URL=https://your-control-api

SDK:

const opensteer = new Opensteer({
  workspace: "demo",
  rootDir: process.cwd(),
  provider: {
    mode: "cloud",
    apiKey: process.env.OPENSTEER_API_KEY,
    baseUrl: process.env.OPENSTEER_BASE_URL,
  },
});

Browser profile preference

Cloud profile preference belongs under provider.browserProfile:

const opensteer = new Opensteer({
  workspace: "demo",
  provider: {
    mode: "cloud",
    apiKey: process.env.OPENSTEER_API_KEY,
    baseUrl: process.env.OPENSTEER_BASE_URL,
    browserProfile: {
      profileId: "bp_123",
    },
  },
});

What still works

The normal browser automation flow still applies:

  • open()
  • info()
  • listPages(), newPage(), activatePage(), closePage()
  • goto()
  • snapshot()
  • evaluate()
  • click(), hover(), input(), scroll()
  • extract()
  • state(), plus SDK cookies() and storage() helpers
  • network.query(), network.detail()
  • fetch()
  • computerExecute()
  • route() and interceptScript() on managed Playwright runtimes

Managed cloud sessions keep DOM and extraction descriptors durable in cloud registry storage. Raw network discovery stays runtime-local scratch. In local-cloud development, the runtime can bind to the same local workspace root, so saved-network history still lives in the local workspace.

What does not work

  • attach mode
  • the ABP engine
  • local browser.* helpers

Exact failures you will see:

Cloud mode does not support browser.mode="attach".
ABP is not supported for provider=cloud. Cloud provider currently requires Playwright.
browser.* helpers are only available in local mode.

Session persistence

Cloud sessions are stored in the workspace live lane:

.opensteer/workspaces/<workspace>/live/cloud.json

That is separate from local session state, which uses live/local.json.

opensteer status shows both lanes, so you can tell whether a workspace currently has a local session, a cloud session, or stale metadata from an older run.

Cloud recording

opensteer record --provider cloud also needs:

export OPENSTEER_CLOUD_APP_BASE_URL=https://your-cloud-app

That value is used to open the browser session page where the recording toolbar lives.