Back to Use Cases
🔌PluginBeginner

Donely Browser Plugin

Give your OpenClaw AI agent cloud-powered browser automation with persistent profiles, live view streaming, session recordings, file transfers, and full Chrome DevTools Protocol access via Hyperbrowser.

Connected Apps & Services

Chrome

Chrome

GitHub

GitHub

Slack

Slack

Overview

Browser automation is one of the most powerful capabilities you can give an AI agent. The Donely Browser Plugin connects your OpenClaw instance to a cloud-hosted Chromium browser through the Chrome DevTools Protocol (CDP), enabling your agent to navigate the web, fill forms, scrape data, capture screenshots, and interact with any website — all without running a browser locally inside the container.

Unlike traditional browser automation frameworks such as Puppeteer or Selenium that require scripted selectors and coded workflows, OpenClaw browser automation is semantic. Your agent reads pages the way a human does — understanding context, recognizing buttons by meaning rather than CSS class names, and adapting when layouts change. Combined with Donely's cloud browser infrastructure, this creates an AI agent web scraping setup that is both powerful and resilient.

The plugin works through a relay architecture: your OpenClaw agent connects to the Donely Browser Service, which provisions an isolated Hyperbrowser cloud browser session with a persistent profile. The agent then communicates directly with the browser via CDP WebSocket, giving it full control over navigation, interaction, and data extraction.

How It Works

The Donely Browser Plugin operates through a multi-layer architecture designed for security, performance, and persistence:

OpenClaw Agent → GET /cdp/json/version → Donely Browser Service (browsers.donely.cloud)
                                              ├─ Verify gateway token (D1 database)
                                              ├─ Budget check (1 cent per session)
                                              ├─ Lookup or create Hyperbrowser profile
                                              └─ Create browser session → returns { wsEndpoint }
OpenClaw Agent ←── { webSocketDebuggerUrl } ←──┘
OpenClaw Agent ═══ Direct CDP WebSocket ═══► Hyperbrowser Cloud Browser
Step-by-step flow:
  • Discovery Request — When the agent invokes the browser tool, OpenClaw sends a CDP discovery request to browsers.donely.cloud with the tenant's gateway token.
  • Authentication & Budget — The Donely Browser Service verifies the token against the D1 database and checks that the tenant's API key has sufficient budget (each session costs 1 cent).
  • Profile Resolution — The service looks up or creates a persistent Hyperbrowser profile for the tenant. This profile retains cookies, localStorage, sessionStorage, and network cache across sessions.
  • Session Creation — A new Hyperbrowser cloud browser session is provisioned with the tenant's profile, including optional residential proxy routing based on the tenant's country.
  • CDP Handoff — The service returns a webSocketDebuggerUrl pointing directly to Hyperbrowser. From this point, all browser communication flows directly between the OpenClaw container and the cloud browser — the relay service is no longer in the data path.
  • Agent Control — OpenClaw's built-in browser tool takes over, using Playwright over CDP to navigate, click, type, screenshot, and extract data.

This architecture means the Donely Browser Service handles only authentication and session setup. The actual browser automation traffic flows directly to the cloud browser, minimizing latency and avoiding bandwidth bottlenecks.

Features

Persistent Browser Profiles

Each tenant gets a dedicated Hyperbrowser profile that persists cookies, login sessions, localStorage, and cache across browser sessions. Log into a service once, and your agent stays authenticated for future tasks.

Live View Streaming

Watch your agent browse in real-time through a shareable live view URL. The agent can generate this link and share it with the user before performing browser actions, providing full transparency.

Session Recordings

Every browser session is automatically recorded. After completing a task, the agent can retrieve web recording and video recording URLs to share with the user for review or audit.

File Downloads

Files downloaded during browser sessions are packaged into a downloadable zip. The agent can retrieve the download URL and share it with the user.

File Uploads

Upload files from the OpenClaw container to the cloud browser session. Files appear at /tmp/uploads/ in the browser environment, ready for filling file input fields on web pages.

Country-Based Proxy Routing

Sessions can be routed through residential proxies in the tenant's country, reducing the chance of geo-blocks or region-specific CAPTCHAs.

Budget-Controlled Sessions

Each browser session costs 1 cent, deducted from the tenant's inference API budget. This prevents runaway costs while keeping browser automation accessible.

Step-by-Step Setup

The Donely Browser Plugin is enabled through the platform's config patch system. For most tenants, it is enabled automatically during provisioning. To enable it manually:

1. Admin Panel Method

  • Navigate to the Admin Panel at donely.ai/admin
  • Find the tenant in the tenant list
  • Open the Config Patches section
  • Apply the "Enable Cloud Browser Plugin" patch
  • The patch will:
- Write the extension source files to /app/extensions/donely-browser/ inside the container - Configure the plugin with the tenant's gateway token - Set up a remote CDP browser profile pointing to browsers.donely.cloud - Add browser tool names to the agent's allowed tools list - Restart the container to load the new plugin

2. Configuration Patch Details

The patch modifies the OpenClaw configuration (openclaw.json) with these settings:

JSON
{
  "plugins": {
    "entries": {
      "donely-browser": {
        "enabled": true,
        "config": {
          "browserServiceUrl": "https://browsers.donely.cloud",
          "gatewayToken": "<TENANT_GATEWAY_TOKEN>"
        }
      }
    }
  },
  "browser": {
    "enabled": true,
    "defaultProfile": "remote",
    "profiles": {
      "remote": {
        "cdpUrl": "https://browsers.donely.cloud/cdp/json/version?token=<TOKEN>"
      }
    }
  },
  "tools": {
    "alsoAllow": [
      "get_browser_live_view",
      "get_browser_recordings",
      "get_browser_downloads",
      "upload_to_browser",
      "list_browser_sessions"
    ]
  }
}

3. Verify the Setup

After applying the patch, verify the plugin is working:

  • Open the tenant's chat interface on the Donely dashboard
  • Ask the agent: "Open a browser and navigate to example.com"
  • The agent should use the browser tool and describe what it sees
  • Ask for a live view link to confirm the cloud browser is active

Agent Prompt

To get the best results from browser automation, include browser-specific instructions in your agent's BOOTSTRAP.md:

Markdown
# Browser Automation Guidelines

You have access to a cloud browser through the Donely Browser Plugin. Use it for web tasks.

Before Browsing

  • Always call get_browser_live_view first and share the live view link with the user
  • Explain what you plan to do before navigating

During Browsing

  • Take screenshots after important actions to verify results
  • Use AI snapshots to understand page structure before interacting
  • Wait for pages to fully load (networkidle) before extracting data
  • Handle cookie consent banners and popups proactively

After Browsing

  • Call get_browser_recordings to share session recordings
  • If you downloaded files, use get_browser_downloads to share the download link
  • Summarize what you found or accomplished

Data Extraction

  • For tables, extract data into structured formats (CSV, JSON)
  • For multi-page data, navigate through pagination systematically
  • Verify extracted data against what's visible on the page

Security

  • Never enter credentials unless the user explicitly provides them and asks you to
  • Prefer the user logging in manually through the live view
  • Be cautious with financial transactions — always confirm with the user first

Available Tools

The Donely Browser Plugin registers five tools that complement OpenClaw's built-in browser tool:

get_browser_live_view

Returns a shareable URL where the user can watch the agent browse in real-time. The live view renders the cloud browser in an embedded iframe. Call this before starting browser tasks so the user can follow along. Sessions are automatically extended to 10 minutes when live view is active. Parameters: None

get_browser_recordings

Retrieves web recording and video recording URLs from a browser session. Use after completing browser tasks to share a replay with the user. Supports both latest-session and specific-session retrieval. Parameters:
  • sessionId (optional) — Specific session ID. Defaults to the most recent session.

get_browser_downloads

Retrieves a download URL containing a zip of all files downloaded during a browser session. Useful after tasks that involve saving files from websites. Parameters:
  • sessionId (optional) — Specific session ID. Defaults to the most recent session.

upload_to_browser

Uploads a local file from the OpenClaw container to the active cloud browser session. The file appears at /tmp/uploads/ in the browser, ready for file input interactions. Parameters:
  • filePath (required) — Absolute path to the file inside the container (e.g., /data/output/resume.pdf).

list_browser_sessions

Lists recent cloud browser sessions with their IDs, statuses, and timestamps. Useful for reviewing session history or retrieving recordings from past sessions. Parameters:
  • limit (optional) — Maximum number of sessions to return. Default: 10.

Use Cases

Web Scraping and Data Extraction

Extract product listings, pricing data, news articles, or any structured content from websites. The agent reads pages semantically — ask it to "find all product prices on this page" rather than specifying CSS selectors. It handles dynamic content, infinite scroll, and pagination automatically.

Form Filling and Submissions

Automate repetitive form submissions: job applications, registration forms, survey responses, or data entry. Upload documents (resumes, invoices) from the container and attach them to form file inputs.

Website Testing and QA

Test web applications by navigating user flows, filling forms, clicking through workflows, and verifying expected outcomes. Capture screenshots at each step and generate session recordings for bug reports.

Screenshot and Visual Capture

Capture full-page screenshots or element-specific screenshots for documentation, monitoring, or reporting. Export pages as PDFs for archival.

Price and Content Monitoring

Set up recurring tasks that visit competitor websites, extract pricing data, and track changes over time. The agent adapts to layout changes without breaking.

Social Media and Content Management

Navigate social platforms, post content, check analytics, or gather engagement metrics. Persistent profiles mean the agent stays logged in across sessions.

Configuration

OpenClaw Configuration (openclaw.json)

The browser plugin requires these configuration sections:

JSON
{
  "browser": {
    "enabled": true,
    "defaultProfile": "remote",
    "profiles": {
      "remote": {
        "cdpUrl": "https://browsers.donely.cloud/cdp/json/version?token=<GATEWAY_TOKEN>"
      }
    },
    "ssrfPolicy": "dangerouslyAllowPrivateNetwork"
  },
  "plugins": {
    "entries": {
      "donely-browser": {
        "enabled": true,
        "config": {
          "browserServiceUrl": "https://browsers.donely.cloud",
          "gatewayToken": "<GATEWAY_TOKEN>"
        }
      }
    }
  }
}

Environment Variables

The following are configured on the Donely Browser Service (not on individual tenants):

VariableDescription
HYPERBROWSER_API_KEYAPI key for Hyperbrowser cloud browser provider
ADMIN_SECRETBearer token for admin API endpoints
HEALTH_TOKENToken for deep health check endpoint

Plugin Manifest (openclaw.plugin.json)

JSON
{
  "id": "donely-browser",
  "name": "Donely Cloud Browser",
  "description": "Cloud browser tools — live view, recordings, downloads, uploads via Hyperbrowser.",
  "configSchema": {
    "type": "object",
    "properties": {
      "browserServiceUrl": { "type": "string" },
      "gatewayToken": { "type": "string" }
    }
  }
}

Real-World Examples

Example 1: Competitive Price Monitoring

Scenario: An e-commerce business wants to track competitor pricing daily. Agent conversation:
User: Check the prices for "wireless earbuds" on Amazon and Best Buy, 
      then create a comparison spreadsheet.

Agent: I'll browse both sites and extract pricing data. Here's your live view link so you can watch: [live view URL]

[Navigates to Amazon, searches "wireless earbuds", extracts top 10 results with names, prices, ratings] [Navigates to Best Buy, repeats the process] [Creates CSV file with columns: Product, Amazon Price, Best Buy Price, Difference]

Agent: Done! I found 10 matching products. Here's the comparison: - AirPods Pro: $199 (Amazon) vs $199 (Best Buy) - Sony WF-1000XM5: $248 (Amazon) vs $279 (Best Buy) — $31 cheaper on Amazon ... The CSV is saved at /data/output/price-comparison.csv Session recording: [recording URL]

Example 2: Automated Job Application

Scenario: A user wants to apply to multiple job listings with their resume. Agent conversation:
User: I uploaded my resume to /data/uploads/resume.pdf. Apply to the 
      3 most recent "Software Engineer" positions on LinkedIn.

Agent: I'll open LinkedIn and search for positions. Here's the live view: [live view URL]

Note: I'll need you to log in via the live view first, since I shouldn't handle your credentials directly.

User: Done, I'm logged in.

Agent: [Searches "Software Engineer", filters by "Past 24 hours"] [For each of 3 listings: clicks Apply, uploads resume via upload_to_browser, fills application fields, submits]

Agent: Applied to 3 positions: 1. Senior Software Engineer at Acme Corp — Applied 2. Software Engineer II at TechStart — Applied 3. Full Stack Engineer at DataFlow — Applied Session recording: [recording URL] Downloaded confirmation pages: [download URL]

Example 3: Website QA Testing

Scenario: A development team wants to test their checkout flow after a deployment. Agent conversation:
User: Test the checkout flow on staging.mystore.com. Add an item to cart, 
      go through checkout with test payment, and report any issues.

Agent: Starting QA test. Live view: [live view URL]

[Navigates to staging.mystore.com] [Browses product catalog, adds "Test Widget" to cart] [Proceeds to checkout, fills shipping form with test data] [Enters test card number 4242424242424242] [Submits order]

Issue found: The "Place Order" button shows a loading spinner but doesn't redirect to the confirmation page. After 30 seconds, it shows "Network Error". The order was NOT completed.

Screenshots captured at each step. Session recording: [recording URL] Summary: Checkout flow fails at payment submission. Likely a backend API timeout or misconfigured payment gateway on staging.

Security Considerations

Session Isolation

Each tenant gets a completely isolated browser profile on Hyperbrowser. No cookies, storage, or browsing data is shared between tenants. Profiles are soft-deleted and cleaned up through the admin API when no longer needed.

Token-Based Authentication

All browser service endpoints require the tenant's gateway token. Tokens are verified against the D1 database on every request. There are no shared credentials or session tokens.

Budget Controls

Each browser session deducts 1 cent from the tenant's API key budget. When the budget is exhausted, new sessions are refused with a 402 error. This prevents unbounded cloud browser costs.

No Credential Storage

The Donely Browser Plugin does not store or handle user credentials. The recommended pattern is for users to log in manually through the live view, with the persistent profile maintaining the session for future agent use.

Sandboxed Execution

Cloud browser sessions run in Hyperbrowser's sandboxed infrastructure, completely isolated from the OpenClaw container and other tenants. The agent cannot access the host machine or other containers through the browser.

Approval Gates

OpenClaw's built-in approval system can require user confirmation before the agent performs sensitive browser actions. Configure tools.requireApproval in openclaw.json to gate browser interactions.

Best Practices and Troubleshooting

Best Practices

  • Always share the live view link before starting browser tasks. Transparency builds trust and lets the user intervene if needed.
  • Use persistent profiles wisely — log into services manually through the live view rather than giving the agent your credentials.
  • Set reasonable budgets on API keys to control browser session costs. At 1 cent per session, 100 sessions cost only $1.
  • Include browser instructions in BOOTSTRAP.md to guide the agent's browsing behavior consistently.
  • Use recordings for audit trails — every session is recorded, providing full transparency for compliance or debugging.
  • Prefer AI snapshots over screenshots for data extraction — they are faster and more structured.
  • Wait for networkidle before extracting data from dynamic pages to ensure all content has loaded.

Troubleshooting

IssueCauseSolution
"Browser not available" errorPlugin not enabled or container not restartedApply the "Enable Cloud Browser Plugin" config patch from the admin panel
401 on browser requestsGateway token mismatchRe-apply the config patch to refresh the token
402 budget exceededAPI key budget depletedTop up the tenant's API key budget in the admin panel
Browser session times out quicklyDefault 6-minute timeoutUse get_browser_live_view to extend to 10 minutes, or break tasks into smaller sessions
Agent cannot see page contentPage uses anti-bot detectionTry with residential proxy (set tenant country in admin)
File upload failsNo active browser sessionEnsure a browser session is active before uploading files
Slow page loadsNo proxy configured, remote regionConfigure the tenant's country for proxy routing closer to the target site
Plugin tools not appearingTools not in alsoAllow listRe-apply the config patch to update the allowed tools list

🔧 Setup Instructions

Setup

  • The Donely Browser plugin is pre-installed on all Donely instances (Docker image v1.0.0+)
  • Enable it in your agent's configuration:
JSON
{
  "plugins": {
    "donely-browser": {
      "enabled": true
    }
  }
}
  • Set the BROWSER_SERVICE_URL environment variable to your browser relay endpoint

Tools Available

  • live_view — Open a live view of the browser
  • recordings — List and replay session recordings
  • downloads — Manage downloaded files
  • uploads — Upload files to the browser
  • sessions — Manage browser sessions

Configuration Patch

{
  "plugins": {
    "donely-browser": {
      "enabled": true
    }
  }
}