v2.0.0
Major release. Verified against the Crawl4AI library at version 0.8.9 (recorded in VERSION). The repo is now the skill bundle: SKILL.md and the skill directories live at the repo root and load directly with git clone <repo> ~/.claude/skills/crawl4ai.
Added
VERSIONfile pinning the Crawl4AI library version the skill is verified against.templates/directory carrying browser, crawler, content-filter, and extraction YAML configs the scripts and SKILL.md
reference (browser.yml,crawler.yml,extract_css.yml,extract_llm.yml,filter_bm25.yml,
filter_pruning.yml,login_crawler.yml,css_schema.json).evals/directory carrying four eval scenarios for verifying skill behavior, with a README.fixtures/directory carrying the schema-generation reference fixture (sample product HTML, expected schema, expected
JSON output), with a README.- Reference guides under
references/:anti-detection.md,content-filters.md,escalation.md,recipes.md,
troubleshooting.md,url-discovery.md. - Focused scripts under
scripts/:batch_crawl.py,batch_extract.py,generate_schema.py,
extract_with_schema.py,extract_with_llm.py. - Test coverage for fixtures under
tests/test_fixtures.py. LICENSE-APACHEandLICENSE-MITcarrying the full license texts;LICENSEsummarizes the dual-license model (SPDX
MIT OR Apache-2.0).
Changed
- Layout: the skill bundle lives at the repo root. The previous
crawl4ai/wrapper directory is gone.SKILL.md
and its companion directories are direct children of the repo root. - Default JS-render wait switches from
wait_for=css:bodytowait_until=networkidleacrossSKILL.mdand every
bundled script.wait_for=css:bodywas satisfied at t=0 on every HTML response and added no real wait;
wait_until=networkidlewaits for ~500ms of network quiet post-load. - License: dual Apache-2.0 OR MIT (was MIT-only). Existing MIT consumers retain MIT terms.
- CLI guide drift fixes: the deprecated
anthropic/claude-3-sonnetLLM provider reference is replaced with a
pointer to the LiteLLM provider list, the LLM-extraction example no longer passes a stray-s llm_schema.json(the
schema lives insideextract_llm.yml), and thefilter_pruning.ymlsnippet drops thequerykey (pruning filters do
not take one) and adds the requiredthreshold_type: fixed. SKILL.md, the existing reference guides, the scripts, the tests, and the evals all refresh against Crawl4AI 0.8.9.README.mdinstall section: singlegit cloneinto~/.claude/skills/crawl4aifor Claude Code; staging-dir zip
snippet for Claude Desktop that includestemplates/,evals/,fixtures/, andVERSION. Helper-scripts list and
E-commerce Product Monitoring example now match the new script names. License section reflects the dual-license model..gitignoreextended with the script-output patterns (output.md,screenshot.png,batch_results.json,
batch_extracted.json,batch_markdown/,generated_schema.json,extracted_data.json,manual_extracted.json,
llm_extracted.json) so script invocations from the repo root no longer pollute the working tree.
Removed
marketplace/metadata.json. No Claude consumer reads it; the data it carried lives on SKILL.md frontmatter, GitHub
topics, README, and LICENSE.- The prebuilt
crawl4ai.zipartifact. README documents how to build the zip from the tree on demand. - The monolithic
scripts/extraction_pipeline.py. Its responsibilities split acrossscripts/generate_schema.pyand
scripts/extract_with_schema.py. scripts/batch_crawler.py. Replaced byscripts/batch_crawl.py.
Breaking Changes
- Symlinks pointing into the previous
crawl4ai-skill/crawl4ai/no longer resolve; repoint at the repo root. - Script callers referencing
scripts/extraction_pipeline.pyswitch toscripts/generate_schema.pyplus
scripts/extract_with_schema.py. Callers ofscripts/batch_crawler.pyswitch toscripts/batch_crawl.py. - License changes from MIT-only to dual Apache-2.0 OR MIT.