convert-documents-to-markdown
- Use it when:
- The agent needs the contents of an office document, spreadsheet, presentation, ebook or PDF it can't read directly.
- It does:
- Runs npx @firecrawl/anydoc on the file, which detects the format from the file's content.
- You get:
- GitHub-flavored Markdown, in the chat or written to a file the agent reads in parts.
- Scanned pages:
- anydoc does no OCR, so the agent reruns with --ocr hosted, which sends the document to Firecrawl Parse.
- Needs:
- Node.js 20 or later; no install or signup, and an API key only for higher OCR limits.
- In code:
- Inside a Node, Python or Rust project it uses the anydoc library instead of the CLI.
When local conversion can't read scanned or image-only pages, the agent reruns with hosted OCR, which uploads the document to Firecrawl Parse.
TL;DR
A short guide to anydoc, Firecrawl's document-to-Markdown converter. The agent runs it through npx, so nothing is installed, and gets Markdown on stdout; for a large document it writes to a file and reads only the parts it needs instead of pulling everything into context. It handles Word, PowerPoint and Excel files, old and new, their OpenDocument equivalents, RTF, EPUB, CSV and PDF. The format is detected from the file itself; the agent names it only for CSV on stdin or a missing or wrong extension. Exit codes tell it what happened: success, a document that couldn't be converted, a usage error, or PDF pages that need OCR. The CLI never prompts. Scanned and image-only pages can't be read locally, so the agent reruns with --ocr hosted, which uploads the document to Firecrawl Parse; no signup is needed, and a Firecrawl API key raises the limits.
Summarizes the skill at e7178e0.
npx skills add https://github.com/firecrawl/anydoc --skill convert-documents-to-markdown skills.sh pageSource on GitHubAll skills from firecrawl/anydoc
- Total Downloads
- 13,300 on skills.sh, Nov 9, 2026
- Repo stars
- 23,441 firecrawl/anydoc
- First seen
- Aug 4, 2026 on skills.sh
Weekly values
| Week to | Installs |
|---|---|
| Sep 21 | 694 |
| Sep 28 | 694 |
| Oct 5 | 848 |
| Oct 12 | 790 |
| Oct 19 | 667 |
| Oct 26 | 522 |
| Nov 2 | 382 |
| Nov 9 | 349 |
| Category |
Office files, notes and suites like Lark and Google Workspace. |
|---|---|
| Type |
Operates a CLI, API, app or bundled script to get something done. |
| Effect |
Its own steps change something outside your machine: post, send, deploy, provision, file issues, drive a website, or upload data to a service. |
| Needs |
A specific command-line tool or desktop app must be installed, such as gh, agent-browser, LibreOffice, Obsidian or a vendor CLI. |
| Publisher |
A verified publisher on skills.sh, or the company or maintainer behind the product the skill operates. |
| Topics | |
| Stack |
SKILL.md
From firecrawl/anydoc at e7178e0. Checked daily, last changed Nov 6, 2026.
Frontmatter
name: convert-documents-to-markdown
description: Convert Word (.doc, .docx), PowerPoint (.ppt, .pptx), Excel (.xls, .xlsx), OpenDocument (.odt, .ods, .odp), RTF, EPUB, CSV, and PDF files to GitHub-Flavored Markdown. Use when a task needs the contents of an office document, spreadsheet, presentation, ebook, or PDF you cannot read directly.
license: MIT
metadata:
author: firecrawlConvert documents to Markdown
Run the anydoc CLI. It needs Node 20+ and no install:
npx -y @firecrawl/anydoc <file> # Markdown to stdout
npx -y @firecrawl/anydoc <file> -o out.md # write to a file
npx -y @firecrawl/anydoc - --format csv < f # read stdin
Rules:
- Supported inputs:
.doc,.docx,.docm,.odt,.rtf,.epub,.pdf,.ppt,.pps,.pot,.pptx,.pptm,.ppsx,.ppsm,.odp,.xls,.xlsx,.xlsm,.xlsb,.ods,.csv. - The format is detected from the file content. Pass
--format <name>only when detection cannot work: CSV from stdin, or a missing or wrong extension. - Exit codes: 0 success, 1 the document could not be converted, 2 usage error, 3 pages of a PDF need OCR. Failures print one
anydoc: <message>line to stderr. The CLI never prompts. - For a large document, write to a file with
-oand read the parts you need instead of streaming everything into context. - Scanned and image-only pages need OCR, which anydoc does not do, so the document exits 3. Rerun with
--ocr hostedto send it to Firecrawl Parse. No signup needed. Pass--api-keyor setFIRECRAWL_API_KEYfor higher limits. - Inside a Node, Python, or Rust codebase, prefer the library over shelling out:
@firecrawl/anydocon npm,firecrawl-anydocon PyPI,anydocon crates.io. Each exposes the sameto_markdown/toMarkdownAPI.