Skip to content

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
Step-by-step guide: how to use MarkItDownInstall, first run, examples, tips and FAQs

How to get it

  1. 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. 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. 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

ProjectStarsTypeLevelUpdatedBest for
markitdown (this)193kLibrarybeginner8 days agoDevelopers building LLM or text analysis pipelines that need document text
pdfplumber10.9kLibrarybeginner22 days agoPython developers pulling tables or text out of machine-generated PDFs
pdf-inspector19.8kLibraryintermediate14 days agoDevelopers building pipelines that process many PDFs and need to route scanned ones to OCR
ai-pdf-chatbot-langchain16.6kAppintermediate7 months agoDevelopers learning how LangGraph ingestion and retrieval graphs fit together
docling70kLibrarybeginner5 days agoPython developers building retrieval or RAG pipelines over PDFs and office files
langchain149kFrameworkintermediate4 days agoPython 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.