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.2.tar.gz (33.2 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.2-py3-none-any.whl (40.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: opensteer-0.10.2.tar.gz
  • Upload date:
  • Size: 33.2 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.2.tar.gz
Algorithm Hash digest
SHA256 14406933e03bf15868e925d2d7b2952c8d5b127b849584b80199f75d689402c3
MD5 bbfa66b98e13c57e4139a8617afe873c
BLAKE2b-256 9aaaf213733c742b1053b3aa6ff770f4a5e91cb0765f771dd6ea5839fff22967

See more details on using hashes here.

Provenance

The following attestation bundles were made for opensteer-0.10.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: opensteer-0.10.2-py3-none-any.whl
  • Upload date:
  • Size: 40.1 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4b0ea99f738ba480fa0e3da8a769d770d4a6ebc889d828b0492bcd95924858e2
MD5 3ec8172944448788548f8e28dc151d88
BLAKE2b-256 780acd8b6dd60a2b716faaa2ab70a9f9acd7bf44eb79802c780f38fea7c54453

See more details on using hashes here.

Provenance

The following attestation bundles were made for opensteer-0.10.2-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