Reference
Configuration
Environment variables and configuration options
Environment Variables
| Variable | Default | Description |
|---|---|---|
OPENSTEER_ENGINE | playwright | Browser engine: playwright or abp |
OPENSTEER_PROVIDER | local | Provider mode: local or cloud |
OPENSTEER_MODE | - | Alias for provider mode |
OPENSTEER_MODEL | - | AI model for CUA and extraction |
OPENSTEER_API_KEY | - | Cloud API key |
OPENSTEER_BASE_URL | - | Cloud API base URL |
OPENSTEER_CLOUD_APP_BASE_URL | - | Cloud app UI base URL |
OPENSTEER_HEADLESS | false | Run browser in headless mode |
OPENSTEER_WORKSPACE | default | Default workspace name |
OPENSTEER_ROOT_DIR | process.cwd() | Root directory for .opensteer state |
OPENSTEER_DEBUG | false | Enable debug logging |
OPENSTEER_BROWSER_MODE | persistent | Browser mode |
OPENSTEER_ATTACH_ENDPOINT | - | CDP endpoint for attach mode |
OPENSTEER_CURSOR_ENABLED | true | Show cursor in viewport |
OPENSTEER_SESSION_TIMEOUT_MS | - | Session idle timeout |
OPENSTEER_SETTLE_TIMEOUT_MS | - | Page settle timeout |
OPENAI_API_KEY | - | OpenAI API key for CUA |
ANTHROPIC_API_KEY | - | Anthropic API key for CUA |
GOOGLE_API_KEY | - | Google API key for CUA |
Configuration Precedence
Resolution order (later wins):
- Built-in defaults
- Environment variables
- SDK constructor options
dotenv
The SDK loads .env and .env.local files, walking up the directory tree from the current working directory. Process environment variables (process.env) always take precedence over file-based values.
Browser Configuration
const os = new Opensteer({
workspace: "demo",
browser: "persistent", // "persistent" | "temporary" | "attach"
launch: {
headless: true,
attachEndpoint: "ws://localhost:9222", // for attach mode
},
});
Engine Selection
// Via environment
// OPENSTEER_ENGINE=abp
// Via constructor (Playwright is default)
import { Opensteer } from "opensteer";
const os = new Opensteer({ workspace: "demo" });
// ABP engine requires separate install
// npm install @opensteer/engine-abp
