Install anydoc - Six Ways to Convert Documents to Markdown
Pick the integration that fits your toolchain. Every channel below is an official release (crates.io / npm / PyPI) — safe to use.
Prefer not to install? Convert in your browser
No setup needed — drop a document in, get Markdown out instantly. Everything runs locally.
cargo add anydoc, then anydoc::to_markdown("report.docx")? — results in milliseconds.
npm install @firecrawl/anydoc — TypeScript types included, runs on the libuv thread pool without blocking the event loop.
pip install firecrawl-anydoc — releases the GIL during conversion, plays well with asyncio and threads.
npm install @firecrawl/anydoc-wasm — converts locally in the browser; files never leave the device.
npx @firecrawl/anydoc report.docx prints Markdown directly, and it can read from stdin.
npx skills add firecrawl/anydoc — lets Claude Code / Codex / Cursor read your office documents directly.
Before you install
- Only use official releases (crates.io / npm / PyPI / skills.sh). Avoid unofficial mirrors or third-party downloads.
- Node.js needs Node ^18 or newer; the Rust crate works on stable toolchains; the WASM package needs no server at all.
- For the Agent Skill, your AI coding tool must support the skills protocol (Claude Code, Codex, Cursor, etc.).
Hit a snag? Check these common questions.
How do I convert my first document?
The CLI is the fastest path: npx @firecrawl/anydoc report.docx prints to stdout, npx @firecrawl/anydoc slides.pptx -o slides.md writes to a file, and npx @firecrawl/anydoc - --format csv < data.csv reads from stdin. Full walkthrough in the getting started guide.
How do I use it in Node.js?
import { toMarkdown } from '@firecrawl/anydoc'
const markdown = await toMarkdown('report.docx')The complete API is in the API quick reference.
How do I use it in Python?
import anydoc
markdown = anydoc.to_markdown("report.docx")The complete API is in the API quick reference.
How do I use the WASM build in the browser?
import init, { toMarkdownBytes } from '@firecrawl/anydoc-wasm'
await init()
const markdown = toMarkdownBytes(bytes)The converter on this very site is built with this package. See convert online.
Which formats can it convert?
14 formats: Word (.doc/.docx/.docm), PowerPoint (.ppt/.pptx/.pptm/.pps/.ppsx/.ppsm/.pot), Excel (.xls/.xlsx/.xlsm/.xlsb), OpenDocument (.odt/.ods/.odp), RTF, EPUB, CSV, and PDF. Scanned PDFs are not supported (they need OCR) and return an Unsupported error.
How fast is conversion?
Official benchmark: 4.4ms median conversion time, full coverage of 100 real documents across 14 formats, and an overall score of 81. See the benchmark.