opensteer
v0.9.8
Published
Opensteer browser automation, replay, and reverse-engineering toolkit.
Maintainers
Readme
Open-source browser automation framework for AI agents. CLI and TypeScript SDK that give coding agents a real Chromium browser with persistent sessions, network capture, and stealth -- so they can browse, inspect, and generate scrapers directly in your codebase.
Install
npm i -g opensteerThen install Chromium for Playwright:
npx playwright install chromiumAgent Quickstart
Using Claude Code, Codex, or Cursor? Point your agent at Opensteer with a single command -- no manual setup needed.
opensteer skills installThis installs first-party skills that teach your AI agent how to use the Opensteer CLI and SDK. The agent can then open browsers, capture network traffic, extract structured data, and generate scrapers autonomously.
Target specific agents:
opensteer skills install --agent codex --agent cursor --agent claude-codeQuickstart
CLI
# Open a page in a persistent workspace
opensteer open https://example.com --workspace demo
# Take a snapshot and list interactive elements
opensteer snapshot action --workspace demo
# Click an element by its annotated index
opensteer click 3 --workspace demo --persist "cta"
# Extract structured data from the page
opensteer extract '{"title":{"element":3}}' --workspace demo
# Close the workspace
opensteer close --workspace demoSDK
import { Opensteer } from "opensteer";
const opensteer = new Opensteer({ workspace: "demo", rootDir: process.cwd() });
await opensteer.open("https://example.com");
await opensteer.click({ persist: "cta" });
const data = await opensteer.extract({ persist: "page summary" });
await opensteer.close();Features
Persistent Sessions
Logins, cookies, and browser state survive across restarts. Each workspace is a full Chrome user-data directory.
Profile Cloning
Clone a real Chrome profile to start a workspace already logged in. Source browser doesn't need to close.
Network Capture
Record traffic during any action, inspect requests, and replay APIs with browser-backed fetch().
Script Analysis
Capture, beautify, deobfuscate, and sandbox page JavaScript.
Computer Use
Coordinate-based mouse and keyboard when DOM targeting isn't enough.
Stealth
Anti-detection defaults: UA spoofing, fingerprint management, automation signal removal.
Local View
Stream live screenshots from headless sessions to a browser-based viewer.
Local or Cloud
Run browsers locally or on Opensteer Cloud. Same CLI, same SDK.
How It Works
Opensteer follows a discover-then-codify workflow:
- Capture -- Open a real page, trigger actions, and record network traffic.
- Inspect -- Query captured traffic, check cookies/storage/state for auth context.
- Probe -- Test transport viability for captured requests before writing code.
- Codify -- Write plain TypeScript with
session.fetch(). The code is the durable artifact.
See the full Workflow Guide for details.
Documentation
| Resource | Description | | ------------------------------------------------------------------------------------------------- | -------------------------------------- | | Package Guide | Full CLI and SDK reference | | Workflow Guide | Discover-then-codify methodology | | Instrumentation Guide | Tracing and observability | | Skills Guide | Agent skill installation and authoring |
FAQ
Opensteer ships first-party skills for Claude Code, Codex, Cursor, and any agent compatible with the skills.sh standard.
Yes. After installing Opensteer, run npx playwright install chromium to download a compatible Chromium build. This is a one-time step.
Yes. Use profile cloning to copy your real Chrome profile into an Opensteer workspace. Your logins, cookies, and extensions carry over without closing your main browser.
Yes. Opensteer runs headless by default. Use the Local View feature to stream live screenshots from headless sessions to a browser-based viewer for debugging.
Node.js 22 or later.
Development
pnpm install
pnpm run build
pnpm run typecheck
pnpm run test