Skip to main content

Global browser-control runtime and agent skills for Opensteer.

Project description

Opensteer

Opensteer helps AI agents control browsers and use local code as tools. It gives agents a small Python command surface for local Chrome or Edge, Opensteer Cloud browsers, and project-specific automation.

Opensteer handles the browser plumbing: CDP, local and cloud attach, named sessions, screenshots, JavaScript, clicks, typing, scrolling, tabs, and reusable interaction skills. The agent's working directory supplies the specialized behavior through Markdown instructions, selectors, data, and custom functions.

Install

curl -fsSL https://opensteer.com/install.sh | sh

What Opensteer Does

Opensteer lets an agent drive a browser through short Python snippets:

opensteer -c "print(page_info())"

Python snippets run with Opensteer's browser helpers available, so an agent can navigate, inspect, click, type, scroll, capture screenshots, evaluate JavaScript, and call raw CDP methods without building its own browser bridge.

opensteer -c "new_tab('https://example.com'); wait_for_load(); print(page_info())"

Reusable code can import the helpers directly:

from opensteer.helpers import goto_url, js, click_at_xy, type_text, wait_for_load

Named browser sessions are routed with OPENSTEER_NAME, which lets different agents or workflows keep separate browser state:

OPENSTEER_NAME=linkedin opensteer -c "new_tab('https://linkedin.com')"

Opensteer can also attach to a cloud browser when OPENSTEER_API_KEY is configured:

opensteer -c "start_remote_daemon('research', profileId='bp_...')"
OPENSTEER_NAME=research opensteer -c "new_tab('https://example.com')"

Specialized Harnesses

A specialized harness is a project directory that makes an agent useful for a specific workflow. It can include Markdown instructions, selectors, data, API clients, and Python functions for repeated actions.

For example:

support-harness/
  AGENTS.md
  tools.py
  selectors.py
  data/

AGENTS.md tells the agent how the workflow works. tools.py exposes actions the agent can call:

# tools.py
from opensteer.helpers import goto_url, js, type_text, wait_for_load


def open_customer(customer_id):
    goto_url(f"https://support.example.com/customers/{customer_id}")
    wait_for_load()
    return js("document.title")

When the agent runs from that directory, local imports work like normal Python imports:

cd support-harness
opensteer -c "from tools import open_customer; print(open_customer('cus_123'))"

That is the core pattern: Opensteer provides browser control, and the current directory provides the domain-specific instructions and tools.

If your tools live in a subdirectory, add it to the import path:

support-harness/
  AGENTS.md
  actions/
    helpers.py
cd support-harness
opensteer -c "import sys; sys.path.insert(0, 'actions'); from helpers import open_customer; print(open_customer('cus_123'))"

What Belongs Where

Opensteer owns the browser layer: the daemon, CDP transport, helper functions, local and cloud attach, named sessions, profile helpers, and generic interaction skills.

Harnesses own the workflow layer: selectors, local functions, data files, API clients, and Markdown instructions for a specific site, product, or business process.

This keeps Opensteer reusable while letting each workspace become specialized. A sales harness, QA harness, and data-entry harness can all expose different tools while sharing the same browser primitives.

Verify

opensteer --doctor
opensteer -c "print(page_info())"

If local browser attach needs setup:

opensteer --setup

Opensteer will guide Chrome or Edge through enabling remote debugging for the current profile.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opensteer-0.10.1.tar.gz (32.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

opensteer-0.10.1-py3-none-any.whl (39.3 kB view details)

Uploaded Python 3

File details

Details for the file opensteer-0.10.1.tar.gz.

File metadata

  • Download URL: opensteer-0.10.1.tar.gz
  • Upload date:
  • Size: 32.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opensteer-0.10.1.tar.gz
Algorithm Hash digest
SHA256 0f1f58c550dd2bf730f9aed1783dcb4d12f3b74e9b3e126002a972f6781e2620
MD5 9515e48a914a58c5bc37c6b3e1d7b025
BLAKE2b-256 27876e80371e5307db5085e3a9dab797442ba58d286970fe3d37cd09adcbce34

See more details on using hashes here.

Provenance

The following attestation bundles were made for opensteer-0.10.1.tar.gz:

Publisher: publish-python.yml on steerlabs/opensteer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opensteer-0.10.1-py3-none-any.whl.

File metadata

  • Download URL: opensteer-0.10.1-py3-none-any.whl
  • Upload date:
  • Size: 39.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opensteer-0.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9658ac49c9974428c4b663fa32e8500fbfe01057f832d15dea3d8cd97cc81f91
MD5 f7a53b86c19ebfc26e8b3b7d795873c1
BLAKE2b-256 e1849452b27877c8a318528cc21f6bdc064860b9228ef66accf77b22039ddf7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for opensteer-0.10.1-py3-none-any.whl:

Publisher: publish-python.yml on steerlabs/opensteer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page