Qué es AnyDoc, la herramienta de Firecrawl para convertir cualquier documento a Markdown
Respuesta corta: AnyDoc es una librería open source de Firecrawl, escrita en Rust y con licencia MIT, que convierte documentos de Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV y PDF con capa de texto a Markdown limpio para LLM. Tiene bindings para Node.js, Python y navegador, y no hace OCR local: desde la versión 0.2.4 indica qué páginas escaneadas lo necesitan.
AnyDoc es una librería open source escrita en Rust que Firecrawl publicó el 4 de agosto de 2026 y que convierte documentos de oficina (Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV y PDFs con capa de texto) a Markdown limpio, con bindings para Node.js, Python y navegador, y licencia MIT. No hace OCR en tu máquina. Eso sí, desde la versión 0.2.4 (27 de agosto de 2026) te dice exactamente qué páginas de un PDF son imágenes escaneadas en lugar de saltárselas sin avisar, y puede mandar solo esos archivos al OCR alojado de Firecrawl si tú lo activas. Su trabajo es tomar un archivo de oficina real y devolver texto estructurado que un LLM pueda leer sin ruido. A 7 de octubre de 2026, el repositorio en GitHub supera las 22.000 estrellas.
Si trabajas con RAG o con agentes que leen contratos, informes o presentaciones, esto te interesa. También si te ha tocado normalizar una carpeta llena de .docx y .pptx para meterlos en un pipeline. Vamos a lo concreto: qué hace, qué no hace, cómo se instala y cuándo tiene sentido frente a alternativas como LlamaParse o Docling.
¿Qué problema resuelve AnyDoc exactamente?
Cualquiera que haya montado un sistema de recuperación aumentada (RAG) se ha topado con el mismo muro. Los LLMs entienden bien el Markdown y el texto plano, pero el mundo real produce .docx, .pptx, .xlsx, .odt y PDFs con convenciones de formato de hace veinte años. Convertir eso en algo que un modelo pueda indexar sin perder tablas, títulos y listas cuesta más de lo que parece. Cada formato tiene su propio modelo interno de documento, y nadie quiere escribir un parser por formato dos veces.
Firecrawl, la empresa conocida por su API para convertir webs en datos limpios para agentes, aplicó la misma idea a los documentos de escritorio. AnyDoc detecta el formato por los marcadores del contenido y no por la extensión, así que un archivo mal etiquetado se sigue reconociendo. Todo pasa por un único modelo de documento compartido y sale como Markdown con sabor GitHub (GFM), con tablas, notas al pie, encabezados y listas coherentes entre formatos. Es esa pieza de infraestructura poco vistosa que todo pipeline de IA documental acaba necesitando. Hasta ahora, cada equipo la montaba a mano con python-docx, openpyxl y parches.
¿Cómo funciona por dentro?
El núcleo está escrito en Rust, y eso explica buena parte de su velocidad: Firecrawl publica una mediana de 4,4 ms por documento en su propio benchmark. Sobre ese núcleo hay bindings oficiales para:
- Node.js / TypeScript, paquete
@firecrawl/anydocen npm. - Python, paquete
firecrawl-anydocen PyPI, que se importa comoanydoc. - Navegador, vía WebAssembly (
@firecrawl/anydoc-wasm). - CLI, un binario ejecutable incluido en el mismo paquete de npm.
- Rust nativo, como crate (
cargo add anydoc), si quieres integrarlo en tu propio binario sin pasar por Node ni Python.
Lo más interesante desde el punto de vista de ingeniería es ese modelo de documento único. Una tabla de Excel y una tabla dentro de un Word salen representadas igual en el Markdown. Ningún conversor decide por su cuenta cómo serializar una tabla.
¿Qué formatos soporta y cuáles no?
Estas son las extensiones que lista PyPI para la versión 0.2.4:
- Word:
.doc,.docx,.docm. - PowerPoint:
.ppt,.pps,.pot,.pptx,.pptm,.ppsx,.ppsm. - Excel:
.xls,.xlsx,.xlsm,.xlsb. - OpenDocument:
.odt,.ods,.odp. - RTF:
.rtf. - EPUB:
.epub. - CSV:
.csv. - PDF:
.pdf, siempre que las páginas tengan capa de texto real. AnyDoc los procesa con pdf-inspector, el motor de PDF de Firecrawl.
El propio post de lanzamiento de Firecrawl (6 de agosto de 2026) habla de 14 formatos en un solo binario, más los PDFs de texto que gestiona pdf-inspector.
Lo que AnyDoc sigue sin hacer en local es OCR, el paso que lee texto dentro de una imagen. Un PDF escaneado o la foto de un contrato no tienen texto que extraer, solo píxeles. Lo que cambió en la versión 0.2.4 es cómo trata ese caso. Antes se saltaba las páginas escaneadas sin decirte nada. Ahora la conversión se detiene y nombra las páginas que necesitan OCR: NeedsOcrError en Python, un error needsOcr en Node y en la versión para navegador, y código de salida 3 en el CLI. Si lo activas con ocr="hosted" (o --ocr hosted en el CLI), AnyDoc manda a Firecrawl Parse, la API de documentos alojada de Firecrawl, solo los PDFs que fallan así. No necesitas cuenta, y con una FIRECRAWL_API_KEY subes los límites. Dicho de otra forma: AnyDoc lee documentos digitales, pero no digitaliza papel en tu máquina.
¿Cómo se instala y se usa?
Como CLI, sin instalación previa (npx descarga el binario precompilado la primera vez):
npx @firecrawl/anydoc report.docx
npx @firecrawl/anydoc slides.pptx -o slides.md
cat data.csv | npx @firecrawl/anydoc - --format csv
npx @firecrawl/anydoc scan.pdf --ocr hostedLa última línea es la que activa el OCR alojado para páginas escaneadas. Sin esa opción, nada sale de tu máquina.
Instalación global si vas a usarlo a diario:
npm install -g @firecrawl/anydocEn Node.js / TypeScript:
import { toMarkdown } from '@firecrawl/anydoc';
const markdown = await toMarkdown('report.docx');En Python, primero instala el paquete. Se instala como firecrawl-anydoc, pero se importa como anydoc:
pip install firecrawl-anydocimport anydoc
markdown = anydoc.to_markdown("report.docx")
# Activar el OCR alojado para PDFs escaneados:
escaneado = anydoc.to_markdown("scan.pdf", ocr="hosted")Y si tu stack ya es Rust puro:
cargo add anydocEl README documenta también toMarkdownBytes() para trabajar con buffers en memoria, útil si el documento llega por HTTP y no quieres tocar disco. Y toDocument() te devuelve el modelo de documento estructurado en lugar del Markdown final, por si necesitas procesarlo antes de escribirlo. En Python son to_markdown_bytes() y to_document().
¿Qué relación tiene con pdf-inspector y con Firecrawl Parse?
Aquí es donde la gente se lía, así que vale la pena aclararlo. Firecrawl presentó AnyDoc y pdf-inspector juntos, en el mismo post de lanzamiento del 6 de agosto de 2026, como dos motores hermanos con tareas separadas. pdf-inspector es la librería Rust para PDF: revisa cada página, extrae el texto cuando lo hay y marca las páginas que necesitan OCR. AnyDoc cubre los formatos de oficina, OpenDocument, RTF, EPUB y CSV, y le pasa los PDFs de texto a pdf-inspector. Los dos motores alimentan Firecrawl Parse (el endpoint /parse), la API alojada que añade modelos de OCR y orquestación por encima.
El intercambio, dicho claro: si corres tú las librerías open source, tienes control total y coste cero por página, pero solo mientras el OCR alojado esté apagado. En cuanto activas ocr="hosted", el documento escaneado se sube a Firecrawl para procesarlo. Para documentos públicos o manuales antiguos no pasa nada. Con contratos confidenciales, piénsalo antes. La página de Parse de Firecrawl indica 1 crédito por página y un plan gratuito de 1.000 créditos al mes (a 7 de octubre de 2026).
¿Cómo se compara con LlamaParse, Docling, Unstructured y MarkItDown?
| Herramienta | Motor / lenguaje | Licencia | Coste | Punto fuerte | Punto débil |
|---|---|---|---|---|---|
| AnyDoc (Firecrawl) | Rust | MIT, open source | Gratis (self-hosted) | Velocidad (mediana 4,4 ms), un solo modelo de documento para todos los formatos | Sin OCR local; las páginas escaneadas lanzan NeedsOcr salvo que actives el OCR alojado |
| pdf-inspector (Firecrawl) | Rust | MIT, open source | Gratis (self-hosted) | Especializado en clasificar y extraer PDF | Solo PDF, no Office |
| LlamaParse (LlamaIndex) | API cloud | Comercial | Por créditos/página (tier "Fast" desde 1 crédito/página) | Muy fuerte en PDFs complejos con tablas densas y layouts difíciles | Coste que escala mal en volumen alto |
| Docling (IBM / LF AI & Data) | Python, open source | Open / Linux Foundation | Gratis (self-hosted), solo cómputo | Calidad de estructura sin pagar por página | Más pesado de desplegar que un binario Rust |
| Unstructured | Librería + API | Apache 2.0 (librería) / comercial (API) | Desde ~10 $/mes por 20K páginas en API | Cobertura de formatos muy amplia, pensado para pipelines RAG | La calidad baja en layouts muy complejos |
| MarkItDown (Microsoft) | Python, open source | Open source | Gratis | Simplicidad, conversión rápida a Markdown | Menos "document AI" que LlamaParse o Docling |
En resumen: si tu cuello de botella es la velocidad y los formatos de oficina (Word, PowerPoint, Excel) y quieres correrlo tú sin pagar por página, AnyDoc es de las opciones más rápidas ahora mismo. ¿Tu problema real son los PDFs escaneados o los layouts imposibles, como tablas anidadas o varias columnas? Entonces te sirve más LlamaParse. También AnyDoc con tu propio OCR, o AnyDoc con el OCR alojado activado, si subir esos archivos es aceptable para ti.
¿Quién está detrás de Firecrawl?
Firecrawl es la empresa detrás de una API muy usada para convertir webs en datos limpios para LLMs (te la explicamos en qué es Firecrawl). Salió de Y Combinator (batch S22, según su propia web). La fundaron Caleb Peffer, Eric Ciarla y Nicolas Silberstein Camara, este último conocido en X como @nickscamara_, la cuenta que anunció AnyDoc. El 19 de agosto de 2025 anunció una Serie A de 14,5 millones de dólares liderada por Nexus Venture Partners. Participaron Y Combinator e inversores ángel como Tobias Lütke (fundador de Shopify) y Abhinav Asthana (fundador de Postman). El 22 de septiembre de 2026 anunció una Serie B de 75 millones de dólares liderada por Smash Capital. AnyDoc no es un experimento de fin de semana. Es infraestructura abierta que también mueve la API de documentos de pago de Firecrawl.
¿Para quién es AnyDoc y para quién no?
Te encaja si ya construyes pipelines de IA en Node, Python o Rust y necesitas convertir documentos de oficina a Markdown sin depender de una API de pago. Piensa en sistemas RAG internos, herramientas de análisis documental o agentes que procesan contratos e informes que llegan en Word o Excel. También tiene sentido si ya usas Firecrawl para scraping web y quieres el mismo criterio de "contexto limpio para el LLM" aplicado a archivos locales.
Los PDFs escaneados ya no son un callejón sin salida, sino una decisión que tomas tú. Si tu montaña de documentos son facturas fotografiadas o contratos en papel digitalizados, AnyDoc al menos te dirá qué páginas no pudo leer. A partir de ahí tienes dos opciones honestas. Activas el OCR alojado y aceptas que esos archivos van a Firecrawl, o lo mantienes todo en local y combinas AnyDoc con Tesseract o con un modelo de visión que corras tú. Tampoco es la mejor opción para layouts extremadamente complejos, como revistas maquetadas o PDFs a varias columnas. Ahí las herramientas orientadas a visión, como LlamaParse, siguen ganando en calidad, aunque cuesten más por página. Y si tu equipo no toca Node, Python ni Rust y necesita algo sin código, esto no es para ti: es una librería para desarrolladores, no un SaaS con interfaz.
El riesgo real es su juventud. El proyecto tiene unos dos meses y avanza rápido: PyPI registra 14 versiones entre el 4 y el 27 de agosto de 2026. Antes de meterlo en algo crítico, escribe tus propios tests contra tus documentos reales. No des por hecho que el README cubre todos los casos que te vas a encontrar en producción.
Si te estás formando para trabajar justo en este tipo de infraestructura, desde pipelines de datos para IA hasta RAG y agentes que leen documentos reales, es el terreno de Ingeniería de IA para Desarrolladores de 4Geeks, donde construyes sistemas de IA para producción y no solo demos. Y si lo tuyo es estructurar y explotar esos datos una vez extraídos, Ciencia de Datos y Machine Learning cubre justo esa siguiente capa.
¿Construyes agentes de código que a veces tienen que leer una especificación en Word o PDF antes de escribir una línea? Nuestra comparativa de los mejores agentes de código en 2026 te ayuda a elegir. Este análisis forma parte del hub de herramientas de IA del blog de 4Geeks. Y si dudas entre programas, la comparativa de programas de 4Geeks te deja ver de un vistazo cuál encaja con tu punto de partida.
