Getting Started

What is OpenSteer

OpenSteer is a browser automation SDK and CLI for discovery-first web automation and replayable code.

What is OpenSteer

OpenSteer is an open-source SDK and CLI for exploring real websites in a real browser, then turning what you learn into plain TypeScript.

The core idea

OpenSteer is built for a discovery-first workflow:

  1. Open a real browser session.
  2. Snapshot the page and interact with it.
  3. Capture real network traffic from real user actions.
  4. Save stable persist keys for important elements and extraction schemas.
  5. Ship final code with the SDK instead of keeping a human in the browser.

That makes OpenSteer useful in two different phases:

  • Exploration: use the CLI or SDK to inspect a live site, click through flows, read state, and capture requests.
  • Production code: use the same workspace data to run opensteer.fetch(), inspect captured records, or reuse saved DOM targets and extraction descriptors.

What OpenSteer does well

  • Browser exploration with cleaned HTML snapshots and element counters.
  • DOM automation with click, hover, input, and scroll.
  • Structured extraction with reusable schemas.
  • Network capture, request inspection, transport probing, and session-aware fetch().
  • Browser state access through state() plus SDK cookie and storage helpers.
  • Computer-use, recording, and local view for visual workflows.
  • Local and cloud execution behind the same high-level API.

What persists

OpenSteer writes workspace state under .opensteer/workspaces/<workspace>/.

That workspace can hold:

  • a persistent browser profile
  • live session records for local and cloud lanes
  • saved network traffic in registry/saved-network.sqlite for local and local-cloud runs
  • DOM persist keys and extraction descriptors in registry/descriptors/
  • durable request plans in registry/request-plans/
  • artifacts, traces, observations, and interaction traces

The goal is simple: explore once, keep the useful parts, reuse them later.

Local and cloud use the same mental model

Local mode is the default. It runs a browser on your machine.

Cloud mode runs a managed Playwright session through OpenSteer Cloud. The high-level methods stay the same, but cloud mode does not support browser attach mode or local browser admin helpers.

Minimal example

import { Opensteer } from "opensteer";

const opensteer = new Opensteer({
  workspace: "demo",
  rootDir: process.cwd(),
});

try {
  await opensteer.open("https://example.com");

  const actionHtml = await opensteer.snapshot("action");
  console.log(actionHtml);

  await opensteer.click({
    element: 3,
    persist: "primary call to action",
  });

  await opensteer.snapshot("extraction");

  const data = await opensteer.extract({
    persist: "page summary",
    schema: {
      title: { element: 2 },
      url: { source: "current_url" },
    },
  });

  console.log(data);
} finally {
  await opensteer.close();
}

Next