Agent Runtime
Status: Connected
Parsing documentation...
Extracted api references
Generating type definitions...
opensteeropensteer
Y Combinator logoBacked by Y Combinator.

The most comprehensive browser automation framework for AI

Enterprise-grade automation at scale.

Custom plans, unlimited concurrent sessions, dedicated proxies, and advanced support for teams that need more.

+ self-service sso
+ unlimited concurrent sessions
+ custom audit logs
+ advanced captcha bypass
+ dedicated support
view pricing

Simple, transparent pricing.

Start for free, upgrade when you need to scale. Everything you need to build robust AI agents.

SDK Reference

OpenSteer Actions API Reference

Reference descriptor-aware action APIs including click, input, select, scroll, and upload for reliable AI browser automation.

Quick Answer

Actions APIs provide resilient descriptor-aware operations for click, input, select, scroll, and upload across changing page structures.

Descriptor-Aware Actions

All interaction methods resolve elements through the resolution chain:

  1. Persisted path for description (if previously stored)
  2. element counter lookup in the live DOM
  3. Explicit CSS selector
  4. Built-in LLM resolution (requires description)

When steps 2--4 resolve and description is provided, the resolved path is persisted for deterministic replay.

Mutating actions apply a best-effort post-action wait by default. Use wait: false to disable or pass ActionWaitOptions to tune per call.

All interaction methods throw OpensteerActionError on failure.

click(options: ClickOptions): Promise<ActionResult>
await opensteer.click({ element: 3 })
await opensteer.click({ description: 'login-button' })
await opensteer.click({ selector: '#submit-btn', button: 'left' })
dblclick(options: ClickOptions): Promise<ActionResult>

Double-click an element.

rightclick(options: ClickOptions): Promise<ActionResult>

Right-click an element.

hover(options: HoverOptions): Promise<ActionResult>
await opensteer.hover({ description: 'profile-menu' })
await opensteer.hover({ element: 5, force: true })
input(options: InputOptions): Promise<ActionResult>

Fill or type text into an input element. By default, clears the field first (clear: true).

await opensteer.input({ description: 'email', text: 'user@example.com' })
await opensteer.input({ element: 7, text: 'hello', clear: false, pressEnter: true })
select(options: SelectOptions): Promise<ActionResult>

Select a dropdown option by value, label, or index.

await opensteer.select({ description: 'country', value: 'US' })
await opensteer.select({ element: 12, label: 'United States' })
await opensteer.select({ element: 12, index: 0 })
scroll(options?: ScrollOptions): Promise<ActionResult>

Scroll the page or a specific element. Defaults to scrolling down by 600px on the page.

await opensteer.scroll()
await opensteer.scroll({ direction: 'down', amount: 1200 })
await opensteer.scroll({ description: 'results-list', direction: 'down' })
uploadFile(options: FileUploadOptions): Promise<ActionResult>

Set files on a file input element. Not supported in cloud mode.

await opensteer.uploadFile({ element: 4, paths: ['/path/to/file.pdf'] })

Covered Features

  • sdk:click
  • sdk:dblclick
  • sdk:hover
  • sdk:input
  • sdk:rightclick
  • sdk:scroll
  • sdk:select
  • sdk:uploadFile