
MarkItDown
Python tool that converts files like PDF, Word, Excel and PowerPoint into Markdown.
- Stars
- 193k
- Forks
- 14.5k
- Licence
- MIT
- Language
- Python
- Last update
- 8 days ago
- Type
- Library
What it is
MarkItDown is a Python utility that turns many common file types, such as PDFs, Office documents, HTML, images, audio and YouTube links, into Markdown text. It keeps structure like headings, lists, tables and links. People use it mainly to prepare documents as plain text for large language models and text analysis pipelines.
- Convert a PDF or Word document to Markdown with the command line: markitdown path-to-file.pdf -o document.md
- Pipe a file into the tool to get Markdown on standard output
- Extract text from a PowerPoint or Excel file for use in an LLM prompt
- Get a transcript of a YouTube video as Markdown, using the youtube-transcription extra
Great for
- Developers building LLM or text analysis pipelines that need document text
- People who want to convert a batch of PDFs or Office files to Markdown from the command line
- Projects that need a Python library to add document conversion to existing code
Not ideal for
- Anyone needing high-fidelity layout for human reading, since the README says output is meant for text analysis tools and may not be the best for human consumption
- Untrusted environments without input sanitizing, because the tool runs with the current process's file and network access
- Users who need video conversion from the built-in converters, since the README says only the Azure Content Understanding option supports video
How to get it
- 1
Install with a package manager
You'll need: Python 3.10 through 3.14
Install with pip (all optional dependencies)
pip install 'markitdown[all]' - 2
Run it
- Install Python 3.10 to 3.14 and optionally create a virtual environment
- Run pip install 'markitdown[all]'
- Convert a file with: markitdown path-to-file.pdf -o document.md
- Open document.md to review the output
- 3
Get the most out of it
- Install only the extras you need, such as 'markitdown[pdf, docx, pptx]', to keep dependencies small
- Use markitdown --list-plugins and --use-plugins to find and enable third-party plugins
- Use the markitdown-ocr plugin with an LLM client to OCR text from images embedded in PDFs and Office files
- Call the narrow convert_stream() or convert_local() functions when processing untrusted input
Downloads
Strengths
- Preserves document structure such as headings, lists, tables and links
- Supports many formats from one tool, with optional dependencies you can install selectively
- Has a Python API and command line interface, plus optional third-party plugins
Trade-offs
- The README says output is designed for machines and may not suit high-fidelity human reading
- Some conversions, such as cloud-based Azure options, are billable and require external endpoints
- Converting with untrusted inputs requires care because it accesses resources the process can reach
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| markitdown (this) | 193k | Library | beginner | 8 days ago | Developers building LLM or text analysis pipelines that need document text |
| pdfplumber | 10.9k | Library | beginner | 22 days ago | Python developers pulling tables or text out of machine-generated PDFs |
| pdf-inspector | 19.8k | Library | intermediate | 14 days ago | Developers building pipelines that process many PDFs and need to route scanned ones to OCR |
| ai-pdf-chatbot-langchain | 16.6k | App | intermediate | 7 months ago | Developers learning how LangGraph ingestion and retrieval graphs fit together |
| docling | 70k | Library | beginner | 5 days ago | Python developers building retrieval or RAG pipelines over PDFs and office files |
| langchain | 149k | Framework | intermediate | 4 days ago | Python developers building LLM-powered applications |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.