Agent Browser
oxylabs/agent-skills
Connects to Oxylabs remote agent browsers over the Chrome DevTools Protocol (CDP) with Playwright or Puppeteer.
Drives headless Chrome through Cloudflare Browser Rendering over a CDP WebSocket to take screenshots, navigate and scrape pages, and record multi-page videos.
$ npx skills add cloudflare/moltworker --skill cloudflare-browser -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cloudflare/moltworker cloudflare-browser --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cloudflare/moltworker.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cloudflare-browser .claude/skills/cloudflare-browser && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cloudflare-browser" agent skill from https://github.com/cloudflare/moltworker/tree/main/skills/cloudflare-browser into .claude/skills/cloudflare-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-browser", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cloudflare/moltworker/tree/main/skills/cloudflare-browserType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cloudflare/moltworker --skill cloudflare-browser -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cloudflare/moltworker cloudflare-browser --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudflare/moltworker.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cloudflare-browser .agents/skills/cloudflare-browser && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cloudflare-browser" agent skill from https://github.com/cloudflare/moltworker/tree/main/skills/cloudflare-browser into .agents/skills/cloudflare-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-browser", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cloudflare/moltworker --skill cloudflare-browser -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cloudflare/moltworker cloudflare-browser --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudflare/moltworker.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cloudflare-browser .cursor/skills/cloudflare-browser && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cloudflare-browser" agent skill from https://github.com/cloudflare/moltworker/tree/main/skills/cloudflare-browser into .cursor/skills/cloudflare-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-browser", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cloudflare/moltworker.git --path skills/cloudflare-browser--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cloudflare/moltworker --skill cloudflare-browser -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cloudflare/moltworker cloudflare-browser --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudflare/moltworker.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cloudflare-browser .gemini/skills/cloudflare-browser && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cloudflare-browser" agent skill from https://github.com/cloudflare/moltworker/tree/main/skills/cloudflare-browser into .gemini/skills/cloudflare-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-browser", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cloudflare/moltworker cloudflare-browserInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cloudflare/moltworker --skill cloudflare-browser -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cloudflare/moltworker.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cloudflare-browser .github/skills/cloudflare-browser && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cloudflare-browser" agent skill from https://github.com/cloudflare/moltworker/tree/main/skills/cloudflare-browser into .github/skills/cloudflare-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-browser", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cloudflare/moltworker --skill cloudflare-browser -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cloudflare/moltworker cloudflare-browser --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudflare/moltworker.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cloudflare-browser .opencode/skills/cloudflare-browser && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cloudflare-browser" agent skill from https://github.com/cloudflare/moltworker/tree/main/skills/cloudflare-browser into .opencode/skills/cloudflare-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-browser", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cloudflare-browserDrives headless Chrome through Cloudflare Browser Rendering over a CDP WebSocket to take screenshots, navigate and scrape pages, and record multi-page videos.
The skill connects to a Cloudflare Worker endpoint that exposes the Chrome DevTools Protocol over a WebSocket. It needs the `CDP_SECRET` environment variable and a browser profile in the agent config whose `cdpUrl` points at the worker. Two bundled Node scripts cover common jobs: `scripts/screenshot.js` takes a URL and an output file, and `scripts/video.js` takes a comma-separated list of URLs and produces an MP4, with `scripts/cdp-client.js` as the shared client.
The worker creates a page target on connect, so a client waits for the `Target.targetCreated` event to learn the target ID. The key commands are `Page.navigate`, `Page.captureScreenshot`, `Runtime.evaluate` for running JavaScript such as scrolling, and `Emulation.setDeviceMetricsOverride` for the viewport. Videos are made by capturing PNG frames during navigation and stitching them with ffmpeg. Troubleshooting notes cover a missing target, which is a race to handle with a timeout, commands that time out during cold starts, and WebSocket hangs caused by a mismatched secret.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 7b00c1d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodeffmpegFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
CDP_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cloudflare Browser Rendering loads about 742 tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 144 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from cloudflare/moltworker at commit 7b00c1d, republished under its Apache-2.0 licence (© cloudflare). 144 words, ~742 tokens.
.claude/skills/cloudflare-browser/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Control headless browsers via Cloudflare's Browser Rendering service using CDP (Chrome DevTools Protocol) over WebSocket.
CDP_SECRET environment variable setcdpUrl pointing to the worker endpoint:"browser": {
"profiles": {
"cloudflare": {
"cdpUrl": "https://your-worker.workers.dev/cdp?secret=..."
}
}
}node /path/to/skills/cloudflare-browser/scripts/screenshot.js https://example.com output.pngnode /path/to/skills/cloudflare-browser/scripts/video.js "https://site1.com,https://site2.com" output.mp4The 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;
}
});| Command | Purpose |
|---|---|
| Page.navigate | Navigate to URL |
| Page.captureScreenshot | Capture PNG/JPEG |
| Runtime.evaluate | Execute JavaScript |
| Emulation.setDeviceMetricsOverride | Set viewport size |
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'));await send('Runtime.evaluate', { expression: 'window.scrollBy(0, 300)' });await send('Emulation.setDeviceMetricsOverride', {
width: 1280,
height: 720,
deviceScaleFactor: 1,
mobile: false
});ffmpeg -framerate 10 -i frame_%04d.png -c:v libx264 -pix_fmt yuv420p output.mp4© cloudflare, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts) in skills/cloudflare-browser of cloudflare/moltworker.
Open the folder on GitHubat commit 7b00c1d
Cloudflare Browser Rendering next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cloudflare Browser Rendering this skillcloudflare/moltworker | 9.9k | — | ~742 | Automated safety check: Pass | Apache-2.0 | |
| Agent Browseroxylabs/agent-skills | 875 | — | ~3k | Automated safety check: Pass | MIT | |
| Agents SDKhodgef/apiker | 127 | 3 repos | ~3k | Automated safety check: Pass | MIT | |
| Cloudflare Browser Renderingeinverne/dotfiles | 121 | — | ~4.9k | Automated safety check: Pass | GPL-3.0 | |
| Cloudflare Browser Renderingsecondsky/claude-skills | 227 | — | ~4k | Automated safety check: Pass | MIT | |
| Cdp Connectadobe/skills | 195 | — | ~847 | Automated safety check: Pass | Apache-2.0 |
oxylabs/agent-skills
Connects to Oxylabs remote agent browsers over the Chrome DevTools Protocol (CDP) with Playwright or Puppeteer.
hodgef/apiker
Build AI agents on Cloudflare Workers using the Agents SDK. An agent skill from hodgef/apiker.
einverne/dotfiles
Guide for implementing Cloudflare Browser Rendering - a headless browser automation API for screenshots, PDFs, web scraping, and testing.
secondsky/claude-skills
Cloudflare Browser Rendering with Puppeteer/Playwright. An agent skill from secondsky/claude-skills.
adobe/skills
Connect Claude Code to an existing Chrome browser via CDP (Chrome DevTools Protocol).
clabernetes/clabernetes
Builds and validates the Fumadocs React Router static site through Wrangler with headless browser checks.
Categories
Drives headless Chrome through Cloudflare Browser Rendering over a CDP WebSocket to take screenshots, navigate and scrape pages, and record multi-page videos. The skill connects to a Cloudflare Worker endpoint that exposes the Chrome DevTools Protocol over a WebSocket. It needs the `CDP_SECRET` environment variable and a browser profile in the agent config whose `cdpUrl` points at the worker.
Cloudflare Browser Rendering fits situations like: taking screenshots of pages from a Cloudflare Workers environment; recording a short video that walks through several sites; scraping a rendered page where plain HTTP fetches are not enough.
Run `npx skills add cloudflare/moltworker --skill cloudflare-browser -a claude-code`. Or copy the skill folder (skills/cloudflare-browser in cloudflare/moltworker) into .claude/skills/cloudflare-browser in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cloudflare/moltworker --skill cloudflare-browser -a codex`. Or copy the skill folder (skills/cloudflare-browser in cloudflare/moltworker) into .agents/skills/cloudflare-browser in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cloudflare/moltworker --skill cloudflare-browser -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cloudflare-browser, .gemini/skills/cloudflare-browser, .github/skills/cloudflare-browser and .opencode/skills/cloudflare-browser in your project.
Going by SKILL.md and its folder, Cloudflare Browser Rendering needs JavaScript for the scripts in its folder, the command-line tools its instructions call (node and ffmpeg) and credentials named CDP_SECRET. Our summary lists: A `CDP_SECRET` environment variable; A Cloudflare Browser Rendering worker endpoint set as `cdpUrl` in the browser profile; ffmpeg, for video capture.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Cloudflare Browser Rendering is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 742 tokens (SKILL.md is roughly 3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cloudflare Browser Rendering: Agent Browser (oxylabs/agent-skills, 875 stars), Agents SDK (hodgef/apiker, 127 stars), Cloudflare Browser Rendering (einverne/dotfiles, 121 stars) and Cloudflare Browser Rendering (secondsky/claude-skills, 227 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cloudflare (a GitHub organization, an official publisher) maintains it in cloudflare/moltworker, which has 9,950 GitHub stars. The repository was last updated on May 9, 2026.
Source: cloudflare/moltworker on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.