Files
dotfiles/dot_claude/skills/cloudflare/references/browser-rendering/configuration.md
T
Prad NukalaandClaude Fable 5 20891f3910 config(git,claude,ssh): templated gitconfig; claude settings/commands/hooks/skills; ssh config
gitconfig: name/email from chezmoi data, gh credential helper by PATH
lookup (portable to darwin). claude: no credentials, history, projects,
sessions, or plugin caches. ssh config as private_ (0600).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-09 14:53:46 -04:00

1.8 KiB

Configuration & Setup

Installation

npm install @cloudflare/puppeteer  # or @cloudflare/playwright

Use Cloudflare packages - standard puppeteer/playwright won't work in Workers.

wrangler.json

{
  "name": "browser-worker",
  "main": "src/index.ts",
  "compatibility_date": "2025-01-01",
  "compatibility_flags": ["nodejs_compat"],
  "browser": {
    "binding": "MYBROWSER"
  }
}

Required: nodejs_compat flag and browser.binding.

TypeScript

interface Env {
  MYBROWSER: Fetcher;
}

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    // ...
  }
} satisfies ExportedHandler<Env>;

Development

wrangler dev --remote  # --remote required for browser binding

Local mode does NOT support Browser Rendering - must use --remote.

REST API

No wrangler config needed. Get API token with "Browser Rendering - Edit" permission.

curl -X POST \
  'https://api.cloudflare.com/client/v4/accounts/{accountId}/browser-rendering/screenshot' \
  -H 'Authorization: Bearer TOKEN' \
  -d '{"url": "https://example.com"}' --output screenshot.png

Requirements

Requirement Value
Node.js compatibility nodejs_compat flag
Compatibility date 2023-03-01+
Module format ES modules only
Browser Chromium 119+ (no Firefox/Safari)

Not supported: WebGL, WebRTC, extensions, file:// protocol, Service Worker syntax.

Troubleshooting

Error Solution
MYBROWSER is undefined Use wrangler dev --remote
nodejs_compat not enabled Add to compatibility_flags
Module not found npm install @cloudflare/puppeteer
Browser Rendering not available Enable in dashboard