Crawl4AI Agent Skill

Portable skill for the Crawl4AI CLI and SDK: JavaScript-heavy pages, structured extraction by CSS schemas and batch crawling.

  • 50 ★ on the repository
  • Last commit
Skill

Broad access

Why this level

  • The skill runs a headless browser, visits third-party sites and keeps sessions with login state.
  • Data collection can breach site terms or personal data law.
All reasons and checks

brettdavies/crawl4ai-skill

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/crawl4ai-agent-skill

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The skill runs a headless browser, visits third-party sites and keeps sessions with login state.
  • Data collection can breach site terms or personal data law.

This is third-party code. Review the repository files before installing.

What it does

The skill teaches an agent to work with the `crwl` command and the `crawl4ai` library. Pages render in a headless browser waiting for `networkidle`, and data is extracted two ways. A CSS selector schema is derived once through a model and then applied at no further cost, while LLM extraction suits one-off tasks without a schema. It also offers BM25 and quality content filters, batch crawling with per-job concurrency caps, sessions for multi-step logged-in flows and URL discovery. The bundle holds `SKILL.md`, nine reference guides, six helper scripts, YAML templates and four eval scenarios. It is verified against Crawl4AI 0.8.9.

Who it is for. Developers and data analysts who collect structured data from JavaScript sites and want to derive a schema once instead of paying a model per page.

Good fit when

  • A product catalog is drawn by scripts and a plain request returns an empty page
  • A selector schema is derived once and applied to thousands of similar pages
  • A page must be cleaned to plain Markdown keeping only relevant chunks
  • A site is crawled by topic with a cap on concurrent jobs
  • A scenario spans several steps inside one browser session

Not a fit when

  • The site forbids automated collection in its terms or `robots.txt`
  • The data holds personal information you have no basis to process
  • The page returns what you need through a plain HTTP request, so a headless browser is overkill

Example request

Open the catalog at this link, derive a CSS schema for product cards and save all products to JSON.

Limitations

The skill calls the Crawl4AI library, so the agent environment needs `pip install crawl4ai`, then `crawl4ai-setup` and a `crawl4ai-doctor` check: the headless browser downloads separately. The SDK reference is huge, and commands and parameters are tied to version 0.8.9 and may differ on others. The folder includes a guide on anti-bot handling, which should be applied only to your own sites or where collection is permitted. Sessions keep login state, so do not leave them on shared machines. The license is dual, MIT or Apache-2.0.

How to disable. Delete the `~/.claude/skills/crawl4ai` folder. Remove the library and browser with `pip uninstall crawl4ai` and clear the browser cache manually.

FAQ

How do I install the skill in Claude Code?

Clone the repository into `~/.claude/skills/crawl4ai`: `git clone https://github.com/brettdavies/crawl4ai-skill.git ~/.claude/skills/crawl4ai`. Then install Crawl4AI itself.

What else must be installed?

The Crawl4AI library: `pip install crawl4ai`, then `crawl4ai-setup` and `crawl4ai-doctor`, which confirms a headless browser is available.

How does a schema differ from LLM extraction?

A CSS selector schema is derived once through a model and then applied at no cost. LLM extraction pays per request and suits cases where a schema is not worth deriving.

Which agents does it work with?

Any that load SKILL.md bundles: Claude Code, Codex, Cursor, OpenCode, Cline. Clone the folder where the host looks for skills.

Which Crawl4AI version is it verified against?

Version 0.8.9, recorded in the repository `VERSION` file.

Discussion

No questions or reviews yet.

Skills
Official

Five skills for the XCrawl API: scraping a single page, mapping a site's URLs, crawling a whole site and search, with cURL and Node examples

SkillBroad access449Repository stars
Official

An open-source crawler that turns websites into clean Markdown for AI agents: install from PyPI, run in Docker and connect to Claude Code over MCP

MCP serverExtended access87.3KRepository stars

Three skills and four utilities that let an agent search the web, read pages, pull video subtitles and process media

SkillExtended access228Repository stars
Official

Firecrawl skills catalog for Claude Code, Cursor and Codex: web search, scraping, crawling, page interaction and API integration

PluginExtended access155Repository stars

Five skills that teach an agent to wire Firecrawl search, scraping and page interaction into the code of your own application

SkillExtended access201.3KRepository stars
Official

Official Brave skills that teach an agent to call the Search API for web, news, images, videos, places and page extracts for LLMs

SkillExtended access196Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
Crawl4AI Agent Skill (this card)no50
Crawl4AIyesAPI key87,271the library itself and how to run it; this is a skill with recipes and scripts on top of it
Firecrawl CLIno684the Firecrawl hosted service with skills; this one uses the local Crawl4AI library

README in short

The README lists features, installation by cloning, Crawl4AI prerequisites, a quick start for the CLI and SDK and the bundle contents. Links to guides, recipes and eval scenarios follow.

README badge

Original SKILL.md

---
name: crawl4ai
description: Use when scraping JavaScript-heavy pages or SPAs, crawling multiple URLs concurrently, extracting structured data with reusable CSS/JSON schemas, or building automated web data pipelines. Wraps the Crawl4AI library (`crwl` CLI and Python SDK) with schema-generation patterns for LLM-free extraction. Triggers on crawl4ai, crwl, scrape JS-heavy site, scrape SPA, headless browser scrape, schema-based extraction, batch crawl, sitemap crawl, web data pipeline. SKIP when a static HTML page can be read with `defuddle` / `fetch-web` — those are faster cold-start and don't need a browser.
argument-hint: "[url]"
---

# Crawl4AI

**Verified against `crawl4ai`** [`VERSION`](VERSION). PEP 723 pins in `scripts/*.py` and `tests/*.py` floor at that
version.

## Overview

Crawl4AI wraps a headless browser (Playwright) plus a markdown-aware content pipeline. Use it when defuddle/curl can't
reach the content — JavaScript-rendered pages, login-gated content, infinite scroll, multi-URL concurrency, repeatable
schema-based extraction.

This skill exposes both interfaces of the underlying library:

- **CLI** (`crwl`) — quick, scriptable commands: [CLI Guide](references/cli-guide.md)
- **Python SDK** — full programmatic control: [SDK Guide](references/sdk-guide.md)

## Invoked with a URL argument

When the user runs `/crawl4ai <url>` with a single URL and no further qualifier, treat it as the JS-heavy fetch case and
default to:

```bash
crwl <url> -c "wait_until=networkidle,page_timeout=60000" -o markdown
```

`wait_until=networkidle` waits for the network to be quiet for ~500ms post-load — the right default when the user hasn't
named a specific element on a JS-rendered page. (Avoid `wait_for=css:body`: `<body>` exists at t=0 on every HTML
response, so it's satisfied before JS renders content.) Then return the markdown to the agent context. Adjust to
`wait_for=css:<selector>` if the user named a specific element. Skip the default and route to the relevant section below
for any task that names extraction, batch / multi-URL, login / session, screenshot / PDF, or URL discovery — those each
have their own pipeline. If the URL is clearly static (a docs page, a blog post), route the user to `/fetch-web` instead
per the "When NOT to use" section below.

## When NOT to use this skill

- **Static HTML pages** (most documentation sites, blog posts, news articles, tweets) — use `/fetch-web` or `defuddle`
  directly. Static extraction is ~0ms cold start; crawl4ai pays a ~2s browser startup tax.
- **Local file conversion** (`.pdf`, `.docx`, `.pptx`, `.epub`) — use `/markdown-convert`.
- **One-URL agent-context reads** (the agent just needs to read this page) — use `/fetch-web` and let it route to

Report a problem