SkillJavaScriptv1.0.0

browser-ladder

Climb the browser ladder β€” start free, escalate.

15 downloads
ktpriyatham
Updated Jan 27, 2026

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.

Free
Installation
Reviews

Sign in to leave a review.

No reviews yet. Be the first.