Rust library and CLI that classifies PDFs as text-based or scanned and extracts clean Markdown without OCR by default.
firecrawl/anydoc
Converts Office documents, PDFs, EPUB and CSV into clean GitHub-flavored Markdown via Rust, Node.js, Python and WASM bindings.
Open-source alternative to:Pandoc
Adobe Acrobat
- Stars
- 22,938
- Forks
- 1,478
- Open issues
- 113
- Last commit
- 12 hours ago
What is it?
anydoc is a Rust library that converts Word (.doc, .docx), PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV and PDF files into GitHub-flavored Markdown. Every format is parsed into a shared document model and rendered by one Markdown serializer, so escaping, tables, headings and footnotes come out the same regardless of the input format.
Output preserves headings, inline formatting, nested lists, tables with merged cells, footnotes, speaker notes and equations, which are rendered as LaTeX. Formats are detected from the file contents rather than the extension. Text-based PDFs are converted locally, while scanned pages can be sent to hosted OCR through Firecrawl Parse.
Bindings are available for Node.js, Python, the browser via WebAssembly, and a command-line tool that can be run with npx. The project is MIT licensed.
Key features
- 01Converts Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV and PDF to Markdown.
- 02Parses all formats into one shared model with a single Markdown serializer.
- 03Preserves tables with merged cells, nested lists, footnotes and speaker notes.
- 04Renders equations as LaTeX math blocks and inline expressions.
- 05Detects formats from file contents, so mislabeled files still convert.
- 06Runs text-based PDF conversion locally, with optional hosted OCR for scanned pages.
Use cases
- Feeding mixed office documents into an LLM or RAG pipeline as Markdown.
- Converting documents in a Node.js or Python backend without external services.
- Adding document reading to AI agents through the bundled Agent Skill.
- Running document-to-Markdown conversion in the browser without uploading files.
Topics
FAQ
- What is anydoc?
- Converts Office documents, PDFs, EPUB and CSV into clean GitHub-flavored Markdown via Rust, Node.js, Python and WASM bindings. anydoc is a Rust library that converts Word (.doc, .docx), PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV and PDF files into GitHub-flavored Markdown. Every format is parsed into a shared document model and rendered by one Markdown serializer, so escaping, tables, headings and footnotes come out the same regardless of the input format.
- Is anydoc free to use? What license does it have?
- anydoc is open source under the MIT license. Check the license terms before using it in commercial products.
- Is anydoc still maintained?
- Actively maintained. The last commit to anydoc was on Oct 18, 2026.
- What can I use anydoc for?
- Feeding mixed office documents into an LLM or RAG pipeline as Markdown. Converting documents in a Node.js or Python backend without external services. Adding document reading to AI agents through the bundled Agent Skill. Running document-to-Markdown conversion in the browser without uploading files.
- Where can I get anydoc?
- The source code and installation instructions are on GitHub: https://github.com/firecrawl/anydoc
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Self-hosted API that converts PDFs, images and Office documents into Markdown or structured JSON using OCR and Ollama-hosted LLMs, with optional PII removal.
Local, open-source PDF and document parser in Rust with text extraction, bounding boxes, Markdown/JSON output, and optional OCR.
Open-source Python web crawler that turns any website into clean, LLM-ready Markdown for RAG, AI agents and data pipelines.
An open-source coding and research agent built around a persistent Python REPL, recursive subagents, and self-refining harness state for long-running tasks.
A safe, private runtime that sandboxes autonomous AI agents, enforcing declared policies on files, system calls, and network access.