#44th of 13 in Data and scraping for AI

markitdown

Python tool that converts PDF, Office, HTML and audio files to Markdown for LLMs

Stars
190.3k
License
MIT
Last commit
Oct 2026
Last release
Sep 2026
Language
Python
Stars, last 29 weeks+99,262
25 Mar 2026: 90,998 stars1 Apr 2026: 91,676 stars8 Apr 2026: 93,350 stars15 Apr 2026: 108,156 stars22 Apr 2026: 113,712 stars29 Apr 2026: 117,185 stars6 May 2026: 119,671 stars13 May 2026: 121,528 stars20 May 2026: 122,726 stars27 May 2026: 124,815 stars3 Jun 2026: 141,662 stars10 Jun 2026: 148,939 stars17 Jun 2026: 153,792 stars24 Jun 2026: 157,413 stars1 Jul 2026: 160,802 stars8 Jul 2026: 162,849 stars15 Jul 2026: 165,180 stars22 Jul 2026: 167,168 stars29 Jul 2026: 169,014 stars5 Aug 2026: 170,766 stars12 Aug 2026: 172,476 stars19 Aug 2026: 173,914 stars26 Aug 2026: 175,755 stars2 Sept 2026: 177,158 stars9 Sept 2026: 181,583 stars16 Sept 2026: 184,329 stars23 Sept 2026: 186,165 stars30 Sept 2026: 187,344 stars7 Oct 2026: 188,763 stars14 Oct 2026: 190,260 stars

90,998 on 25 Mar 2026190,260 on 14 Oct 2026

From GitHub's daily star counts.

Checked on GitHub.

Overview

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

What it needs

  • 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)

Head to head

Also in Data and scraping for AI

See all 13
Also in Data and scraping for AI
RankProjectScore
1mineruDocument parser that converts PDFs, images and Office files to Markdown and JSON Live demo ↗ (opens in a new tab)81.8k starscustom license78 out of 100
2Crawl4AIPython web crawler that converts pages to LLM-ready Markdown and JSON85.6k starsApache-2.077 out of 100
3doclingPython library and CLI that converts PDFs, Office files and more into structured text68.9k starsMIT76 out of 100
#5FirecrawlWeb scraping and crawling API that returns LLM-ready markdown Live demo ↗ (opens in a new tab)191.6k starsAGPL-3.067 out of 100
#6langextractPython library that extracts source-grounded structured data from text using LLMs Live demo ↗ (opens in a new tab)39k starsApache-2.060 out of 100