Devtoolwatch BoardGet it every Monday

MarkItDown review

MarkItDown is a lightweight Python utility from Microsoft that converts PDFs, Office documents, images, audio and other files to Markdown for LLMs.

Updated Nov 1, 2026. Review written Oct 22, 2026 from the project's own sources; usage data refreshed every Monday.

TL;DR

MarkItDown is a Python library and command-line tool that converts files such as PDF, Word, PowerPoint, Excel, HTML and audio into Markdown. It is built for LLM and text analysis pipelines. It focuses on preserving document structure like headings, lists, tables and links, rather than producing high-fidelity output for human readers.

MarkItDown at a glance

Category
RAG, data and memory
Maintained by
Microsoft (organization, @microsoft on GitHub)
License
MIT
Language
Python, Dockerfile
Repository
github.com/microsoft/markitdown
PyPI package
markitdown 0.1.9
Latest release
v0.1.9 on GitHub, Oct 21, 2026
First published
Nov 13, 2024

What MarkItDown does

  • MarkItDown converts PDF, PowerPoint, Word, Excel, HTML, CSV, JSON, XML, EPub files and YouTube URLs to Markdown.
  • MarkItDown preserves document structure such as headings, lists, tables and links in its Markdown output.
  • MarkItDown extracts EXIF metadata and OCR text from images, and metadata and speech transcription from audio files.
  • MarkItDown iterates over the contents of ZIP files and converts each one.
  • MarkItDown can use an OpenAI-compatible LLM client to generate image descriptions for pptx and image files.
  • MarkItDown can route conversions to Azure Document Intelligence or Azure Content Understanding for cloud-based extraction.
  • MarkItDown supports third-party plugins, which are disabled by default, such as the markitdown-ocr plugin.

How it works

MarkItDown runs as a command-line tool, a Python API, or a Docker container. The CLI reads a file path or piped input and writes Markdown to stdout or a file. Built-in converters run offline on local compute. Optional integrations connect to Azure Document Intelligence, Azure Content Understanding, or an OpenAI-compatible LLM client for image descriptions and OCR.

How to install and start using MarkItDown

With pip

pip install 'markitdown[all]'

Only PDF, DOCX and PPTX support

pip install 'markitdown[pdf, docx, pptx]'

OCR plugin

pip install markitdown-ocr

Requirements

  • Python 3.10 through 3.14.
  • An Azure Document Intelligence or Content Understanding endpoint for the Azure-based converters.
  • An OpenAI-compatible client and model for LLM image descriptions and the markitdown-ocr plugin.

First steps

  1. Create and activate a virtual environment with Python 3.10 through 3.14 to avoid dependency conflicts.
  2. Install MarkItDown with all optional dependencies using pip install 'markitdown[all]'.
  3. Convert a file from the terminal with markitdown path-to-file.pdf -o document.md.
  4. In Python, create MarkItDown(), call md.convert("test.xlsx"), and print result.markdown.

Who MarkItDown is for

  • Developers preparing documents as Markdown input for LLMs and RAG pipelines.
  • Python developers who want a file-to-Markdown library to embed in their own systems.
  • Teams processing mixed formats like Office files, PDFs, images and audio in one tool.
  • Users who need invoice or contract field extraction through Azure Content Understanding analyzers.

Limitations to know

  • MarkItDown output targets text analysis tools and may not suit high-fidelity document conversions for human reading.
  • MarkItDown performs I/O with the current process's privileges, so inputs must be sanitized in untrusted environments.
  • Built-in converters offer only basic audio transcription and no video support; video requires Azure Content Understanding.

Is MarkItDown growing? Usage data

In the week of Oct 25–31, 2026, MarkItDown ranked #44 on the Devtoolwatch Board and #5 in RAG, data and memory, with a momentum score of 77 out of 100. Its main package had 4.7M downloads that week, +29% against its own 4-week average.

New GitHub stars per week for MarkItDown12 weeks from Aug 9, 2026: 1.6k, 1.7k, 1.6k, 1.4k, 5k, 2.4k, 1.5k, 1.1k, 1.5k, 1.5k, 1.3k, 1.4k new stars, an average of 1.8k a week.Aug 9week of Oct 25
New GitHub stars per week for the last 12 weeks, from GitHub's stargazer history (today's stargazers by the week they starred).
Show the weekly numbers
New GitHub stars per week for MarkItDown
Week ofNew stars
Aug 9, 20261.6k
Aug 16, 20261.7k
Aug 23, 20261.6k
Aug 30, 20261.4k
Sep 6, 20265k
Sep 13, 20262.4k
Sep 20, 20261.5k
Sep 27, 20261.1k
Oct 4, 20261.5k
Oct 11, 20261.5k
Oct 18, 20261.3k
Oct 25, 20261.4k

On Hacker News

The Board ranks tools by four signals each week: new stars, new stars for the repo's size, added downloads and download growth beyond the market. How the ranking works.

MarkItDown alternatives

Other RAG, data and memory tools on the Board in the week of Oct 25–31, 2026, by momentum:

RAG, data and memory ranked by momentum, the week of Oct 25–31, 2026
RankToolStarsDownloads/wk
#1XERJXERJ is a local-first search engine and MCP server for AI agents, packaged as one Rust binary with an Elasticsearch-compatible API.17.9k–
#2MemvidMemvid is a single-file memory layer for AI agents that packages data, embeddings, search indexes, and metadata into one portable .mv2 file.17.3k–
#3LEANNLEANN is a Python vector database and RAG library that recomputes embeddings on demand to keep indexes small on personal devices.13.7k–
#4GraphifyGraphify is an AI coding assistant skill that turns a codebase, with its docs, PDFs, images and videos, into a queryable knowledge graph.140k480.7k
#6FirecrawlFirecrawl is an API and open source project to search, scrape, crawl, and interact with web pages, returning LLM-ready markdown or JSON…197.4k2.9M
#7Mem0Mem0 is a memory layer for AI agents and apps that stores and retrieves user, session, and agent context across interactions.68.2k884.1k

All RAG, data and memory tools, ranked

Recent MarkItDown releases

MarkItDown FAQ

Is MarkItDown free and open source?

Yes. MarkItDown's source code is on GitHub (microsoft/markitdown) under the MIT license, so you can use it for free.

How do I install MarkItDown?

Run pip install 'markitdown[all]'. The markitdown package needs Python 3.10 or newer, below 3.15. The install section above has the other options from the project's README.

Is MarkItDown still maintained?

Yes. The microsoft/markitdown repository was last updated on Oct 21, 2026, and the latest release, v0.1.9 on GitHub, came out on Oct 21, 2026.

How popular is MarkItDown?

MarkItDown has 193.2k GitHub stars as of Nov 1, 2026. It gained 1.4k new stars in the week of Oct 25–31, 2026, against a 12-week average of 1.8k a week. Its main package had 4.7M downloads that week, +29% against its own 4-week average. That made it #5 among RAG, data and memory tools on the Devtoolwatch Board.

MarkItDown vs Docling: how do they compare?

MarkItDown and Docling are both tracked by Devtoolwatch as RAG, data and memory tools. MarkItDown has 193.2k GitHub stars and Docling has 69.9k. In the week of Oct 25–31, 2026, MarkItDown's main package had 4.7M downloads and Docling's had 904.2k. Docling is a Python SDK and CLI that parses PDF, DOCX, HTML and other formats into a unified document representation for gen AI. Docling review.

MarkItDown vs Marker: how do they compare?

MarkItDown and Marker are both tracked by Devtoolwatch as RAG, data and memory tools. MarkItDown has 193.2k GitHub stars and Marker has 40.7k. In the week of Oct 25–31, 2026, MarkItDown's main package had 4.7M downloads and Marker's had 20.6k. Marker review.

What are the best alternatives to MarkItDown?

Other RAG, data and memory tools on the Devtoolwatch Board in the week of Oct 25–31, 2026, by momentum: XERJ (#1), Memvid (#2), LEANN (#3), Graphify (#4), Firecrawl (#6). The alternatives table above has their numbers.

Does MarkItDown have OCR?

MarkItDown extracts OCR text from images out of the box. The markitdown-ocr plugin adds OCR for embedded images in PDF, DOCX, PPTX and XLSX files using LLM Vision. If no llm_client is provided, OCR is silently skipped. Azure Content Understanding offers cloud OCR for scanned PDFs.

Does MarkItDown work offline?

MarkItDown's built-in converters run offline, using local compute only. The Azure Document Intelligence and Content Understanding integrations are cloud services, and LLM image descriptions require an LLM client.

Is MarkItDown safe to use?

MarkItDown accesses any resource the current process can access, like open() or requests.get(). The README advises sanitizing inputs in untrusted environments and calling the narrowest convert_* function needed, such as convert_stream() or convert_local().

How do I use MarkItDown in Python?

MarkItDown is used in Python by importing MarkItDown, creating md = MarkItDown(enable_plugins=False), calling result = md.convert("test.xlsx"), and reading result.markdown.

How do I convert a PDF to Markdown with MarkItDown in the terminal?

MarkItDown converts a PDF in the terminal with markitdown path-to-file.pdf > document.md, or with -o to name the output file. You can also pipe content with cat path-to-file.pdf | markitdown.

What is markitdown-mcp?

markitdown-mcp is a package maintained in the MarkItDown repository and listed as in scope for contributions. The provided sources do not describe its features.

Sources

  1. microsoft/markitdown on GitHub
  2. MarkItDown README
  3. markitdown on PyPI
  4. Release v0.1.9 (Oct 21, 2026)
  5. Release v0.1.8 (Sep 21, 2026)
  6. Release v0.1.8b2 (Sep 14, 2026)
  7. Hacker News: MarkItDown: Python tool for converting files and office documents to Markdown
  8. Hacker News: Python tool for converting files and office documents to Markdown
  9. Devtoolwatch Board, the week of Oct 25–31, 2026

MarkItDown README badge

Maintainers can show the tool's weekly Board rank in their README:

Devtoolwatch badge for MarkItDown

[![Devtoolwatch](https://index.devtoolwatch.com/badge/markitdown.svg)](https://index.devtoolwatch.com/tools/markitdown/)

How this page is made: Devtoolwatch writes each review from the project's README, releases, package metadata and website, with an AI model, then checks every claim against the source it cites and drops what the sources don't support. The numbers come from Devtoolwatch's daily GitHub snapshots, GitHub's stargazer history, and the npm and PyPI download APIs. Spotted an error? Email [email protected].