Back to the catalog

cf-crawl

Crawl any website via Cloudflare Browser Rendering API. Free Firecrawl alternative — returns clean markdown, HTML, or JSON. No rate limits,

Open source Open in the app JSON README (API)

About

Crawl any website via Cloudflare Browser Rendering API. Free Firecrawl alternative — returns clean markdown, HTML, or JSON. No rate limits, no API keys to buy.

Details

Kind
Plugins
Topic
Web search, scraping & browser
Publisher
mslugga35
Origin
marketplace
Category
ferramentas
Stars
1
Last push
2026-03-12T20:12:20Z
Repository state
ativo
Language
JavaScript
License
MIT
Added
2026-08-30 01:48:58
Updated
2026-08-30 01:48:58
Origin id
mslugga35/claude-plugin-cf-crawl/cf-crawl

README

# cf-crawl

A Claude Code plugin that crawls any website via Cloudflare Browser Rendering API. Free alternative to Firecrawl — returns clean markdown, HTML, or JSON with no rate limits.

## Install

```bash
# From the official marketplace (once accepted)
/plugin install cf-crawl@claude-plugins-official

# Or install directly from GitHub
/plugin install https://github.com/mslugga35/claude-plugin-cf-crawl
```

## Setup

1. Get a Cloudflare API token with **Browser Rendering - Edit** permission at [dash.cloudflare.com/profile/api-tokens](https://dash.cloudflare.com/profile/api-tokens)
2. Set environment variables:
```bash
export CF_API_TOKEN="your-token"
export CF_ACCOUNT_ID="your-account-id"
```

## Usage

### Slash Command

```
/cf-crawl:crawl https://example.com --limit 20
```

### Automatic (Skill)

Just ask Claude to crawl a site:
- "Crawl https://example.com and summarize it"
- "Scrape the pricing page from competitor.com"
- "Get all blog posts from this site"

### CLI

```bash
# Crawl and wait for results
node scripts/cf-crawl.mjs https://example.com --wait --out results.json

# Limit pages
node scripts/cf-crawl.mjs https://example.com --limit 20 --depth 3 --wait

# Filter by path
node scripts/cf-crawl.mjs https://example.com --include "/blog/**" --wait

# Static mode (faster, no JS rendering)
node scripts/cf-crawl.mjs https://example.com --static --wait

# Job management
node scripts/cf-crawl.mjs --status <job_id>
node scripts/cf-crawl.mjs --fetch <job_id> --out results.json
node scripts/cf-crawl.mjs --cancel <job_id>
```

### Programmatic

```javascript
import { crawlAndWait } from './scripts/lib/cf-crawl-client.mjs';

const pages = await crawlAndWait('https://example.com', {
  limit: 30,
  formats: ['markdown'],
  onProgress: (s) => console.log(`${s.finished}/${s.total}`),
});
```

## Parameters

| Parameter | Default | Description |
|-----------|---------|-------------|
| `limit` | 10 | Max pages (up to 100,000) |
| `depth` | CF default | Max link depth |
| `--timeout` | 3600 | Max poll wait (seconds, `--wait` mode) |
| `formats` | `["markdown"]` | `html`, `markdown`, `json` |
| `render` | `true` | JS rendering (`false` = faster) |
| `includePatterns` | — | Wildcard include filter |
| `excludePatterns` | — | Wildcard exclude filter |

## Why not Firecrawl?

- **Free** — uses Cloudflare's included Browser Rendering
- **No extra API key** — just your existing CF token
- **No rate limits** — crawl as much as your CF plan allows
- **Jobs run up to 7 days** — results stored 14 days
- **Same output** — clean markdown, just like Firecrawl

## License

MIT

More