🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Steel Browser

by @eyhn

Control cloud browser sessions via Steel.dev for web automation and computer-use agents. Use when you need to browse the web, fill forms, click elements, tak...

Versionv1.0.0
Downloads989
TERMINAL
clawhub install steel-browser

πŸ“– About This Skill


name: steel-browser description: Control cloud browser sessions via Steel.dev for web automation and computer-use agents. Use when you need to browse the web, fill forms, click elements, take screenshots, scrape content, or build browser automation loops. Uses Playwright selectors (CSS/text/aria) instead of pixel coordinates β€” more reliable than e2b-desktop for pure web tasks. Supports residential proxies and CAPTCHA solving.

Steel Browser Skill

Cloud browser-use via Steel.dev + Playwright Python SDK. Ideal for web automation, scraping, form filling, and AI agent browser loops.

Prerequisites

pip install steel-sdk playwright
export STEEL_API_KEY=your_key_here

Get your API key at https://app.steel.dev β†’ Settings β†’ API Keys (free: 100 browser hours).

Steel API key should be set in OpenClaw config or environment:

openclaw config set env.STEEL_API_KEY "your_key"

State Management

  • start_session.sh saves session ID to ~/.steel_state
  • All scripts auto-load it from there
  • Override anytime with export STEEL_SESSION_ID=
  • Sessions persist until release_session.sh or timeout
  • Scripts

    | Script | Usage | Description | |---|---|---| | start_session.sh | [--proxy] [--captcha] [--timeout MS] | Create session; prints SESSION_ID + VIEWER_URL | | release_session.sh | [SESSION_ID] | Release session | | list_sessions.sh | _(none)_ | List active sessions | | navigate.sh | URL [--wait-until networkidle] | Go to URL | | screenshot.sh | [OUTPUT.png] [--full-page] | Take screenshot | | click.sh | SELECTOR | Click by CSS/text/aria selector | | click_coords.sh | X Y [--right] [--double] | Click at pixel coords (fallback) | | type.sh | SELECTOR "text" | Fill input field | | press_key.sh | KEY | Press key (e.g. Enter, Control+a) | | scroll.sh | AMOUNT\|--to-bottom\|--to-top\|SELECTOR | Scroll page | | hover.sh | SELECTOR | Hover over element | | select.sh | SELECTOR VALUE | Select dropdown option | | get_content.sh | [--html] [SELECTOR] | Extract page text or HTML | | eval_js.sh | "js expression" | Execute JavaScript, print result | | wait_for.sh | SELECTOR [TIMEOUT_MS] | Wait for element to appear | | get_url.sh | _(none)_ | Print current URL and page title |

    Selector Examples

    Steel uses Playwright selectors β€” much more powerful than pixel coords:

    # By CSS
    click.sh "#submit-button"
    click.sh ".nav-link:first-child"

    By text content

    click.sh "text=Sign in" click.sh "button:has-text('Continue')"

    By aria label

    click.sh "[aria-label='Search']" click.sh "[placeholder='Email address']"

    XPath

    click.sh "xpath=//button[@type='submit']"

    Browser-Use Agent Loop Pattern

    SCRIPTS="skills/steel-browser/scripts"

    1. Start session (add --proxy --captcha for tough sites)

    source <($SCRIPTS/start_session.sh) echo "Session: $SESSION_ID" echo "Watch at: $VIEWER_URL"

    2. Navigate

    $SCRIPTS/navigate.sh "https://example.com"

    3. Agent loop

    while true; do $SCRIPTS/screenshot.sh /tmp/screen.png # Get page text for LLM context CONTENT=$($SCRIPTS/get_content.sh) # LLM decides action... ACTION=$(echo "$CONTENT" | llm_decide /tmp/screen.png) case "$ACTION_TYPE" in click) $SCRIPTS/click.sh "$SELECTOR" ;; type) $SCRIPTS/type.sh "$SELECTOR" "$TEXT" ;; navigate) $SCRIPTS/navigate.sh "$URL" ;; done) break ;; esac done

    4. Release

    $SCRIPTS/release_session.sh

    vs E2B Desktop

    | Feature | Steel Browser | E2B Desktop | |---|---|---| | Selectors | Playwright CSS/text/aria βœ… | Pixel coords only | | Proxy support | βœ… Residential proxies | ❌ | | CAPTCHA solving | βœ… Built-in | ❌ | | Non-browser tasks | ❌ | βœ… Desktop apps, terminal | | Session viewer | βœ… Live URL | βœ… VNC stream |

    Use Steel for web automation. Use E2B Desktop for desktop apps / full OS control.

    βš™οΈ Configuration

    pip install steel-sdk playwright
    export STEEL_API_KEY=your_key_here
    

    Get your API key at https://app.steel.dev β†’ Settings β†’ API Keys (free: 100 browser hours).

    Steel API key should be set in OpenClaw config or environment:

    openclaw config set env.STEEL_API_KEY "your_key"