Best for
- Also use when they say "fetch this page", "pull the content from", "get the page at https://", or reference scraping external websites.
MoizIbnYousaf/marketing-cli/skills/firecrawl/SKILL.md
Web scraping, search, crawling, and browser automation via the Firecrawl CLI. Use this skill whenever the user wants to search the web, find articles, research a topic, look something up online, scrape a webpage, grab content from a URL, extract data from a website, crawl documentation, download a site, or interact with pages that need clicks or logins. Also use when they say "fetch this page", "pull the content from", "get the page at https://", or reference scraping external websites. This pro
Decision brief
Web scraping, search, and browser automation CLI. Returns clean markdown optimized for LLM context windows.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/firecrawl"Inspect the Agent Skill "firecrawl" from https://github.com/MoizIbnYousaf/marketing-cli/blob/f12fbcbe4929584697b309b9096c9427b0cfce8e/skills/firecrawl/SKILL.md at commit f12fbcbe4929584697b309b9096c9427b0cfce8e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Follow this escalation pattern:
Review the “Credit Usage” section in the pinned source before continuing.
Must be installed and authenticated. Check with firecrawl --status.
Firecrawl is the default for public, text-based web content. Route elsewhere when the source is auth-walled, audio/video, or when you already have the text and just need it shorter:
Unless the user specifies to return in context, write results to .firecrawl/ with -o. Add .firecrawl/ to .gitignore. Always quote URLs - shell interprets ? and & as special characters.
Permission review
The documentation asks the agent to run terminal commands or scripts.
Run `firecrawl --help` or `firecrawl <command> --help` for full option details.The documentation includes network, browsing, or remote request actions.
**Search** - No specific URL yet. Find pages, answer questions, discover sources.The documentation includes network, browsing, or remote request actions.
**Map + Scrape** - Large site or need a specific subpage. Use `map --search` to find the right URL, then scrape it.The documentation asks the agent to run terminal commands or scripts.
For detailed command reference, use the individual skill for each command (e.g., `firecrawl-search`, `firecrawl-browser`) or run `firecrawl <command> --help`.Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 84/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 27 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Web scraping, search, and browser automation CLI. Returns clean markdown optimized for LLM context windows.
Run firecrawl --help or firecrawl <command> --help for full option details.
Must be installed and authenticated. Check with firecrawl --status.
🔥 firecrawl cli v1.8.0
● Authenticated via FIRECRAWL_API_KEY
Concurrency: 0/100 jobs (parallel scrape limit)
Credits: 500,000 remaining
If not ready, see rules/install.md. For output handling guidelines, see rules/security.md.
firecrawl search "query" --scrape --limit 3
Follow this escalation pattern:
map --search to find the right URL, then scrape it.| Need | Command | When |
|---|---|---|
| Find pages on a topic | search | No specific URL yet |
| Get a page's content | scrape | Have a URL, page is static or JS-rendered |
| Find URLs within a site | map | Need to locate a specific subpage |
| Bulk extract a site section | crawl | Need many pages (e.g., all /docs/) |
| AI-powered data extraction | agent | Need structured data from complex sites |
| Interact with a page | browser | Content requires clicks, form fills, pagination, or login |
| Download a site to files | download | Save an entire site as local files |
For detailed command reference, use the individual skill for each command (e.g., firecrawl-search, firecrawl-browser) or run firecrawl <command> --help.
Scrape vs browser:
scrape first. It handles static pages and JS-rendered SPAs.browser when you need to interact with a page, such as clicking buttons, filling out forms, navigating through a complex site, infinite scroll, or when scrape fails to grab all the content you need.search instead.Avoid redundant fetches:
search --scrape already fetches full page content. Don't re-scrape those URLs..firecrawl/ for existing data before fetching again.Firecrawl is the default for public, text-based web content. Route elsewhere when the source is auth-walled, audio/video, or when you already have the text and just need it shorter:
| Situation | Use instead | Why |
|---|---|---|
X / Twitter post, thread, article, or /bookmarks | mktg-x skill | Twitter serves a degraded logged-out page to unauthenticated clients. mktg-x uses stored MKTG_X_AUTH_TOKEN to fetch the real content. Firecrawl will return a stub. |
| YouTube / podcast / TikTok / any audio or video URL | mktg transcribe <url> | Firecrawl returns the page chrome (title, description), not the spoken content. mktg transcribe runs the yt-dlp → ffmpeg → whisper.cpp pipeline and returns the full transcript. |
| Fetched page is too long to ideate on | Chain into summarize after the firecrawl call | Firecrawl is the fetcher, summarize is the compressor. firecrawl scrape <url> -o page.md && cat page.md | summarize --tldr is the canonical pattern — don't re-fetch or ask firecrawl to summarize. |
Escalation rule of thumb: if a human would need to log in, press play, or skim-and-condense to get value from the source, firecrawl alone is the wrong tool.
Unless the user specifies to return in context, write results to .firecrawl/ with -o. Add .firecrawl/ to .gitignore. Always quote URLs - shell interprets ? and & as special characters.
firecrawl search "react hooks" -o .firecrawl/search-react-hooks.json --json
firecrawl scrape "<url>" -o .firecrawl/page.md
Naming conventions:
.firecrawl/search-{query}.json
.firecrawl/search-{query}-scraped.json
.firecrawl/{site}-{path}.md
Never read entire output files at once. Use grep, head, or incremental reads:
wc -l .firecrawl/file.md && head -50 .firecrawl/file.md
grep -n "keyword" .firecrawl/file.md
Single format outputs raw content. Multiple formats (e.g., --format markdown,links) output JSON.
These patterns are useful when working with file-based output (-o flag) for complex tasks:
# Extract URLs from search
jq -r '.data.web[].url' .firecrawl/search.json
# Get titles and URLs
jq -r '.data.web[] | "\(.title): \(.url)"' .firecrawl/search.json
Run independent operations in parallel. Check firecrawl --status for concurrency limit:
firecrawl scrape "<url-1>" -o .firecrawl/1.md &
firecrawl scrape "<url-2>" -o .firecrawl/2.md &
firecrawl scrape "<url-3>" -o .firecrawl/3.md &
wait
For browser, launch separate sessions for independent tasks and operate them in parallel via --session <id>.
firecrawl credit-usage
firecrawl credit-usage --json --pretty -o .firecrawl/credits.json
Alternatives
MoizIbnYousaf/marketing-cli
Build applications and agents with Exa's API Platform: search, contents, answer, context, Agent API, monitors, websets, OpenAI-compatible endpoints, and exa-py / exa-js. Use when choosing Exa endpoints, writing Exa API calls, integrating semantic web search or research into products, or debugging Exa request shapes. Load references/ on demand for endpoint details.
K-Dense-AI/scientific-agent-skills
Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.
anthropics/skills
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
Jeffallan/claude-skills
Reverse-engineering specialist that extracts specifications from existing codebases. Use when working with legacy or undocumented systems, inherited projects, or old codebases with no documentation. Invoke to map code dependencies, generate API documentation from source, identify undocumented business logic, figure out what code does, or create architecture documentation from implementation. Trigger phrases: reverse engineer, old codebase, no docs, no documentation, figure out how this works, in