skills$openclaw/browser-ladder
ktpriyatham6.4k

by ktpriyatham

browser-ladder – OpenClaw Skill

browser-ladder is an OpenClaw Skills integration for coding workflows. Climb the browser ladder — start free, escalate only when needed. L1 (fetch) → L2 (local Playwright) → L3 (BrowserCat) → L4 (Browserless.io for CAPTCHA/bot bypass).

6.4k stars6.8k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

namebrowser-ladder
descriptionClimb the browser ladder — start free, escalate only when needed. L1 (fetch) → L2 (local Playwright) → L3 (BrowserCat) → L4 (Browserless.io for CAPTCHA/bot bypass). OpenClaw Skills integration.
ownerktpriyatham
repositoryktpriyatham/browser-ladder
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @ktpriyatham/browser-ladder
last updatedFeb 7, 2026

Maintainer

ktpriyatham

ktpriyatham

Maintains browser-ladder in the OpenClaw Skills directory.

View GitHub profile
File Explorer
5 files
.
scripts
browse.sh
4.3 KB
setup.sh
1.8 KB
_meta.json
285 B
SKILL.md
4.7 KB
SKILL.md

name: browser-ladder version: 1.0.0 description: Climb the browser ladder — start free, escalate only when needed. L1 (fetch) → L2 (local Playwright) → L3 (BrowserCat) → L4 (Browserless.io for CAPTCHA/bot bypass). metadata: clawdbot: emoji: "🪜" requires: bins: - node - docker env: - name: BROWSERCAT_API_KEY description: BrowserCat API key (free tier) - get at https://browsercat.com required: false - name: BROWSERLESS_TOKEN description: Browserless.io token ($10/mo) - get at https://browserless.io required: false

Browser Ladder 🪜

Climb from free to paid only when you need to.

Quick Setup

Run the setup script after installation:

./skills/browser-ladder/scripts/setup.sh

Or manually add to your .env:

# Optional - only needed for Rungs 3-4
BROWSERCAT_API_KEY=your-key    # Free: https://browsercat.com
BROWSERLESS_TOKEN=your-token   # Paid: https://browserless.io

The Ladder

┌─────────────────────────────────────────────┐
│  🪜 Rung 4: Browserless.io (Cloud Paid)     │
│  • CAPTCHA solving, bot detection bypass    │
│  • Cost: $10+/mo                            │
│  • Requires: BROWSERLESS_TOKEN              │
├─────────────────────────────────────────────┤
│  🪜 Rung 3: BrowserCat (Cloud Free)         │
│  • When local Docker fails                  │
│  • Cost: FREE (limited)                     │
│  • Requires: BROWSERCAT_API_KEY             │
├─────────────────────────────────────────────┤
│  🪜 Rung 2: Playwright Docker (Local)       │
│  • JavaScript rendering, screenshots        │
│  • Cost: FREE (CPU only)                    │
│  • Requires: Docker installed               │
├─────────────────────────────────────────────┤
│  🪜 Rung 1: web_fetch (No browser)          │
│  • Static pages, APIs, simple HTML          │
│  • Cost: FREE                               │
│  • Requires: Nothing                        │
└─────────────────────────────────────────────┘

Start at the bottom. Climb only when needed.

When to Climb

SituationRungWhy
Static HTML, APIs1No JS needed
React/Vue/SPA apps2JS rendering
Docker unavailable3Cloud fallback
CAPTCHA/Cloudflare4Bot bypass needed
OAuth/MFA flows4Complex auth

Decision Flow

Need to access a URL
         │
         ▼
    Static content? ──YES──▶ Rung 1 (web_fetch)
         │ NO
         ▼
    JS rendering only? ──YES──▶ Rung 2 (Playwright Docker)
         │ NO                        │
         │                     Success? ──NO──▶ Rung 3
         ▼                           │ YES
    CAPTCHA/bot detection? ────────────────────▶ DONE
         │ YES
         ▼
    Rung 4 (Browserless.io) ──▶ DONE

Usage Examples

Rung 1: Static content

// Built into Clawdbot
const content = await web_fetch("https://example.com");

Rung 2: JS-rendered page

docker run --rm -v /tmp:/output mcr.microsoft.com/playwright:v1.58.0-jammy \
  npx playwright screenshot https://spa-app.com /output/shot.png

Rung 3: Cloud browser (BrowserCat)

const { chromium } = require('playwright');
const browser = await chromium.connect('wss://api.browsercat.com/connect', {
  headers: { 'Api-Key': process.env.BROWSERCAT_API_KEY }
});

Rung 4: CAPTCHA bypass (Browserless)

const { chromium } = require('playwright');
const browser = await chromium.connectOverCDP(
  `wss://production-sfo.browserless.io?token=${process.env.BROWSERLESS_TOKEN}`
);
// CAPTCHA handled automatically

Cost Optimization

  1. Start low — Always try Rung 1 first
  2. Cache results — Don't re-fetch unnecessarily
  3. Batch requests — One browser session for multiple pages
  4. Check success — Only climb if lower rung fails

Get Your Keys

ServiceCostSign Up
BrowserCatFree tierhttps://browsercat.com
Browserless.io$10+/mohttps://browserless.io

Both are optional — Rungs 1-2 work without any API keys.

README.md

No README available.

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install browser-ladder?

Run openclaw add @ktpriyatham/browser-ladder in your terminal. This installs browser-ladder into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/ktpriyatham/browser-ladder. Review commits and README documentation before installing.