NEW Browse AI tools across categories — updated daily. See what's new →

Cloudflare Browser

Control headless Chrome via Cloudflare Browser Rendering CDP WebSocket. Use for screenshots, page navigation, scraping, and video capture when browser…

Version1.0.0
LicenseMIT
Token count~1,140
UpdatedJun 5, 2026

Install

Quick install

via npx skills · works with 57+ agents
npx skills add https://github.com/cloudflare/moltworker/tree/HEAD/skills/cloudflare-browser
Or pick agent:
npx skills add cloudflare/moltworker --skill cloudflare-browser --agent claude-code
npx skills add cloudflare/moltworker --skill cloudflare-browser --agent cursor
npx skills add cloudflare/moltworker --skill cloudflare-browser --agent codex
npx skills add cloudflare/moltworker --skill cloudflare-browser --agent opencode
npx skills add cloudflare/moltworker --skill cloudflare-browser --agent github-copilot
npx skills add cloudflare/moltworker --skill cloudflare-browser --agent windsurf
More install options

Shorthand — useful for multi-skill repos:

npx skills add cloudflare/moltworker --skill cloudflare-browser

Manual — clone the repo and drop the folder into your agent's skills directory:

git clone https://github.com/cloudflare/moltworker.git
cp -r moltworker/skills/cloudflare-browser ~/.claude/skills/
How to use: Once installed, ask your agent to "use the cloudflare-browser skill" or describe what you want (e.g. "Control headless Chrome via Cloudflare Browser Rendering CDP WebSocket. Use for"). Requires Node.js 18+.

cloudflare-browser

Control headless Chrome via Cloudflare Browser Rendering CDP WebSocket. Use for screenshots, page navigation, scraping, and video capture when browser…

cloudflare-browserby cloudflare

Control headless Chrome via Cloudflare Browser Rendering CDP WebSocket. Use for screenshots, page navigation, scraping, and video capture when browser…

npx skills add https://github.com/cloudflare/moltworker --skill cloudflare-browserDownload ZIPGitHub

Cloudflare Browser Rendering

Control headless browsers via Cloudflare's Browser Rendering service using CDP (Chrome DevTools Protocol) over WebSocket.

Prerequisites

  • CDP_SECRET environment variable set
  • Browser profile configured in openclaw.json with cdpUrl pointing to the worker endpoint:
`"browser": {
"profiles": {
"cloudflare": {
"cdpUrl": "https://your-worker.workers.dev/cdp?secret=..."
}
}
}
`

Quick Start

Screenshot

`node /path/to/skills/cloudflare-browser/scripts/screenshot.js https://example.com output.png
`

Multi-page Video

`node /path/to/skills/cloudflare-browser/scripts/video.js "https://site1.com,https://site2.com" output.mp4
`

CDP Connection Pattern

The worker creates a page target automatically on WebSocket connect. Listen for Target.targetCreated event to get the targetId:

`const WebSocket = require('ws');
const CDP_SECRET = process.env.CDP_SECRET;
const WS_URL = `wss://your-worker.workers.dev/cdp?secret=${encodeURIComponent(CDP_SECRET)}`;

const ws = new WebSocket(WS_URL);
let targetId = null;

ws.on('message', (data) => {
const msg = JSON.parse(data.toString());
if (msg.method === 'Target.targetCreated' && msg.params?.targetInfo?.type === 'page') {
targetId = msg.params.targetInfo.targetId;
}
});
`

Key CDP Commands

CommandPurposePage.navigateNavigate to URLPage.captureScreenshotCapture PNG/JPEGRuntime.evaluateExecute JavaScriptEmulation.setDeviceMetricsOverrideSet viewport size

Common Patterns

Navigate and Screenshot

`await send('Page.navigate', { url: 'https://example.com' });
await new Promise(r => setTimeout(r, 3000)); // Wait for render
const { data } = await send('Page.captureScreenshot', { format: 'png' });
fs.writeFileSync('out.png', Buffer.from(data, 'base64'));
`

Scroll Page

`await send('Runtime.evaluate', { expression: 'window.scrollBy(0, 300)' });
`

Set Viewport

`await send('Emulation.setDeviceMetricsOverride', {
width: 1280,
height: 720,
deviceScaleFactor: 1,
mobile: false
});
`

Creating Videos

  • Capture frames as PNGs during navigation
  • Use ffmpeg to stitch: ffmpeg -framerate 10 -i frame_%04d.png -c:v libx264 -pix_fmt yuv420p output.mp4

Troubleshooting

  • No target created: Race condition - wait for Target.targetCreated event with timeout
  • Commands timeout: Worker may have cold start delay; increase timeout to 30-60s
  • WebSocket hangs: Verify CDP_SECRET matches worker configuration

More skills from cloudflare

write-endpointsby cloudflareComprehensive guide for building OpenAPI endpoints with chanfana - schema definition, request validation, CRUD operations, D1 database integration, and…agents-sdkby cloudflareBuild AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks,…building-ai-agent-on-cloudflareby cloudflareCreates AI-powered agents using Cloudflare's Agents SDK with persistent state, real-time communication, and tool integration.building-mcp-server-on-cloudflareby cloudflareCreates production-ready Model Context Protocol servers on Cloudflare Workers with tools, authentication, and deployment.changelogby cloudflareCreates, updates, and reviews product changelog entries for the Cloudflare documentation site. Load when generating changelog MDX files, editing existing…cloudflareby cloudflareComprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), networking (Tunnel, Spectrum),…code-reviewby cloudflareReviews Workers and Cloudflare Developer Platform code for type correctness, API usage, and configuration validity. Load when reviewing TypeScript/JavaScript…docs-reviewby cloudflareReviews documentation PRs and provides GitHub PR suggestions. Load when asked to review, suggest changes, or provide feedback on docs content. Covers MDX,…

---

Source: https://github.com/cloudflare/moltworker/tree/HEAD/skills/cloudflare-browser
Author: cloudflare
Discovered via: mcpservers.org

SKILL.md source

---
name: cloudflare-browser
description: Control headless Chrome via Cloudflare Browser Rendering CDP WebSocket. Use for screenshots, page navigation, scraping, and video capture when browser…
---

# cloudflare-browser

Control headless Chrome via Cloudflare Browser Rendering CDP WebSocket. Use for screenshots, page navigation, scraping, and video capture when browser…

# cloudflare-browserby cloudflare
Control headless Chrome via Cloudflare Browser Rendering CDP WebSocket. Use for screenshots, page navigation, scraping, and video capture when browser…

`npx skills add https://github.com/cloudflare/moltworker --skill cloudflare-browser`Download ZIPGitHub

## Cloudflare Browser Rendering

Control headless browsers via Cloudflare's Browser Rendering service using CDP (Chrome DevTools Protocol) over WebSocket.

## Prerequisites

* `CDP_SECRET` environment variable set

* Browser profile configured in openclaw.json with `cdpUrl` pointing to the worker endpoint:

```
`"browser": {
"profiles": {
"cloudflare": {
"cdpUrl": "https://your-worker.workers.dev/cdp?secret=..."
}
}
}
`
```

## Quick Start

### Screenshot

```
`node /path/to/skills/cloudflare-browser/scripts/screenshot.js https://example.com output.png
`
```

### Multi-page Video

```
`node /path/to/skills/cloudflare-browser/scripts/video.js "https://site1.com,https://site2.com" output.mp4
`
```

## CDP Connection Pattern

The worker creates a page target automatically on WebSocket connect. Listen for Target.targetCreated event to get the targetId:

```
`const WebSocket = require('ws');
const CDP_SECRET = process.env.CDP_SECRET;
const WS_URL = `wss://your-worker.workers.dev/cdp?secret=${encodeURIComponent(CDP_SECRET)}`;

const ws = new WebSocket(WS_URL);
let targetId = null;

ws.on('message', (data) => {
const msg = JSON.parse(data.toString());
if (msg.method === 'Target.targetCreated' && msg.params?.targetInfo?.type === 'page') {
targetId = msg.params.targetInfo.targetId;
}
});
`
```

## Key CDP Commands

CommandPurposePage.navigateNavigate to URLPage.captureScreenshotCapture PNG/JPEGRuntime.evaluateExecute JavaScriptEmulation.setDeviceMetricsOverrideSet viewport size

## Common Patterns

### Navigate and Screenshot

```
`await send('Page.navigate', { url: 'https://example.com' });
await new Promise(r => setTimeout(r, 3000)); // Wait for render
const { data } = await send('Page.captureScreenshot', { format: 'png' });
fs.writeFileSync('out.png', Buffer.from(data, 'base64'));
`
```

### Scroll Page

```
`await send('Runtime.evaluate', { expression: 'window.scrollBy(0, 300)' });
`
```

### Set Viewport

```
`await send('Emulation.setDeviceMetricsOverride', {
width: 1280,
height: 720,
deviceScaleFactor: 1,
mobile: false
});
`
```

## Creating Videos

* Capture frames as PNGs during navigation

* Use ffmpeg to stitch: `ffmpeg -framerate 10 -i frame_%04d.png -c:v libx264 -pix_fmt yuv420p output.mp4`

## Troubleshooting

* No target created: Race condition - wait for Target.targetCreated event with timeout

* Commands timeout: Worker may have cold start delay; increase timeout to 30-60s

* WebSocket hangs: Verify CDP_SECRET matches worker configuration

## More skills from cloudflare
write-endpointsby cloudflareComprehensive guide for building OpenAPI endpoints with chanfana - schema definition, request validation, CRUD operations, D1 database integration, and…agents-sdkby cloudflareBuild AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks,…building-ai-agent-on-cloudflareby cloudflareCreates AI-powered agents using Cloudflare's Agents SDK with persistent state, real-time communication, and tool integration.building-mcp-server-on-cloudflareby cloudflareCreates production-ready Model Context Protocol servers on Cloudflare Workers with tools, authentication, and deployment.changelogby cloudflareCreates, updates, and reviews product changelog entries for the Cloudflare documentation site. Load when generating changelog MDX files, editing existing…cloudflareby cloudflareComprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), networking (Tunnel, Spectrum),…code-reviewby cloudflareReviews Workers and Cloudflare Developer Platform code for type correctness, API usage, and configuration validity. Load when reviewing TypeScript/JavaScript…docs-reviewby cloudflareReviews documentation PRs and provides GitHub PR suggestions. Load when asked to review, suggest changes, or provide feedback on docs content. Covers MDX,…

---

**Source**: https://github.com/cloudflare/moltworker/tree/HEAD/skills/cloudflare-browser
**Author**: cloudflare
**Discovered via**: mcpservers.org

Related skills 6

microsoft-foundry

★ Featured Official

Deploy, evaluate, and manage Foundry agents end-to-end: Docker build, ACR push, hosted/prompt agent create, container start, batch eval, continuous eval, prompt optimizer workflows, agent.yaml, dataset curation from traces. USE FOR: deploy agent to Foundry, hosted agent, create agent, invoke agent, evaluate agent, run batch eval, continuous eval, continuous monitoring, continuous eval status, optimize prompt, improve prompt, prompt optimizer, optimize agent instructions, improve agent instruc...

microsoft 340k
DevOps & Infrastructure

azure-ai

★ Featured Official

Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.

microsoft 338k
DevOps & Infrastructure

azure-deploy

★ Featured Official

Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "p...

microsoft 338k
DevOps & Infrastructure

azure-diagnostics

★ Featured Official

Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, troubleshoot functions, troubleshoot AKS, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, analyze logs, KQL, insights, image pull failures, cold start issues, health probe failures, resource...

microsoft 338k
DevOps & Infrastructure

azure-resource-lookup

★ Featured Official

List, find, and show Azure resources across subscriptions or resource groups. Handles prompts like "list the websites in my subscription", "list my web apps", "show my app services", "list virtual machines", "list my VMs", "show storage accounts", "find container apps", and "what resources do I have". USE FOR: list websites, list web apps, list app services, show websites in subscription, resource inventory, find resources by tag, tag analysis, orphaned resource discovery (not for cost analys...

microsoft 337k
DevOps & Infrastructure

azure-resource-visualizer

★ Featured Official

Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. WHEN: create architecture diagram, visualize Azure resources, show resource relationships, generate Mermaid diagram, analyze resource group, diagram my resources, architecture visualization, resource topology, map Azure infrastructure.

microsoft 337k
DevOps & Infrastructure