원클릭으로
opensteer
Direct browser control via CDP. Use when the user wants to automate, inspect, scrape, test, or interact with web pages.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Direct browser control via CDP. Use when the user wants to automate, inspect, scrape, test, or interact with web pages.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| 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')"
A browser profile is a saved, logged-in browser identity (cookies, auth state) a cloud browser can launch with. Profile access is grant-based: the server tracks which profiles this agent may use, and there is no per-agent default profile.
list_cloud_profiles() lists visible profiles; each entry carries a
granted flag saying whether this agent may use it.start_remote_daemon(name) without a profile lets the server resolve it:
exactly one granted profile auto-attaches, none launches a fresh signed-out
session, and several granted profiles is rejected with an error telling you
to pass profileName or profileId.start_remote_daemon('linkedin', profileName='LinkedIn work') or
start_remote_daemon('linkedin', profileId='bp_...'). Durable scripts
should pin profileId — it survives profile renames.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.