Browserless Browse Skill

SkillWeb & browsing

Capture screenshots, scrape web content, and generate PDFs using the headless Chrome instance at {{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}.

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Browserless Browse Skill skill

What this skill tells your AI

The instructions your AI receives, as published by bidewio/better-openclaw in skills/browserless-browse/SKILL.md and read by ahel’s review.

Headless Chrome (Browserless) is available at http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}} within the Docker network.

Taking a Screenshot

Capture a full-page or viewport screenshot of any URL:

# Viewport screenshot
curl -X POST "http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/screenshot" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "options": {
      "type": "png",
      "fullPage": false
    }
  }' \
  -o /data/output/screenshot.png

# Full-page screenshot
curl -X POST "http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/screenshot" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "options": {
      "type": "png",
      "fullPage": true
    }
  }' \
  -o /data/output/full_page.png

Generating a PDF

Render a web page to PDF:

curl -X POST "http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/pdf" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "options": {
      "format": "A4",
      "printBackground": true,
      "margin": { "top": "1cm", "bottom": "1cm", "left": "1cm", "right": "1cm" }
    }
  }' \
  -o /data/output/page.pdf

Scraping Page Content

Extract text content or HTML from a page:

# Get page content via the /content endpoint
curl -X POST "http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/content" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com"
  }'

Running Custom JavaScript

Execute arbitrary JavaScript on a loaded page and retrieve the result:

curl -X POST "http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/function" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "module.exports = async ({ page }) => { await page.goto(\"https://example.com\"); const title = await page.title(); const links = await page.$$eval(\"a\", els => els.map(e => ({ text: e.textContent, href: e.href }))); return { title, links }; }"
  }'

Waiting for Dynamic Content

Handle SPAs and dynamic pages by waiting for selectors:

curl -X POST "http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/screenshot" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/dashboard",
    "waitForSelector": { "selector": "#main-content", "timeout": 10000 },
    "options": { "type": "png", "fullPage": true }
  }' \
  -o /data/output/dashboard.png

Setting Viewport and User Agent

curl -X POST "http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/screenshot" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "viewport": { "width": 1920, "height": 1080 },
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) OpenClaw/1.0",
    "options": { "type": "png" }
  }' \
  -o /data/output/desktop_view.png

Output Patterns

  • /data/output/screenshots/ — captured screenshots
  • /data/output/pdfs/ — generated PDF documents
  • /data/output/scrapes/ — scraped content (HTML/JSON)

Tips for AI Agents

  • Use waitForSelector or waitForTimeout when scraping SPAs to ensure dynamic content has loaded.
  • Prefer /content over /function for simple HTML extraction; use /function only when you need custom JS logic.
  • Set realistic viewports (1920x1080 for desktop, 375x812 for mobile) to get accurate visual captures.
  • For authenticated pages, pass cookies in the cookies array or use the /function endpoint with login steps.
  • Use gotoOptions: { waitUntil: "networkidle0" } for pages with heavy async loading.
  • Check Browserless health at http://{{BROWSERLESS_HOST}}:{{BROWSERLESS_PORT}}/pressure to monitor concurrency limits.
  • Set blockAds: true in requests to speed up page loading for scraping tasks.

Signals

GitHub stars
58
Forks
6
Last commit
Aug 2026
Advanced
Item type
skill
Key
browserless-browse
Source
github.com/bidewio/better-openclaw