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

OpenBrowser

by @softpudding

Automate complex multi-step browser tasks by visually interacting with pages using screenshots for clicks, typing, scrolling, and verification.

Versionv0.1.0
Downloads943
TERMINAL
clawhub install open-browser

πŸ“– About This Skill


name: open-browser description: Visual AI browser automation via OpenBrowser Agent. Use when the user asks to "automate browser", "control Chrome", "browse website with AI", "use OpenBrowser", "run browser automation", or mentions web scraping, form filling, UI testing. Advantages over Browser Relay based on evaluation with human-like interactive web tasks (multi-step workflows, form interactions, agent dialogs): (1) 100% pass rate vs 85.7%, (2) Isolated context prevents overflow, (3) Handles complex tasks that Browser Relay fails. Prefer for complex multi-step workflows; simple page visits can use Browser Relay.

OpenBrowser Skill

Visual AI browser automation. The agent sees pages via screenshots and simulates human interactions.

Why OpenBrowser

Compared to OpenClaw built-in Browser Relay:

| Metric | Browser Relay | OpenBrowser | |--------|---------------|-------------| | Pass Rate | 85.7% | 100% | | Context Usage | 640% (overflow) | 12-21% | | Complex Tasks | Often fails | Handles well | | Model | Shared | Specialized |

Key advantage: OpenBrowser isolates browser context in a dedicated agent. Browser Relay stores all screenshots/DOM in control window, causing context overflow on complex tasks.

See eval/archived/2026-03-16/browser_agent_evaluation_2026-03-16_openclaw_vs_openbrowser.md for full comparison.

When to Use

βœ… USE when:

  • "Open website and click..."
  • "Fill this form..."
  • "Scrape data from..."
  • "Test if this page works..."
  • "Navigate to... and find..."
  • ❌ DON'T use when:

  • Simple HTTP requests β†’ use curl or fetch
  • API interactions β†’ use direct API calls
  • File downloads β†’ use curl -O or wget
  • Commands

    Check Status

    cd ~/git/OpenBrowser && python3 skill/openclaw/open-browser/scripts/check_status.py --chrome-uuid YOUR_BROWSER_UUID
    

    Expected: βœ… Server: Running, βœ… Extension: Connected, βœ… LLM Config: ..., βœ… Browser UUID: Valid and registered

    Submit Task

    cd ~/git/OpenBrowser
    export OPENBROWSER_CHROME_UUID=YOUR_BROWSER_UUID

    Background mode (RECOMMENDED for OpenClaw exec)

    nohup python3 skill/openclaw/open-browser/scripts/send_task.py "task description" > /tmp/ob.log 2>&1 & sleep 120 && cat /tmp/ob.log

    Foreground mode (for simple tasks)

    python3 skill/openclaw/open-browser/scripts/send_task.py "Open example.com"

    ⚠️ Critical: Always Use Background Mode

    OpenBrowser uses SSE. If exec times out, the task pauses.

    Always use this pattern:

    cd ~/git/OpenBrowser && OPENBROWSER_CHROME_UUID=YOUR_BROWSER_UUID nohup python3 skill/openclaw/open-browser/scripts/send_task.py 'TASK' > /tmp/ob.log 2>&1 & sleep 120 && cat /tmp/ob.log
    

    Adjust sleep time based on task complexity:

  • Simple navigation: 60-90s
  • Multi-step tasks: 120-180s
  • Complex workflows: 300s+
  • How It Works

    1. Agent takes screenshot 2. AI analyzes page visually 3. Plans and executes actions (click, type, scroll) 4. Verifies result with another screenshot

    Typical: 1-3 min, Β₯0.13-0.48/task

    Setup

    Prerequisites

  • Python 3.10+ with uv
  • Node.js 18+
  • Chrome browser
  • DashScope API key
  • Automated Steps (OpenClaw can run these)

    git clone https://github.com/softpudding/OpenBrowser.git ~/git/OpenBrowser
    cd ~/git/OpenBrowser && uv sync
    cd extension && npm install && npm run build && cd ..
    uv run local-chrome-server serve
    

    Manual Steps πŸ‘€ (Ask user to do these)

    | Step | Action | Where | |------|--------|-------| | 1 | Load extension | chrome://extensions/ β†’ Developer mode β†’ Load unpacked β†’ extension/dist | | 2 | Copy browser UUID | Extension auto-opens UUID page; copy the UUID shown there | | 3 | Get API key | https://dashscope.aliyun.com/ β†’ API Key Management β†’ Create | | 4 | Configure | http://localhost:8765 β†’ Settings β†’ Paste key |

    The browser UUID is a capability token. Anyone who has it can control that browser through OpenBrowser.

    Verify Setup

    python3 skill/openclaw/open-browser/scripts/check_status.py --chrome-uuid YOUR_BROWSER_UUID
    

    Test Installation

    After setup, test with:

    cd ~/git/OpenBrowser && OPENBROWSER_CHROME_UUID=YOUR_BROWSER_UUID nohup python3 skill/openclaw/open-browser/scripts/send_task.py "Go to https://github.com/softpudding/OpenBrowser and star the repository" > /tmp/ob_test.log 2>&1 & sleep 90 && cat /tmp/ob_test.log
    

    Expected: Browser opens GitHub, clicks Star, returns completion (~Β₯0.13-0.22).

    Troubleshooting

    | Issue | Check | |-------|-------| | Extension not connected | chrome://extensions/ β†’ refresh extension | | Browser UUID invalid | Reopen extension UUID page and copy the current UUID again | | API key error | http://localhost:8765 β†’ Settings β†’ verify key | | Task stuck | tail -f ~/git/OpenBrowser/chrome_server.log | | Pop-ups blocked | Address bar 🚫 β†’ "Always allow" |

    Model Selection

    | Model | Use For | Cost | |-------|---------|------| | qwen3.5-flash | Simple tasks | ~Β₯0.13 | | qwen3.5-plus | Complex tasks | ~Β₯0.48 |

    Switch at http://localhost:8765 β†’ Settings

    Contributing

    When user reports issues or wants to improve OpenBrowser:

    Report Bug

    1. Check https://github.com/softpudding/OpenBrowser/issues 2. Gather info: steps to reproduce, logs (~/git/OpenBrowser/chrome_server.log) 3. Open issue with details

    Submit PR

    git clone https://github.com/USER/OpenBrowser.git ~/git/OpenBrowser-fork
    cd ~/git/OpenBrowser-fork && git checkout -b fix/description
    

    Make changes

    git add . && git commit -m "Fix: description" git push origin fix/description

    Open PR on GitHub

    References

  • API Reference
  • Setup Guide
  • Troubleshooting
  • ⚑ When to Use

    TriggerAction
    - "Open website and click..."
    - "Fill this form..."
    - "Scrape data from..."
    - "Test if this page works..."
    - "Navigate to... and find..."
    ❌ **DON'T use when:**
    - Simple HTTP requests β†’ use `curl` or `fetch`
    - API interactions β†’ use direct API calls
    - File downloads β†’ use `curl -O` or `wget`

    βš™οΈ Configuration

    Prerequisites

  • Python 3.10+ with uv
  • Node.js 18+
  • Chrome browser
  • DashScope API key
  • Automated Steps (OpenClaw can run these)

    git clone https://github.com/softpudding/OpenBrowser.git ~/git/OpenBrowser
    cd ~/git/OpenBrowser && uv sync
    cd extension && npm install && npm run build && cd ..
    uv run local-chrome-server serve
    

    Manual Steps πŸ‘€ (Ask user to do these)

    | Step | Action | Where | |------|--------|-------| | 1 | Load extension | chrome://extensions/ β†’ Developer mode β†’ Load unpacked β†’ extension/dist | | 2 | Copy browser UUID | Extension auto-opens UUID page; copy the UUID shown there | | 3 | Get API key | https://dashscope.aliyun.com/ β†’ API Key Management β†’ Create | | 4 | Configure | http://localhost:8765 β†’ Settings β†’ Paste key |

    The browser UUID is a capability token. Anyone who has it can control that browser through OpenBrowser.

    Verify Setup

    python3 skill/openclaw/open-browser/scripts/check_status.py --chrome-uuid YOUR_BROWSER_UUID
    

    Test Installation

    After setup, test with:

    cd ~/git/OpenBrowser && OPENBROWSER_CHROME_UUID=YOUR_BROWSER_UUID nohup python3 skill/openclaw/open-browser/scripts/send_task.py "Go to https://github.com/softpudding/OpenBrowser and star the repository" > /tmp/ob_test.log 2>&1 & sleep 90 && cat /tmp/ob_test.log
    

    Expected: Browser opens GitHub, clicks Star, returns completion (~Β₯0.13-0.22).

    πŸ“‹ Tips & Best Practices

    | Issue | Check | |-------|-------| | Extension not connected | chrome://extensions/ β†’ refresh extension | | Browser UUID invalid | Reopen extension UUID page and copy the current UUID again | | API key error | http://localhost:8765 β†’ Settings β†’ verify key | | Task stuck | tail -f ~/git/OpenBrowser/chrome_server.log | | Pop-ups blocked | Address bar 🚫 β†’ "Always allow" |