Model or dataset
opendatalab/MinerU avatar
opendatalab/MinerU

MinerU: A Document Parsing Engine That Turns PDFs and Office Files Into LLM-Ready Markdown

MinerU converts PDFs, Office documents, and images into LLM-ready Markdown or JSON, using a VLM+OCR dual engine that covers 109 languages, formulas, and complex layouts.

79,979 stars6,680 forksPythonLicense varies

At a glance

What is it?
MinerU is an open source document parser that converts PDFs, DOCX, PPTX, XLSX, images, and web pages into structured Markdown or JSON. With a dual VLM and OCR engine, 109-language support, and multiple deployment backends, it targets RAG and agent workflows, but its trade-offs between speed and accuracy need careful evaluation.
Who is it for?
Adopt MinerU if your pipeline needs high-accuracy extraction from complex documents like scanned PDFs, multi-column layouts, and tables, and if you can manage the model download and backend selection. Skip it if you require a fully offline, no-model-download setup or if your documents are simple text PDFs where a lighter parser suffices.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What MinerU Solves and Who Needs It

MinerU addresses a specific bottleneck: converting complex documents into a format that language models can consume directly. PDFs with multi-column layouts, scanned pages, handwriting, tables that span pages, and formulas are common in enterprise and academic settings, but they resist naive text extraction. MinerU's stated output is structured Markdown or JSON, which fits RAG pipelines, agent tools, and LLM fine-tuning datasets. The intended users are developers building retrieval-augmented generation systems, AI coding assistants, or document automation workflows. The README lists integrations with LangChain, LlamaIndex, RAGFlow, Dify, and FastGPT, plus an MCP server for Cursor, Claude Desktop, and Windsurf. That positioning makes sense: if you are assembling an agent that needs to read a contract or a research paper, you need a parser that preserves reading order and drops headers and footers. MinerU claims to do exactly that, with a human reading order in the output and automatic header and footer removal. This is not a general-purpose file converter; it is a preprocessing stage for language model pipelines.

The Dual Engine Architecture and Its Three Backends

MinerU's core design is a dual engine: a VLM (vision language model) and an OCR engine. The README describes three inference backends. The pipeline backend is described as fast and stable, with no hallucination, and it runs on CPU or GPU. The vlm-engine backend prioritizes accuracy and supports vLLM, LMDeploy, and the mlx ecosystem. The hybrid-engine backend combines high accuracy with native text extraction and low hallucination. The 3.3 release notes explain that the hybrid backend now defaults to an effort parameter of medium, which trades a small accuracy loss for significant speed gains. On OmniDocBench v1.6, medium reduces accuracy by only 0.13 points compared to high, while delivering speed improvements ranging from 35% to 220% depending on the platform and scenario. The trade-off is explicit: the medium level does not support image analysis. For maximum accuracy or image analysis, you must switch to effort=high. This architecture means you are not choosing a single parser; you are choosing a backend that fits your hardware and your tolerance for hallucination. The pipeline backend claims no hallucination, which is a strong promise for a parser, but the README does not detail how that is enforced, so treat it as a design goal rather than a verified guarantee.

Getting It Running: Installation and Configuration

The README does not include a full installation guide in the provided excerpt, but it references a Model Source Documentation page and a PyPI package named mineru. The presence of a PyPI badge and a pip-installable package suggests the typical flow is pip install mineru. The 3.4 release notes mention automatic model source selection, which picks a better model source based on the current network environment on first installation. It also checks local model cache files before downloading, reusing cache hits to avoid repeated downloads. That is a practical feature for teams deploying in multiple environments or behind firewalls. The README lists a CLI, a REST API, Docker, and Python, Go, and TypeScript SDKs as development options. For configuration, the effort parameter is a concrete key: you set it to medium or high for the hybrid backend. The 3.3 notes say the default is now medium, so you need to explicitly set effort=high if you need image analysis. The model source configuration is another config area, with a dedicated documentation page. Without the full README, I cannot give exact command-line flags, but the existence of a CLI and a config page implies you will pass flags or a config file to select the backend and the effort level. The model download behavior is a notable operational detail: first-time setup involves downloading models, and the automatic source selection is designed to make that smoother, but it still requires network access.

The OCR Upgrade in 3.4 and Its Implications

The 3.4 release, dated 2026/06/18, focuses on the pipeline backend's OCR capabilities. The OCR model was upgraded to PP-OCRv6, improving accuracy by about 11% on OmniDocBench v1.6. The release also removed Japanese, Traditional Chinese, English, and Latin from the OCR language selection options, routing those scenarios to the ch model. That is a simplification: fewer language parameters to configure, but it means the ch model handles a broader set of languages. The release claims a 100% speed increase in OCR processing, which would halve the time for OCR-intensive documents. These are significant improvements for the pipeline backend, which is the CPU-friendly option. For teams that have avoided OCR because of speed, this release makes the pipeline backend more attractive. However, the language routing change could be a breaking change for existing configurations that explicitly set a language parameter. If you have a pipeline that sets ocr_lang=en, that parameter may no longer be valid, and you will need to update your config. The README does not specify the exact parameter names, but the change implies a migration step for existing users.

Limitations and Cases Where MinerU Is the Wrong Tool

The most obvious limitation is the medium effort level's lack of image analysis support. If your documents contain charts, diagrams, or other images that need interpretation, you must use effort=high, which is slower. The README does not quantify the speed penalty for high, but the 35% to 220% speed improvements for medium imply that high is substantially slower. Another limitation is the model download requirement. Even with cache reuse and automatic source selection, the first run needs to fetch models, which can be a problem in air-gapped or restricted networks. The README mentions private and fully offline deployment, but that likely requires pre-downloading models and configuring a local source, which is an extra operational step. For simple text PDFs, MinerU is overkill. A lightweight library like pdfplumber or PyMuPDF can extract text faster and with less setup. MinerU's strength is in complex documents, so using it for a clean, single-column PDF wastes the OCR and VLM machinery. The README also notes that the v4.0.0a6 alpha is the latest release, alongside a stable 3.4.5. Alpha versions imply breaking changes and instability, so production users should stick to the 3.4.x line until 4.0 stabilizes.

A Real Alternative: pdfplumber or PyMuPDF for Text-Based PDFs

A direct alternative is PyMuPDF (fitz) or pdfplumber, which extract text and tables directly from PDFs without an OCR engine or a VLM. The difference in approach is fundamental: MinerU uses a vision model to interpret the page layout, which handles scanned images and complex layouts, but it is heavy. PyMuPDF reads the embedded text layer, which is fast and works well for digitally born PDFs. For example, a financial report generated from a word processor has a text layer that PyMuPDF can extract in milliseconds, while MinerU would run OCR or a VLM, consuming CPU or GPU resources and requiring model downloads. The trade-off is accuracy on complex layouts versus speed and simplicity. MinerU's output includes reading order and table structure, which PyMuPDF does not provide out of the box. But if your documents are text-based and well-structured, PyMuPDF is the lighter tool. The README does not compare itself to these libraries, but the use cases are clear. For RAG pipelines that process a mix of scanned and digital documents, MinerU is the right choice. For a batch of clean PDFs, a simple text extractor is more efficient. This comparison is not about which is better; it is about matching the tool to the document complexity.

Maintenance, Upgrade Cost, and License Notes

The repository shows active maintenance: the last push was 2026-08-14, with a v4.0.0a6 alpha and a 3.4.5 stable release on the same day. The changelog shows a steady cadence of releases, with 3.3 and 3.4 arriving within weeks of each other. That activity is a positive sign for bug fixes and feature updates, but it also means you will need to track releases and test upgrades. The 3.4 release introduced a breaking change in OCR language selection, so upgrading from 3.3 to 3.4 required config updates. The license is listed as unknown in the repository metadata, but the 3.1.0 release notes mention a license upgrade, and the excerpt is truncated before details. This is a critical gap. Before adopting MinerU, you must check the actual license in the repository or the documentation, because an unknown license is a legal risk for commercial use. The README does not specify the license identifier, so I cannot confirm whether it is permissive or copyleft. The upgrade cost also includes model downloads: each release may bring new models, and the 3.4 notes mention model download improvements, but you will still need to manage model versions on your deployment machines. The hybrid backend's default effort change from an unspecified prior value to medium is another behavior change that could affect output quality, so regression testing is necessary after each upgrade.

Editorial conclusion

Adopt MinerU if your pipeline needs high-accuracy extraction from complex documents like scanned PDFs, multi-column layouts, and tables, and if you can manage the model download and backend selection. Skip it if you require a fully offline, no-model-download setup or if your documents are simple text PDFs where a lighter parser suffices. Before adopting, verify the license, confirm the current backend behavior for your document types, and test the effort parameter (medium vs high) on your own sample set to balance speed and accuracy. The project's active release cadence and the 3.4 OCR upgrade suggest ongoing maintenance, but the v4.0.0a6 alpha indicates breaking changes may be ahead, so pin a stable version like 3.4.5 for production.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes