CLI
Sessions & Scripting
Session management, non-interactive usage, and CI patterns.
Session Management
# Open a session
opensteer open --name my-project --url https://example.com
# List active sessions
opensteer sessions
# Check session state
opensteer status
# Close session
opensteer close
Session Resolution
Commands resolve the target session in this order:
| Priority | Source | Example |
|---|---|---|
| 1 | --session flag | opensteer click --session abc123 --element 3 |
| 2 | OPENSTEER_SESSION env | OPENSTEER_SESSION=abc123 opensteer click --element 3 |
| 3 | OPENSTEER_CLIENT_ID | Binds non-interactive processes to sessions |
| 4 | Interactive TTY | Default for terminal usage |
Non-interactive commands must provide an explicit session identifier (--session or OPENSTEER_SESSION).
Non-Interactive Usage
For CI runners, agents, and scripts:
# Set explicit session and namespace
export OPENSTEER_SESSION=my-session-id
export OPENSTEER_NAME=my-project
# Run commands
opensteer open --url https://example.com
opensteer snapshot action
opensteer click --description "submit-button"
opensteer snapshot extraction
opensteer extract --description "result" --schema '{"status": "string"}'
opensteer close
Guidelines:
- Set
OPENSTEER_SESSIONexplicitly for deterministic routing - Use
opensteer statusbefore long command sequences to verify session health - Prefer
extractwith stable descriptions for replayable data collection - Keep
--nameconsistent between exploration and scripted runs
CI Patterns
#!/bin/bash
set -euo pipefail
export OPENSTEER_SESSION="ci-${CI_JOB_ID}"
export OPENSTEER_NAME="my-scraper"
opensteer open --url "$TARGET_URL"
opensteer snapshot action
opensteer click --description "accept-cookies"
opensteer snapshot extraction
opensteer extract --description "page-data" --schema "$SCHEMA"
opensteer close
Separation of concerns:
--session/OPENSTEER_SESSION-- runtime routing (which browser)--name/OPENSTEER_NAME-- selector namespace (which cache)
