Skip to content

anydoc

Converts Word, PowerPoint, Excel, PDF and other documents into clean Markdown, built in Rust.

Stars
23.3k
Forks
1.5k
Licence
MIT
Language
Rust
Last update
13 days ago
Type
Library

What it is

anydoc is a library that reads office and document files such as Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV and PDF and turns them into GitHub-flavored Markdown. The README says it is written in Rust with bindings for Node.js, Python and the browser via WebAssembly, and it can also be used as a command-line tool. It is built by Firecrawl, and the README describes its output as LLM-ready Markdown.

  • Convert a .docx report to Markdown from the command line with npx @firecrawl/anydoc report.docx
  • Turn an Excel or CSV file into Markdown inside a Node.js or Python script
  • Give an AI agent the ability to read office documents using the included Agent Skill
  • Convert a PDF with a text layer locally without an OCR service
  • Convert documents in the browser using the WebAssembly demo

Great for

  • Developers who need document text in Markdown for an app or pipeline
  • People building AI agents that must read office files
  • Teams converting many Word or PowerPoint files into one consistent format
  • Anyone who wants to convert files locally in the browser without uploading them

Not ideal for

  • Scanned or image-only PDFs without OCR, since the README says anydoc does no OCR itself and such pages fail with NeedsOcr unless you opt into the hosted Parse service
  • People who need pixel-perfect layout preservation, which the README does not claim
  • Users who want a point-and-click desktop app; the README focuses on CLI and code bindings
Step-by-step guide: how to use anydocInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Node.js (for npx or the Node.js package) · Python (for the pip package)

    Node.js package

    npm install @firecrawl/anydoc

    Python package

    pip install firecrawl-anydoc

    Rust crate

    cargo add anydoc
  2. 2

    Run it

    • Install the package for your language, or run npx @firecrawl/anydoc report.docx for the CLI
    • Run npx @firecrawl/anydoc report.docx to print Markdown to stdout
    • Add -o output.md to write the result to a file instead
    • For scanned PDFs, add --ocr hosted and set FIRECRAWL_API_KEY if you have one
  3. 3

    Get the most out of it

    • Use the --parse-mode option to choose between automatic, text-only, or OCR-for-every-page PDF handling
    • Use toDocument or to_document to access embedded image bytes and the document model
    • Install the Agent Skill with npx skills add firecrawl/anydoc so an agent can convert documents
    • Pass a format name such as csv when the file has no signature, as the README advises

Downloads

Strengths

  • The README says one shared document model and serializer give the same Markdown style across formats
  • Content-based format detection reads the file bytes, so mislabeled files can still convert
  • Runs locally for text-based files, with no ML models or external services needed for that path

Trade-offs

  • Scanned pages need the hosted Parse service for OCR, which sends the whole document off the machine and may need an API key for higher limits
  • The README reports performance numbers and a benchmark against other converters, but the benchmark table is cut off in the provided text, so comparisons cannot be verified here
  • Output is Markdown, so complex layouts and formatting may be simplified

How it compares

ProjectStarsTypeLevelUpdatedBest for
anydoc (this)23.3kLibrarybeginner13 days agoDevelopers who need document text in Markdown for an app or pipeline
markitdown193kLibrarybeginner8 days agoDevelopers building LLM or text analysis pipelines that need document text
docling70kLibrarybeginner5 days agoPython developers building retrieval or RAG pipelines over PDFs and office files

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.