MinerU is a document parser. Docling is a document pipeline: the same conversion job, plus a defined document model, chunking for retrieval, and ready-made integrations with the frameworks you’d feed it into. It came out of IBM Research Zurich, is hosted by the LF AI & Data Foundation, and is MIT licensed.

The practical difference shows up in the input list. Alongside PDF, DOCX, PPTX, and XLSX, it reads HTML, EPUB, LaTeX, plain text, email (EML and MSG), images — and audio and video, transcribing speech. One command handles a folder that a colleague assembled without thinking about your tooling.

Run it

  pip install docling

docling report.pdf
docling https://arxiv.org/pdf/2206.01062
docling ./inbox --output ./out --to md --to json
  
  from docling.document_converter import DocumentConverter

result = DocumentConverter().convert("report.pdf")
print(result.document.export_to_markdown())
  

Python 3.10+, runs on macOS, Linux, and Windows, on x86-64 and arm64, and — the property that decides adoption in a lot of organisations — entirely locally, which makes it usable on documents that must not leave the building.

DoclingDocument is the actual product

Conversion produces a DoclingDocument: a typed structure of pages, blocks, headings, tables, figures, and their positions, from which the exports are generated —

ExportUse
MarkdownReading, notes, and prompt context
Lossless JSONRebuilding the document, keeping coordinates and provenance
HTMLRendering with the layout intact
DocTagsA compact tagged form for feeding models

Because every input format lands in the same structure, downstream code stops caring whether the source was a PDF or a PowerPoint. That’s the piece people underestimate until they’ve written the third format-specific branch.

Built for retrieval, not just conversion

  from docling.chunking import HybridChunker

chunker = HybridChunker()
for chunk in chunker.chunk(result.document):
    index(chunk.text, metadata=chunk.meta.export_json_dict())
  

The chunker splits on document structure and token budget together, and each chunk keeps its heading path and page reference. That metadata is what lets a RAG answer say which section on which page it came from — the difference between a citation and a claim.

Plug-and-play integrations exist for LangChain, LlamaIndex, Haystack, and Crew AI, plus an MCP server and docling-serve for an HTTP API, so an agent or a service can call it without importing the library.

Docling or MinerU?

They overlap heavily and both run locally. Choose on what surrounds the conversion.

MinerUDocling
FocusHighest-accuracy parsing, especially scans and formulasBroad input coverage and the pipeline around it
InputsPDF, images, OfficeThose plus HTML, EPUB, email, LaTeX, audio, video
ModelCompact VLM, top of the parsing benchmarksLayout and table models, optional VLM (GraniteDocling)
ExtrasREST API, MCP, Gradio UIDocument model, chunking, framework integrations, MCP, serve
LicenceApache-2.0-based with added conditionsMIT

Rough rule: MinerU when the documents are hard — dense academic PDFs, poor scans, heavy mathematics — and parsing quality is the whole job. Docling when the documents are varied and the parsing is one step in a pipeline you’re building. Trying both on ten of your own worst files costs an hour and settles it better than any benchmark.

The same caution as every parser

Extraction is inference, and confident wrong output looks exactly like right output. Spot-check tables and figures against the original page before anything downstream treats them as fact, and keep the source file with the page references from the JSON so a surprising number can be traced rather than argued about.

Next

With files under control, on to where you write the code → Editors & IDEs

Last updated 25 Aug 2026, 00:00 UTC. history