com um clique
crwl
Crawl and extract web content using the Crawl4AI CLI (crwl).
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Crawl and extract web content using the Crawl4AI CLI (crwl).
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Know how Pi model selection is configured and changed: default model, thinking level, one-off model switches, Ctrl+P scoped model cycling, and prompt-editor modes for this repo.
Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.
Interview the user relentlessly about a plan, decision, or idea by asking all independent questions in batches, round by round. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
Review a diff, branch, PR, commit, or work-in-progress change along two separate axes: Standards (repo conventions, maintainability, safety) and Spec (does the change implement the originating issue/PRD/request?). Runs focused sub-agents in parallel and reports prioritized, actionable findings side by side. Use when the user wants to review a branch, PR, WIP changes, or asks to "review since X".
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this/find bugs", or reports something broken/throwing/failing/slow.
Read this skill before making git commits
| name | crwl |
| description | Crawl and extract web content using the Crawl4AI CLI (crwl). |
Use the crwl CLI to fetch web pages, extract structured data, and answer questions about web content. Always run via Bash tool.
crawl this pageextract data from this URLread this web pagescrape this sitewhat does this page say about| Task | Command |
|---|---|
| Fetch as markdown | crwl URL -o md-fit -B ~/.dotfiles/crwl/browser.yml -C ~/.dotfiles/crwl/crawler.yml -f ~/.dotfiles/crwl/filter_pruning.yml |
| Ask a question | crwl URL -q "your question" |
| LLM extraction | crwl URL -j "describe what to extract" -o json |
| CSS extraction | crwl URL -e extract.yml -s schema.json -o json |
| Deep crawl (BFS) | crwl URL --deep-crawl bfs --max-pages 10 -o md-fit |
| Save to file | crwl URL -o md-fit -O output.md |
User config files live at ~/.dotfiles/crwl/:
| File | Purpose |
|---|---|
browser.yml | Headless, random user-agent, 1280x720 viewport |
crawler.yml | Bypass cache, networkidle, magic mode, excludes nav/footer/header/aside |
filter_pruning.yml | Pruning content filter at 0.48 threshold |
Always include these flags unless the user specifies otherwise:
-B ~/.dotfiles/crwl/browser.yml \
-C ~/.dotfiles/crwl/crawler.yml \
-f ~/.dotfiles/crwl/filter_pruning.yml
| Flag | Description |
|---|---|
-o md | Full markdown |
-o md-fit | Filtered/pruned markdown (recommended for LLM consumption) |
-o json | JSON with all metadata |
-o all | Everything (html, markdown, metadata) |
Default to -o md-fit for reading content. Use -o json for structured extraction.
crwl "https://example.com/article" \
-o md-fit \
-B ~/.dotfiles/crwl/browser.yml \
-C ~/.dotfiles/crwl/crawler.yml \
-f ~/.dotfiles/crwl/filter_pruning.yml
crwl "https://example.com" \
-q "What are the main features listed?" \
-B ~/.dotfiles/crwl/browser.yml \
-C ~/.dotfiles/crwl/crawler.yml
crwl "https://example.com/products" \
-j "Extract all products with name, price, and description" \
-o json \
-B ~/.dotfiles/crwl/browser.yml \
-C ~/.dotfiles/crwl/crawler.yml
For schema-based extraction, create a JSON schema file and extraction config:
crwl "https://example.com/products" \
-e extract_llm.yml \
-s schema.json \
-o json \
-B ~/.dotfiles/crwl/browser.yml \
-C ~/.dotfiles/crwl/crawler.yml
crwl "https://docs.example.com" \
--deep-crawl bfs \
--max-pages 20 \
-o md-fit \
-B ~/.dotfiles/crwl/browser.yml \
-C ~/.dotfiles/crwl/crawler.yml \
-f ~/.dotfiles/crwl/filter_pruning.yml
Strategies: bfs (breadth-first), dfs (depth-first), best-first (relevance-based).
# First, create a profile interactively (user must do this manually)
crwl profiles
# Then use it
crwl "https://private-site.com/dashboard" \
-p my-profile \
-o md-fit \
-B ~/.dotfiles/crwl/browser.yml \
-C ~/.dotfiles/crwl/crawler.yml
crwl "https://example.com" \
-c "css_selector=article.main-content" \
-o md-fit \
-B ~/.dotfiles/crwl/browser.yml \
-C ~/.dotfiles/crwl/crawler.yml \
-f ~/.dotfiles/crwl/filter_pruning.yml
Override config file settings with -b (browser) and -c (crawler) flags:
# Show browser window
crwl URL -b "headless=false" -B ~/.dotfiles/crwl/browser.yml -C ~/.dotfiles/crwl/crawler.yml
# Target specific element and wait longer
crwl URL -c "css_selector=#content,page_timeout=60000" -B ~/.dotfiles/crwl/browser.yml -C ~/.dotfiles/crwl/crawler.yml
The default LLM provider for -j and -q is configured globally:
crwl config list # View current settings
crwl config set DEFAULT_LLM_PROVIDER "openai/gpt-4o" # Set provider
crwl config set DEFAULT_LLM_PROVIDER_TOKEN "your-key" # Set API key
| Avoid | Instead |
|---|---|
| Omitting config flags | Always pass -B, -C, -f from ~/.dotfiles/crwl/ |
Using -o md for LLM input | Use -o md-fit — it's pruned and cleaner |
Deep crawl without --max-pages | Always set a limit to avoid runaway crawls |
| Fetching full sites for one page | Use single URL, reserve --deep-crawl for multi-page needs |
Running crwl profiles in Bash | Profile creation is interactive — tell the user to run it manually |
Don't use crwl for GitHub file URLs — use curl with raw URLs instead (faster, no browser needed).
Convert blob URLs to raw:
https://github.com/{owner}/{repo}/blob/{branch}/{path}
→ https://raw.githubusercontent.com/{owner}/{repo}/{branch}/{path}
Example:
# Instead of: crwl "https://github.com/user/repo/blob/main/src/app.py" ...
curl -sSL "https://raw.githubusercontent.com/user/repo/main/src/app.py"
Also works directly for raw.githubusercontent.com and gist.githubusercontent.com/*/raw/ URLs.