docling vs markitdown
Two of the top projects in Data and scraping for AI, side by side: who leads on each score part and who each one suits, then setup, license, activity and what each review found.
docling
Python library and CLI that converts PDFs, Office files and more into structured text
markitdown
Python tool that converts PDF, Office, HTML and audio files to Markdown for LLMs
Verdict
docling ranks higher, 76 to 71. Of the 5 score parts we measure for both, docling leads on 2, markitdown on 2 and 1 is even.
- Adoptionmarkitdown leads by 24 points, 95 to 71: a wide gap.
- FreshnessEven at 100.
- Maintenancemarkitdown leads by 2 points, 90 to 88: close to even.
- Easy to rundocling leads by 17 points, 50 to 33: a wide gap.
- Agent-readydocling leads by 85 points, 85 to 0: a wide gap.
Pick docling if you are
Developers preparing documents for RAG and LLM pipelines
- Wide input coverage: PDF, Office, ODF, EPUB, email, Apple iWork, XBRL, audio, video
- Local execution suits sensitive data and air-gapped environments
Pick markitdown if you are
Developers feeding documents into LLM and RAG pipelines
- Covers many formats through one CLI and Python API (convert, convert_local, convert_stream)
- Built-in converters run offline; install only needed formats via extras like [pdf,docx,pptx]
| What we compare | docling | markitdown |
|---|---|---|
| Score parts, out of 100 | ||
| Adoption | 71, popular | 95, widely used |
| Freshness | 100, active | 100, active |
| Maintenance | 88, healthy | 90, healthy |
| Easy to run | 50, easy | 33, some setup |
| Agent-ready | 85, ready | 0, none |
| Facts from GitHub and the README | ||
| Stars | 68.9k | 190.3k |
| License | MIT (permissive) | MIT (permissive) |
| Last commit | Oct 2026 | Oct 2026 |
| Last release | Oct 2026 | Sep 2026 |
| Language | Python | Python |
| Docker | Yes | Yes |
| GPU | Optional | Not needed |
| arm64 or Apple Silicon | Mentioned | Not stated |
docling
Docling parses PDF, DOCX, PPTX, XLSX, HTML, EPUB, images, audio and other formats into a unified DoclingDocument, with PDF layout, reading order, table structure, code and formula recognition. It exports to Markdown, HTML, DocLang, DocTags and lossless JSON. It runs locally via a CLI or Python API, with OCR, VLM support (GraniteDocling), an MCP server and a docling-serve API server.
Who it is for: Developers preparing documents for RAG and LLM pipelines
Strengths
- Wide input coverage: PDF, Office, ODF, EPUB, email, Apple iWork, XBRL, audio, video
- Local execution suits sensitive data and air-gapped environments
- Integrations with LangChain, LlamaIndex, Crew AI and Haystack
- Ships a CLI, Python API, MCP server and docling-serve HTTP server
Weaknesses
- Hardware requirements (RAM, GPU) are not stated in the README
- Individual models carry their own licenses, separate from the MIT codebase
- Metadata extraction and chemistry understanding are listed as coming soon
- Requires Python 3.10 or higher; 3.9 support was dropped in 2.70.0
- GPU optional
- Docker
- Models: GraniteDocling, VLMs, OCR engines, ASR models
markitdown
MarkItDown is a Python library and CLI that converts PDF, Word, PowerPoint, Excel, images, audio, HTML, CSV/JSON/XML, ZIP, EPUB and YouTube URLs into Markdown, keeping headings, lists, tables and links. Optional backends add LLM image descriptions, Azure Document Intelligence, Azure Content Understanding, and OCR via the markitdown-ocr plugin. Output targets LLM pipelines rather than high-fidelity human-facing documents.
Who it is for: Developers feeding documents into LLM and RAG pipelines
Strengths
- Covers many formats through one CLI and Python API (convert, convert_local, convert_stream)
- Built-in converters run offline; install only needed formats via extras like [pdf,docx,pptx]
- Third-party plugin system, plus an LLM-vision OCR plugin using any OpenAI-compatible client
- MIT license, active releases, Python 3.10 through 3.14
Weaknesses
- Not meant for high-fidelity conversion; output is tuned for text analysis tools
- Video and structured field extraction need billable Azure Content Understanding
- convert() accepts URIs and files with process privileges; untrusted input must be sanitized
- LLM image descriptions currently limited to pptx and image files; OCR needs a plugin
- no GPU
- Docker
- Needs Python 3.10-3.14, Azure Document Intelligence (optional), Azure Content Understanding (optional), OpenAI-compatible client (optional)
- Models: OpenAI-compatible vision models (e.g. gpt-4o)
More in Data and scraping for AI
Building with these?
We help teams pick an open-source AI stack and run it in production. Client work never changes a rank.