with one click
opensteer
// Direct browser control via CDP. Use when the user wants to automate, inspect, scrape, test, or interact with web pages.
// Direct browser control via CDP. Use when the user wants to automate, inspect, scrape, test, or interact with web pages.
| name | opensteer |
| description | Direct browser control via CDP. Use when the user wants to automate, inspect, scrape, test, or interact with web pages. |
Opensteer is a global browser-control runtime. It exposes small CDP primitives to agents and harness packs.
opensteer -c "print(page_info())"
Python snippets run with helpers pre-imported:
opensteer -c "new_tab('https://docs.opensteer.com'); wait_for_load(); print(page_info())"
For harness code, import helpers from the installed package:
from opensteer.helpers import goto_url, js, click_at_xy, type_text, wait_for_load
Use OPENSTEER_NAME to route commands to a named browser session:
OPENSTEER_NAME=linkedin opensteer -c "print(page_info())"
Remote browser sessions can be started from a Python snippet when OPENSTEER_API_KEY is set:
opensteer -c "start_remote_daemon('linkedin', profileId='bp_...')"
OPENSTEER_NAME=linkedin opensteer -c "new_tab('https://example.com')"
Generic browser mechanics live in interaction-skills/:
Use them when a page mechanic is tricky. Put domain-specific selectors, workflows, APIs, local databases, and task tools in the harness pack.
capture_screenshot().click_at_xy(x, y).js(...) for DOM inspection, extraction, and page API discovery.cdp("Domain.method", ...) for raw CDP operations not covered by helpers.wait_for_load().list_tabs() and switch_tab(target_id) only when the user explicitly asks for a specific existing tab.Opensteer owns generic browser primitives, local attach, remote attach, cloud browser attach, and generic interaction skills.
Harness packs own domain-specific tools, selectors, workflows, storage, setup docs, and agent skills.