cloudflare-browser-rendering

Automate headless browsers via Cloudflare's Browser Rendering API for screenshots and PDFs.

2.2k|422|Updated Oct 23, 2025
One-click install
npx skills add https://github.com/mrgoonie/claudekit-skills --skill cloudflare-browser-rendering
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cloudflare-browser-rendering
Source: https://github.com/mrgoonie/claudekit-skills/tree/main/.claude/skills/cloudflare-browser-rendering
Command: npx skills add https://github.com/mrgoonie/claudekit-skills --skill cloudflare-browser-rendering

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Automating headless browsers for tasks like screenshots, PDF generation, or dynamic web scraping can be resource-intensive and complex to manage. This skill leverages Cloudflare's Browser Rendering API to provide scalable, serverless browser automation, simplifying web interaction and data extraction.

Core Features & Use Cases

  • Screenshots & PDFs: Generate high-quality screenshots or PDFs of any webpage.
  • Dynamic Web Scraping: Extract data from JavaScript-rendered content that traditional scrapers miss.
  • AI-Powered Automation: Integrate with Workers AI or MCP servers for natural language browser control.
  • Use Case: Automatically generate daily screenshots of competitor websites for market analysis, or convert dynamic web reports into static PDF archives.

Quick Start

Example: Basic screenshot using REST API

curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/screenshot"
-H "Authorization: Bearer YOUR_API_TOKEN"
-H "Content-Type: application/json"
-d '{"url": "https://example.com"}'

Example: Basic Worker for screenshot (requires Cloudflare Worker setup)

In src/index.ts:

export default {

async fetch(request, env) {

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" } });

}

};