Instala la CLI de Firecrawl de forma global con npm:
# Instalar globalmente con npm
npm install -g firecrawl-cli
Si lo estás usando en un agente de IA como Claude Code, puedes instalar la habilidad de Firecrawl a continuación y el agente podrá configurarla por ti.
npx skills add firecrawl/cli
Después de instalar la habilidad, reinicia Claude Code para que detecte la nueva habilidad.
Antes de usar la CLI, primero debes autenticarte con tu clave de API de Firecrawl.
# Inicio de sesión interactivo (abre el navegador o solicita la clave API)
firecrawl login
# Inicio de sesión con autenticación por navegador (recomendado para agentes)
firecrawl login --browser
# Inicio de sesión con clave API directamente
firecrawl login --api-key fc-YOUR-API-KEY
# O establecer mediante variable de entorno
export FIRECRAWL_API_KEY=fc-YOUR-API-KEY
# Ver configuración actual y estado de autenticación
firecrawl view-config
# Borrar credenciales almacenadas
firecrawl logout
Autohospedado / Desarrollo local
Para instancias de Firecrawl autohospedadas o desarrollo local, usa la opción --api-url:
# Usa una instancia local de Firecrawl (no requiere clave de API)
firecrawl --api-url http://localhost:3002 scrape https://example.com
# Or set via environment variable
export FIRECRAWL_API_URL=http://localhost:3002
firecrawl scrape https://example.com
# Configure and persist the custom API URL
firecrawl config --api-url http://localhost:3002
Cuando uses una URL de la API personalizada (cualquier valor distinto de https://api.firecrawl.dev), la autenticación con clave de API se omite automáticamente, lo que te permite usar instancias locales sin una clave de API.
Comprueba la instalación, la autenticación y consulta los límites de velocidad (rate limits):
Genera la salida cuando esté listo:
🔥 firecrawl cli v1.1.1
● Authenticated via FIRECRAWL_API_KEY
Concurrency: 0/100 jobs (parallel scrape limit)
Credits: 500,000 remaining
- Concurrencia: Máximo de tareas en paralelo. Ejecuta operaciones en paralelo lo más cerca posible de este límite, pero sin superarlo.
- Créditos: Créditos de API restantes. Cada operación de scrape/crawl consume créditos.
Extrae el contenido de una única URL en distintos formatos.
Usa --only-main-content para obtener una salida limpia sin navegación, pies de página ni anuncios. Se recomienda para la mayoría de los casos de uso en los que solo quieres el artículo o el contenido principal de la página.
# Extraer datos de una URL (predeterminado: salida en markdown)
firecrawl https://example.com
# O usar el comando explícito de scrape
firecrawl scrape https://example.com
# Recomendado: usar --only-main-content para obtener una salida limpia sin navegación/pie de página
firecrawl https://example.com --only-main-content
# Obtener salida HTML
firecrawl https://example.com --html
# Múltiples formatos (devuelve JSON)
firecrawl https://example.com --format markdown,links
# Obtener imágenes de una página
firecrawl https://example.com --format images
# Obtener un resumen del contenido de la página
firecrawl https://example.com --format summary
# Rastrear cambios en una página
firecrawl https://example.com --format changeTracking
# Formatos disponibles: markdown, html, rawHtml, links, screenshot, json, images, summary, changeTracking, attributes, branding
# Extraer solo el contenido principal (elimina navegación y pies de página)
firecrawl https://example.com --only-main-content
# Wait for JavaScript rendering
firecrawl https://example.com --wait-for 3000
# Take a screenshot
firecrawl https://example.com --screenshot
# Include/exclude specific HTML tags
firecrawl https://example.com --include-tags article,main
firecrawl https://example.com --exclude-tags nav,footer
# Save output to file
firecrawl https://example.com -o output.md
# Pretty print JSON output
firecrawl https://example.com --format markdown,links --pretty
# Force JSON output even with single format
firecrawl https://example.com --json
# Show request timing information
firecrawl https://example.com --timing
Opciones disponibles:
| Opción | Alias | Descripción |
|---|
--url <url> | -u | URL para hacer scrape (alternativa al argumento posicional) |
--format <formats> | -f | Formatos de salida (separados por comas): markdown, html, rawHtml, links, screenshot, json, images, summary, seguimientoDeCambios, attributes, branding |
--html | -H | Atajo para --format html |
--only-main-content | | Extraer solo el contenido principal |
--wait-for <ms> | | Tiempo de espera en milisegundos para el renderizado de JS |
--screenshot | | Tomar una captura de pantalla |
--include-tags <tags> | | Etiquetas HTML a incluir (separadas por comas) |
--exclude-tags <tags> | | Etiquetas HTML a excluir (separadas por comas) |
--output <path> | -o | Guardar la salida en un archivo |
--json | | Forzar salida JSON incluso con un solo formato |
--pretty | | Imprimir el JSON de salida con formato |
--timing | | Mostrar el tiempo de la solicitud y otra información útil |
Busca en la web y, opcionalmente, hace scraping de los resultados.
# Buscar en la web
firecrawl search "web scraping tutorials"
# Limitar resultados
firecrawl search "AI news" --limit 10
# Imprimir resultados con formato
firecrawl search "machine learning" --pretty
# Search specific sources
firecrawl search "AI" --sources web,news,images
# Search with category filters
firecrawl search "react hooks" --categories github
firecrawl search "machine learning" --categories research,pdf
# Time-based filtering
firecrawl search "tech news" --tbs qdr:h # Last hour
firecrawl search "tech news" --tbs qdr:d # Last day
firecrawl search "tech news" --tbs qdr:w # Última semana
firecrawl search "tech news" --tbs qdr:m # Last month
firecrawl search "tech news" --tbs qdr:y # Last year
# Location-based search
firecrawl search "restaurants" --location "Berlin,Germany" --country DE
# Search and scrape results
firecrawl search "documentation" --scrape --scrape-formats markdown
# Save to file
firecrawl search "firecrawl" --pretty -o results.json
Opciones disponibles:
| Opción | Descripción |
|---|
--limit <number> | Número máximo de resultados (predeterminado: 5, máximo: 100) |
--sources <sources> | Fuentes de búsqueda: web, images, news (separadas por comas) |
--categories <categories> | Filtrar por categoría: github, research, pdf (separadas por comas) |
--tbs <value> | Filtro de tiempo: qdr:h (hora), qdr:d (día), qdr:w (semana), qdr:m (mes), qdr:y (año) |
--location <location> | Segmentación geográfica (p. ej., “Berlin,Germany”) |
--country <code> | Código de país ISO (predeterminado: US) |
--timeout <ms> | Tiempo de espera en milisegundos (predeterminado: 60000) |
--ignore-invalid-urls | Excluir URLs no válidas para otros endpoints de Firecrawl |
--scrape | Extraer resultados de búsqueda |
--scrape-formats <formats> | formatos para contenido extraído (predeterminado: markdown) |
--only-main-content | Incluir solo el contenido principal al extraer (predeterminado: true) |
--json | Salida como JSON |
--output <path> | Guardar la salida en un archivo |
--pretty | Imprimir salida JSON con formato legible |
Obtén rápidamente todas las URL de un sitio web.
# Descubre todas las URLs de un sitio web
firecrawl map https://example.com
# Output as JSON
firecrawl map https://example.com --json
# Limit number of URLs
firecrawl map https://example.com --limit 500
# Filter URLs by search query
firecrawl map https://example.com --search "blog"
# Include subdomains
firecrawl map https://example.com --include-subdomains
# Control sitemap usage
firecrawl map https://example.com --sitemap include # Use sitemap
firecrawl map https://example.com --sitemap skip # Skip sitemap
firecrawl map https://example.com --sitemap only # Solo usar sitemap
# Ignore query parameters (dedupe URLs)
firecrawl map https://example.com --ignore-query-parameters
# Wait for map to complete with timeout
firecrawl map https://example.com --wait --timeout 60
# Save to file
firecrawl map https://example.com -o urls.txt
firecrawl map https://example.com --json --pretty -o urls.json
Opciones disponibles:
| Opción | Descripción |
|---|
--url <url> | URL que se va a mapear (alternativa al argumento posicional) |
--limit <number> | Número máximo de URLs a descubrir |
--search <query> | Filtrar URLs por consulta de búsqueda |
--sitemap <mode> | Manejo del sitemap: include, skip, only |
--include-subdomains | Incluir subdominios |
--ignore-query-parameters | Tratar URLs con distintos parámetros de consulta como la misma |
--wait | Esperar a que finalice el mapeo |
--timeout <seconds> | Tiempo de espera en segundos |
--json | Salida en formato JSON |
--output <path> | Guardar la salida en un archivo |
--pretty | Imprimir la salida JSON con formato legible |
Rastrea todo un sitio web a partir de una URL.
# Iniciar un rastreo (devuelve el ID del trabajo inmediatamente)
firecrawl crawl https://example.com
# Wait for crawl to complete
firecrawl crawl https://example.com --wait
# Wait with progress indicator
firecrawl crawl https://example.com --wait --progress
Consultar el estado del rastreo
# Verificar estado del crawl usando el ID del trabajo
firecrawl crawl <job-id>
# Ejemplo con un ID de trabajo real
firecrawl crawl 550e8400-e29b-41d4-a716-446655440000
# Limit crawl depth and pages
firecrawl crawl https://example.com --limit 100 --max-depth 3 --wait
# Include only specific paths
firecrawl crawl https://example.com --include-paths /blog,/docs --wait
# Exclude specific paths
firecrawl crawl https://example.com --exclude-paths /admin,/login --wait
# Include subdomains
firecrawl crawl https://example.com --allow-subdomains --wait
# Crawl entire domain
firecrawl crawl https://example.com --crawl-entire-domain --wait
# Rate limiting
firecrawl crawl https://example.com --delay 1000 --max-concurrency 2 --wait
# Intervalo de consulta y tiempo de espera personalizados
firecrawl crawl https://example.com --wait --poll-interval 10 --timeout 300
# Save results to file
firecrawl crawl https://example.com --wait --pretty -o results.json
Opciones disponibles:
| Opción | Descripción |
|---|
--url <url> | URL a rastrear (alternativa al argumento posicional) |
--wait | Esperar a que el rastreo termine |
--progress | Mostrar indicador de progreso mientras se espera |
--poll-interval <seconds> | Intervalo de sondeo (por defecto: 5) |
--timeout <seconds> | Tiempo máximo de espera |
--status | Consultar el estado de un trabajo de rastreo existente |
--limit <number> | Número máximo de páginas a rastrear |
--max-depth <number> | Profundidad máxima de rastreo |
--include-paths <paths> | Rutas a incluir (separadas por comas) |
--exclude-paths <paths> | Rutas a excluir (separadas por comas) |
--sitemap <mode> | Manejo del sitemap: include, skip, only |
--allow-subdomains | Incluir subdominios |
--allow-external-links | Seguir enlaces externos |
--crawl-entire-domain | Rastrear todo el dominio |
--ignore-query-parameters | Considerar URLs con distintos parámetros como iguales |
--delay <ms> | Retraso entre solicitudes |
--max-concurrency <n> | Número máximo de solicitudes concurrentes |
--output <path> | Guardar el resultado en un archivo |
--pretty | Imprimir la salida JSON con formato legible |
Busca y recopila datos de la web usando indicaciones en lenguaje natural.
# Basic usage - URLs are optional
firecrawl agent "Encuentra las 5 principales startups de IA y sus montos de financiamiento" --wait
# Focus on specific URLs
firecrawl agent "Compare pricing plans" --urls https://slack.com/pricing,https://teams.microsoft.com/pricing --wait
# Use a schema for structured output
firecrawl agent "Get company information" --urls https://example.com --schema '{"name": "string", "founded": "number"}' --wait
# Use schema from a file
firecrawl agent "Get product details" --urls https://example.com --schema-file schema.json --wait
# Use Spark 1 Pro for higher accuracy
firecrawl agent "Competitive analysis across multiple domains" --model spark-1-pro --wait
# Set max credits to limit costs
firecrawl agent "Gather contact information from company websites" --max-credits 100 --wait
# Check status of an existing job
firecrawl agent <job-id> --status
# Custom polling interval and timeout
firecrawl agent "Summarize recent blog posts" --wait --poll-interval 10 --timeout 300
# Save output to file
firecrawl agent "Encontrar información de precios" --urls https://example.com --wait -o pricing.json --pretty
Opciones disponibles:
| Opción | Descripción |
|---|
--urls <urls> | Lista opcional de URL en las que enfocar el agente (separadas por comas) |
--model <model> | Modelo a utilizar: spark-1-mini (predeterminado, 60% más barato) o spark-1-pro (mayor precisión) |
--schema <json> | Esquema JSON para salida estructurada (cadena JSON en línea) |
--schema-file <path> | Ruta al archivo de esquema JSON para salida estructurada |
--max-credits <number> | Créditos máximos que se pueden gastar (el trabajo falla si se alcanza el límite) |
--status | Verificar el estado de un trabajo de agente existente |
--wait | Esperar a que el agente termine antes de devolver los resultados |
--poll-interval <seconds> | Intervalo de sondeo mientras se espera (predeterminado: 5) |
--timeout <seconds> | Tiempo máximo de espera (predeterminado: sin límite) |
--output <path> | Guardar la salida en un archivo |
--json | Salida en formato JSON |
--pretty | Imprimir salida JSON con formato legible |
Consulta el saldo y el uso de créditos de tu equipo.
# View credit usage
firecrawl credit-usage
# Salida en formato JSON
firecrawl credit-usage --json --pretty
Mostrar la versión de la CLI.
firecrawl version
# o
firecrawl --version
Estas opciones están disponibles para todos los comandos:
| Opción | Abrev. | Descripción |
|---|
--status | | Muestra la versión, el estado de autenticación, la concurrencia y los créditos |
--api-key <key> | -k | Sobrescribe la clave de API almacenada para este comando |
--api-url <url> | | Usa una URL de API personalizada (para entornos autoalojados/desarrollo local) |
--help | -h | Muestra la ayuda para un comando |
--version | -V | Muestra la versión de la CLI |
La CLI envía la salida a stdout de forma predeterminada, lo que facilita usarla en pipes o redirigirla:
# Canalizar markdown a otro comando
firecrawl https://example.com | head -50
# Redirigir a un archivo
firecrawl https://example.com > output.md
# Guardar JSON con formato legible
firecrawl https://example.com --format markdown,links --pretty -o data.json
- Un solo formato: Devuelve contenido sin procesar (texto markdown, HTML, etc.)
- Varios formatos: Devuelve JSON con todos los datos solicitados
# Salida de markdown sin procesar
firecrawl https://example.com --format markdown
# Salida JSON con múltiples formatos
firecrawl https://example.com --format markdown,links
# Obtener contenido markdown de una URL (usar --only-main-content para una salida limpia)
firecrawl https://docs.firecrawl.dev --only-main-content
# Get HTML content
firecrawl https://example.com --html -o page.html
Rastreo completo del sitio web
# Rastrear un sitio de documentación con límites
firecrawl crawl https://docs.example.com --limit 50 --max-depth 2 --wait --progress -o docs.json
Descubrimiento de sitios web
# Buscar todas las publicaciones del blog
firecrawl map https://example.com --search "blog" -o blog-urls.txt
Flujo de trabajo de investigación
# Buscar y extraer resultados para investigación
firecrawl search "machine learning best practices 2024" --scrape --scrape-formats markdown --pretty
# URLs are optional
firecrawl agent "Encuentra las 5 principales startups de IA y sus montos de financiación" --wait
# Focus on specific URLs
firecrawl agent "Compare pricing plans" --urls https://slack.com/pricing,https://teams.microsoft.com/pricing --wait
# Extract URLs from search results
jq -r '.data.web[].url' search-results.json
# Obtener títulos de resultados de búsqueda
jq -r '.data.web[] | "\(.title): \(.url)"' search-results.json
# Extract links and process with jq
firecrawl https://example.com --format links | jq '.links[].url'
# Count URLs from map
firecrawl map https://example.com | wc -l
La CLI recopila datos de uso anónimos durante la autenticación para ayudar a mejorar el producto:
- Versión de la CLI, sistema operativo y versión de Node.js
- Detección de herramientas de desarrollo (por ejemplo, Cursor, VS Code, Claude Code)
No se recopilan datos de comandos, URL ni contenido de archivos a través de la CLI.
Para desactivar la telemetría, configura la siguiente variable de entorno:
export FIRECRAWL_NO_TELEMETRY=1
La CLI y la Skill de Firecrawl son de código abierto y están disponibles en GitHub: firecrawl/cli