| name | anydoc |
| description | Convert Word (.doc/.docx/.docm), PowerPoint (.ppt/.pps/.pot/.pptx/.pptm/.ppsx/.ppsm), Excel (.xls/.xlsx/.xlsm/.xlsb), OpenDocument (.odt/.ods/.odp), RTF, EPUB, CSV, and PDF documents to clean GitHub-Flavored Markdown locally with the Any Doc CLI (npx -y @firecrawl/anydoc@0.2.4): headings, GFM tables, slide structure, and footnotes in one pass. Use when a task needs the contents of an office document, spreadsheet, presentation, ebook, or PDF you cannot read directly. Do not use for generating, editing, or validating documents (use documents), for ebook packaging (use epub). For scanned or image-only PDFs, use hosted OCR only when the user explicitly authorizes whole-document upload; otherwise route to local OCR tooling. |
| license | MIT |
| compatibility | Node.js >= 20 and npx. The pinned CLI is @firecrawl/anydoc@0.2.4; the native binary ships via npm optionalDependencies (no install step, no postinstall, no compilation). Local conversion needs no service or API key. Hosted OCR sends the whole PDF to Firecrawl Parse and may use FIRECRAWL_API_KEY. The first npx run downloads the package once (network required); later runs use the npm cache. |
| metadata | {"skills":"anydoc, markdown, conversion, docx, xlsx, pptx, pdf, odt, ods, odp, rtf, epub, csv, office, documents, firecrawl","tags":"conversion, markdown, office, documents","source":"https://github.com/firecrawl/anydoc"} |
| allowed-tools | Bash Read |
Any Doc — office documents to GitHub-Flavored Markdown
The anydoc skill converts office documents, spreadsheets, presentations,
ebooks, CSV, and text-based PDFs into GitHub-Flavored Markdown using the pinned
Any Doc CLI (@firecrawl/anydoc v0.2.4). One shared document model and one GFM
serializer produce the same logical output across formats. Local conversion runs
without a service, API key, or file upload; hosted OCR is a separate explicit route.
Overview
Load this skill when a task needs the contents of a document the agent cannot
read directly: a Word report to summarize, a spreadsheet to turn into a table,
a slide deck to extract, a CSV to analyze, or an ebook or PDF to quote from.
The skill ships a small Python helper (scripts/anydoc) that wraps the pinned
CLI and adds input pre-validation, friendly error hints, batch conversion, and
--dry-run/--json output. Every recipe in references/workflows.md
also shows the raw npx invocation, so the skill works with or without the
helper.
First-use decision gate
Before invoking anydoc, classify the request:
| If the user needs... | Do this |
|---|
| The contents of an existing supported document | Continue to Command Map. |
| Generation, editing, validation, EPUB packaging, HTML scraping, or password decryption | Stop and use the route in When not to use. |
| A format-fidelity or failure decision | Load the matching row in Reference Routing before choosing a command. |
| A conversion result | Choose stdout, -o, or batch; run it; then follow Verification. |
Hard boundary: local anydoc conversion reads existing supported documents to Markdown without uploading them. Hosted OCR is opt-in only: it sends the whole OCR-required PDF to the configured Parse service. AnyDoc does not create, edit, validate, package, decrypt, or scrape documents.
When to use
- Convert a document to markdown — Word, PowerPoint, Excel, OpenDocument,
RTF, EPUB, CSV, or text-based PDF.
- Extract structure — headings, GFM tables, slide titles, speaker notes
(as blockquotes), and footnotes.