Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
Claude Skills Maintainers avatar

Cloudflare Browser Rendering

  • 196 repo stars
  • Updated July 25, 2026
  • secondsky/claude-skills

Use Cloudflare Browser Rendering to handle server-side rendering, web scraping, and screenshot/PDF generation without managing browser infrastructure yourself.

About

Cloudflare Browser Rendering provides a managed headless browser service accessible via API, eliminating the complexity of running Puppeteer or Playwright on your servers. developers use it to capture screenshots, generate PDFs, scrape dynamic content, and resolve rendering timeouts or memory errors without infrastructure overhead. It matters because browser automation at scale requires significant resources—outsourcing it to Cloudflare keeps your backend lean and responsive.

  • Server-side rendering without headless browser overhead
  • Generate screenshots and PDFs at scale
  • Web scraping that handles JavaScript-heavy sites

Cloudflare Browser Rendering by the numbers

  • Data as of Jul 28, 2026 (Skillselion catalog sync)
/plugin marketplace add secondsky/claude-skills
/plugin install cloudflare-browser-rendering@claude-skills

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
repo stars196
Last updatedJuly 25, 2026
Repositorysecondsky/claude-skills

What it does

Use Cloudflare Browser Rendering to handle server-side rendering, web scraping, and screenshot/PDF generation without managing browser infrastructure yourself.

README.md

Cloudflare Browser Rendering Skill

Auto-Discovery Skill for Claude Code CLI

Complete knowledge domain for Cloudflare Browser Rendering - Headless Chrome automation with Puppeteer and Playwright on Cloudflare Workers.


Auto-Trigger Keywords

Claude will automatically suggest this skill when you mention any of these keywords:

Primary Triggers (Technologies)

  • browser rendering
  • cloudflare browser rendering
  • @cloudflare/puppeteer
  • @cloudflare/playwright
  • puppeteer workers
  • playwright workers
  • headless chrome workers
  • headless browser cloudflare
  • browser automation cloudflare
  • browser binding
  • puppeteer.launch
  • chromium.launch

Secondary Triggers (Use Cases)

  • screenshot cloudflare
  • screenshot workers
  • take screenshot puppeteer
  • pdf generation workers
  • generate pdf puppeteer
  • web scraping cloudflare
  • scrape website workers
  • crawl website puppeteer
  • browser automation
  • headless testing
  • puppeteer screenshot
  • playwright screenshot

Commands & API Triggers

  • puppeteer.launch
  • puppeteer.connect
  • puppeteer.sessions
  • puppeteer.history
  • puppeteer.limits
  • browser.newPage
  • browser.sessionId
  • browser.close
  • browser.disconnect
  • browser.createBrowserContext
  • page.goto
  • page.screenshot
  • page.pdf
  • page.evaluate
  • page.waitForSelector
  • page.type
  • page.click
  • incognito context
  • browser tabs
  • session reuse

Configuration Triggers

  • wrangler browser binding
  • nodejs_compat browser
  • browser binding config
  • remote browser binding
  • keep_alive option

Error-Based Triggers

  • "Cannot read properties of undefined (reading 'fetch')"
  • "XPath selector not supported"
  • "XPath not supported"
  • browser timeout
  • browser closed unexpectedly
  • concurrency limit reached
  • rate limit browser
  • too many browsers
  • browser memory limit
  • "statement too long" puppeteer
  • "Network connection lost"
  • bot protection triggered
  • request larger than 1MB

What This Skill Does

  • ✅ Configures browser bindings in wrangler.jsonc with nodejs_compat
  • ✅ Launches Puppeteer/Playwright browsers on Workers
  • ✅ Captures screenshots (full page, regions, PNG/JPEG)
  • ✅ Generates PDFs from HTML or URLs with custom formatting
  • ✅ Scrapes web content with structured data extraction
  • ✅ Manages browser sessions for performance optimization
  • ✅ Implements session reuse to reduce concurrency usage
  • ✅ Creates incognito contexts for session isolation
  • ✅ Handles batch operations with multiple tabs
  • ✅ Integrates with Workers AI for AI-enhanced scraping
  • ✅ Provides error handling and retry logic patterns

Known Issues Prevented

Issue Error Message How Skill Prevents
XPath Not Supported "XPath selector not supported" Templates use CSS selectors or page.evaluate() workaround
Missing Browser Binding "Cannot read properties of undefined (reading 'fetch')" Always passes env.MYBROWSER to puppeteer.launch()
Browser Timeout Browser closes after 60s Documents keep_alive option to extend up to 10 minutes
Concurrency Limits "Rate limit reached" Session reuse patterns, limit checks before launching
Local Dev Limit Requests > 1MB fail in dev Documents remote: true for local development
Bot Protection Website blocks requests Explains bot identification, WAF skip rule workaround


When to Use This Skill

✅ Use When:

  • Taking screenshots of websites or web applications
  • Generating PDFs from HTML content or URLs
  • Scraping dynamic websites that require JavaScript execution
  • Crawling multi-page websites
  • Automating browser workflows (form filling, navigation)
  • Testing web applications with headless browsers
  • Extracting structured data from web pages
  • Monitoring website changes or visual regression testing
  • Need session management for performance optimization
  • Building screenshot-as-a-service APIs

❌ Don't Use When:

  • Static HTML parsing → Use simple fetch() + HTML parser
  • Need to bypass bot protection → Cannot bypass (always identified as bot)
  • Simple HTTP requests → Use fetch() API
  • Real-time browser control → Workers run on edge, not suitable for interactive use
  • Need Firefox/Safari → Only Chromium supported
  • Large-scale crawling → Consider rate limits and costs

Quick Usage Example

# Configure wrangler.jsonc
{
  "browser": { "binding": "MYBROWSER" },
  "compatibility_flags": ["nodejs_compat"]
}

# Install
npm install @cloudflare/puppeteer
import puppeteer from "@cloudflare/puppeteer";

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const browser = await puppeteer.launch(env.MYBROWSER);
    const page = await browser.newPage();
    await page.goto("https://example.com");
    const screenshot = await page.screenshot();
    await browser.close();

    return new Response(screenshot, {
      headers: { "content-type": "image/png" }
    });
  }
};

File Structure

~/.claude/skills/cloudflare-browser-rendering/
├── SKILL.md                               # Complete reference
├── README.md                              # This file (auto-trigger keywords)
├── templates/
│   ├── basic-screenshot.ts                # Minimal screenshot example
│   ├── screenshot-with-kv-cache.ts        # Screenshot + KV caching
│   ├── pdf-generation.ts                  # PDF generation from HTML/URL
│   ├── web-scraper-basic.ts               # Basic web scraping
│   ├── web-scraper-batch.ts               # Batch scraping multiple URLs
│   ├── session-reuse.ts                   # Session reuse pattern
│   ├── ai-enhanced-scraper.ts             # Scraping + Workers AI
│   ├── playwright-example.ts              # Playwright alternative
│   └── wrangler-browser-config.jsonc      # Browser binding config
├── references/
│   ├── session-management.md              # Session optimization guide
│   ├── pricing-and-limits.md              # Complete pricing breakdown
│   ├── common-errors.md                   # All known issues + solutions
│   └── puppeteer-vs-playwright.md         # Feature comparison
└── scripts/
    └── check-versions.sh                  # Verify package versions

Dependencies


Related Skills

  • cloudflare-worker-base - Base Worker + Hono setup
  • cloudflare-kv - KV caching for screenshots
  • cloudflare-r2 - R2 storage for generated files
  • cloudflare-workers-ai - AI-enhanced scraping
  • cloudflare-agents - Agent SDK with browser rendering

Common Patterns Included

  1. Basic Screenshot - Simple screenshot capture
  2. Screenshot with KV Caching - Production pattern with caching
  3. PDF Generation - Convert HTML to PDF with custom formatting
  4. Web Scraping - Extract structured data from web pages
  5. Batch Scraping - Scrape multiple URLs efficiently with tabs
  6. Session Reuse - Optimize performance by reusing browser sessions
  7. AI-Enhanced Scraping - Combine browser rendering with Workers AI
  8. Playwright Alternative - Playwright implementation examples

Pricing Overview

Free Tier:

  • 10 minutes browser time per day
  • 3 concurrent browsers
  • 60 second browser timeout

Paid Tier:

  • 10 hours per month included
  • 10 concurrent browsers included
  • $0.09 per additional browser hour
  • $2.00 per additional concurrent browser
  • Timeout extendable to 10 minutes with keep_alive

See references/pricing-and-limits.md for detailed breakdown.


Learn More

  • SKILL.md: Complete Puppeteer/Playwright API reference
  • templates/: 8 ready-to-use code templates
  • references/: Deep-dive guides for advanced topics

Status: Production Ready ✅ Last Updated: 2025-10-22 Maintainer: Claude Skills Maintainers

Related skills

Backend & APIsbackendintegrationsdevops

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.