AnyDoc - Firecrawl 出品的 14 格式文档转 Markdown 开源库(GitHub / Agent Skill / Rust)
AnyDoc 是 Firecrawl 出品的开源 Rust 库,专门把办公文档转换成干净的 GitHub Flavored Markdown:Word、PowerPoint、Excel、OpenDocument、RTF、EPUB、CSV、PDF 等 14 种格式,统一走一条转换管线,输出风格一致、对 LLM 友好。官方在线版与文档在 anydoc.wiki(姊妹站点)。
- 快:中位数毫秒级完成转换(官方口径 single-digit milliseconds),一份 Word 约 4–5ms;
- 纯本地:纯 Rust 实现、无 ML 模型、无外部服务调用,文件不出设备;
- 开源:MIT License,源码在 github.com/firecrawl/anydoc;
- 五端 + Agent Skill:Rust / Node.js / Python / 浏览器 WASM / CLI,外加一条命令装进 AI 编程代理的 Agent Skill。
AnyDoc 与本站的 pdf-inspector 是同期发布的姊妹项目(见 Firecrawl 官方发布公告):pdf-inspector 专注 PDF 分类与解析(项目介绍),AnyDoc 负责其余 13 种办公格式,两者都为「给 LLM 喂干净文本」而生。
AnyDoc GitHub 仓库
源码托管在 github.com/firecrawl/anydoc,主体是 Rust(占比 98%+),MIT 协议:
git clone https://github.com/firecrawl/anydoc.git
cd anydoc
cargo build --release- Issues:github.com/firecrawl/anydoc/issues — 格式解析 bug、新格式需求都在这里提;
- Pull Requests:欢迎贡献,新增格式解析器是最典型的贡献方向;
- README:包含各语言绑定的完整用法与示例代码。
AnyDoc Agent Skill(装进 Claude Code / Codex / Cursor)
AnyDoc 可以作为 Agent Skill 装进支持 skills 协议的 AI 编程代理,一条命令:
npx skills add firecrawl/anydoc装完后,Claude Code、Codex、Cursor、OpenCode 等代理遇到 .docx、.pptx、.pdf 等二进制文档时,会自动调用 anydoc 转成 Markdown 再继续干活——需求文档分析、合同批量解析、报告摘要都不用手动复制粘贴。skill 市场页:skills.sh/firecrawl/anydoc。
一句话
npx skills add firecrawl/anydoc——装完,你的 AI 代理就有了"看得懂任何文档"的能力。
AnyDoc Rust 版
AnyDoc 核心是纯 Rust 实现(唯一的格式解析依赖,无 ML 运行时),crates.io 包名就是 anydoc:
cargo add anydocuse anydoc::to_markdown;
let result = to_markdown("report.docx")?;
println!("{}", result.markdown);想用未发布的最新改动,可以直接依赖 Git 仓库:
[dependencies]
anydoc = { git = "https://github.com/firecrawl/anydoc" }五端安装一览
| 平台 | 包名 | 安装 / 使用 |
|---|---|---|
| Rust | anydoc | cargo add anydoc |
| Node.js | @firecrawl/anydoc | npm install @firecrawl/anydoc |
| Python | firecrawl-anydoc | pip install firecrawl-anydoc |
| 浏览器 WASM | @firecrawl/anydoc-wasm | npm install @firecrawl/anydoc-wasm |
| CLI(免安装) | @firecrawl/anydoc | npx @firecrawl/anydoc report.docx |
| Agent Skill | firecrawl/anydoc | npx skills add firecrawl/anydoc |
CLI 常用姿势:
npx @firecrawl/anydoc report.docx # 输出到终端
npx @firecrawl/anydoc slides.pptx -o slides.md # 输出到文件
npx @firecrawl/anydoc - --format csv < data.csv # 从 stdin 读入支持的 14 种格式
- Word:
.doc.docx.docm - PowerPoint:
.ppt.pptx.pptm.pps.ppsx.ppsm.pot - Excel:
.xls.xlsx.xlsm.xlsb - OpenDocument:
.odt.ods.odp - 其他:
.rtf、.epub、.csv、.pdf
其中 PDF 的解析由内置的 pdf-inspector 完成(即本站的主角):文本型 PDF 本地毫秒级直转,扫描件会返回 needsOcr 标记而非乱码。
AnyDoc 和 pdf-inspector 怎么选?
| 需求 | 选谁 | 说明 |
|---|---|---|
| 只处理 PDF,关心类型判定 / 精细控制 | pdf-inspector(本站) | 毫秒级分类、区域提取、选择性 OCR、置信度路由 |
| Word / PPT / Excel 等混合格式一把梭 | AnyDoc | 14 种格式统一转 Markdown,PDF 走内置 pdf-inspector |
| 给 AI 编程代理加"读文档"能力 | AnyDoc Agent Skill | npx skills add firecrawl/anydoc |
两者可以同栈使用:用 pdf-inspector 做 PDF 路由与精细提取,用 AnyDoc 接住其余办公格式。
AnyDoc 官网与在线转换
不想装任何东西?直接去 anydoc.wiki 在线转换:拖入文件即得 Markdown,浏览器本地运行(WebAssembly)、免费无限制、文件不上传——体验和本站的 PDF 在线解析一致。
常见问题
AnyDoc 免费吗?开源吗?
完全免费、MIT 开源,可商用。源码在 github.com/firecrawl/anydoc,在线版 anydoc.wiki 也不收费、不注册。
AnyDoc 支持扫描版 PDF 吗?
默认不支持 OCR:扫描件会返回 needsOcr 标记而不是硬转出乱码。需要 OCR 时可以把文件交给 Firecrawl 的托管 Parse 服务(ocr: 'hosted'),或先用 pdf-inspector 判定类型再路由。
AnyDoc 和 markitdown 有什么区别?
同为"文档转 Markdown"工具,AnyDoc 是纯 Rust 实现、毫秒级、无 Python 依赖、五端一致输出;markitdown 速度慢几个数量级且几乎不保留标题层级。详细基准对比见 anydoc.wiki 的性能页。
anydoc 命令装完叫什么?
npm 包 @firecrawl/anydoc 自带 CLI,npx @firecrawl/anydoc 文件 即用;Rust 版 cargo install anydoc 后得到 anydoc 命令。