Skip to main content

Markitai

PyPI Python CI License: MIT

Opinionated Markdown converter with native LLM enhancement support.

  • Multi-format: DOCX, PPTX, XLSX, PDF, EPUB, EML, TXT, MD, images (JPG/PNG/WebP), and URLs → clean Markdown; legacy .doc/.ppt via the legacy extra
  • LLM enhancement: AI-powered format cleaning, frontmatter metadata, and vision analysis of embedded images via litellm, so any provider works (OpenAI, Anthropic, Gemini, local CLIs, and more)
  • Batch processing: concurrent conversion with progress display and --resume for interrupted jobs
  • OCR: scanned PDFs and images via local RapidOCR (optional extra, see below), or --ocr --llm to have the vision model read the page images directly (VLM-OCR)
  • Web fetching: static HTTP with cache revalidation, or Playwright rendering for JS-heavy pages
  • Local web workspace: upload files or folders, submit URLs, configure LLM providers, compare results, retry failures, and revisit conversion history — CLI runs can opt in too, via --record-history

Docs: https://markitai.dev

Install

Recommended: guided installer. Checks/installs Python and uv, lets you pick extras, installs the optional Playwright browser, falls back to a mirror when it measures the default index as unreachable, and is bilingual (EN/中文):

# Linux/macOS
curl -fsSL https://markitai.dev/setup.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://markitai.dev/setup.ps1 | iex"

Minimal (uv / pip), if you already have Python 3.11-3.13 and just want the package:

uv tool install markitai     # isolated environment (recommended)
pipx install markitai        # or pipx

After a uv/pip install, do the setup steps the guided installer would have done for you:

markitai doctor           # check core and optional capabilities
markitai init             # create a config and set up an LLM provider

If you need Playwright browser rendering, add its package before asking doctor to install Chromium:

uv tool install "markitai[browser]" --force     # uv tool install
# pipx install "markitai[browser]" --force      # pipx alternative
markitai doctor --fix                           # install Chromium

Both installs provide the markitai command and the shorter mkai alias. They are the same command (mkai --help == markitai --help). If you already have a different mkai on your PATH, use the full markitai to avoid ambiguity.

Extras

Extra Enables
browser Playwright rendering for JS-heavy pages
claude-agent Claude Agent SDK as an LLM provider
copilot GitHub Copilot SDK as an LLM provider
extra-fetch curl-cffi HTTP client (better anti-bot compatibility)
heif HEIC/HEIF/AVIF image input
legacy Legacy Office conversion (.doc/.ppt) via the anydoc Rust backend
mcp Bundled markitai-mcp server for AI agents (Model Context Protocol)
ocr Local OCR for scanned PDFs and images (--ocr)
serve Local web workspace and REST API
svg SVG rasterization via cairosvg
all Everything above

The base install is deliberately lean (~475MB). ocr is the one extra that adds real weight (~160MB of models and OpenCV), so it is opt-in:

uv tool install "markitai[ocr]" --force

The guided installer offers it as a yes/no question (defaulting to yes, and remembering a "no" for the rest of the run); markitai doctor reports OCR as an optional capability and prints this command when it is not installed.

Launch the local web workspace with:

uv tool install "markitai[serve]" --force
markitai serve

Quick start

markitai document.pdf -o out/            # convert a file
markitai https://example.com -o out/     # convert a URL
markitai ./docs -o out/                  # batch convert a directory
markitai doctor                          # check dependencies and configuration

For LLM enhancement, export any supported provider key — markitai picks the model up from the environment, no config file needed:

export GEMINI_API_KEY=...                # or OPENAI_/ANTHROPIC_/DEEPSEEK_/OPENROUTER_API_KEY
markitai document.pdf -o out/ --llm      # clean formatting + generated frontmatter
markitai document.pdf --preset rich      # LLM + alt text + descriptions + screenshots
markitai init                            # or configure it interactively, once

See the Getting Started guide for LLM configuration, presets, caching, and batch options.

MCP server

The MCP server markitai-mcp (bundled with markitai, enabled by the mcp extra) exposes conversion to AI agents over the Model Context Protocol: convert_document, convert_url, batch_convert, job_status. Zero install via uvx; large outputs land on disk instead of in the model context. For Claude Code, claude mcp add markitai -- uvx --from "markitai[mcp]" markitai-mcp; for other clients:

{
  "mcpServers": {
    "markitai": { "command": "uvx", "args": ["--from", "markitai[mcp]", "markitai-mcp"] }
  }
}

markitai mcp starts the same server through the CLI itself (uvx --from "markitai[mcp]" markitai mcp), which is how the MCP Registry lists it. See the MCP guide for LLM enhancement and batch jobs.

Comparison

How markitai compares to three tools people mention in the same breath. No star or download counts — those go stale immediately.

markitai markitdown docling anydoc
Engine Python; rule-based conversion + optional LLM pipeline Python; lightweight rule-based converters + plugins Python; ML layout/table/VLM document-structure models Rust; zero-ML parsers
LLM enhancement Built-in: format cleaning, frontmatter, vision analysis, per-run JSON cost/usage reports Optional: image captions, transcription, an OCR plugin VLM for structure (DocTags), not prose cleanup None
Web pages 5-strategy fetch cascade, local-first; static runs a from-scratch port of defuddle's readability algorithm before falling back to a browser or 3 remote APIs Whole-DOM HTML→Markdown, no main-content pass Downloads a document URL into the same file pipeline No URL input — local files/bytes only
Scanned docs Optional local OCR (markitai[ocr], RapidOCR), or --ocr --llm to have the vision model read the pages Optional plugin (LLM-vision or Azure OCR) Built-in OCR for scanned PDFs/images None in the OSS library
Positioning Independent project; CLI + local bilingual (EN/中文) web workspace Microsoft (AutoGen team); widest ecosystem/plugin adoption IBM Research origin, now governed by the LF AI & Data Foundation; enterprise RAG building block Firecrawl open-source; dependency-free, millisecond-scale, 14 formats, Node/Python/WASM bindings

Each optimizes for a different job: anydoc for dependency-free speed, docling for ML-driven document structure in RAG pipelines, markitdown for ecosystem reach — markitai trades those for a built-in LLM pipeline, live web fetching, and a local UI. Two of them are also dependencies rather than only alternatives: markitdown converts the Office formats, and anydoc handles legacy .doc/.ppt behind markitai[legacy].

License

markitai's own source code is MIT.

The default installation is not uniformly MIT, because the PDF engine is not. The PyMuPDF packages pymupdf, pymupdf-layout, and pymupdf4llm come from Artifex Software and are dual-licensed under AGPL-3.0 or a commercial licence from Artifex. They are core dependencies — PDF conversion does not work without them.

For local use — running the CLI on your own machine, or a markitai serve instance only you talk to — this changes nothing. AGPL obligations attach when you redistribute the combined work or offer it to other people over a network: in that case AGPL-3.0 asks you to make the corresponding source available on the same terms, or to buy a commercial licence from Artifex instead.

Everything else in the default install is MIT, Apache-2.0, BSD, or MIT-CMU. CI enforces this: scripts/check_licenses.py fails the build on any non-commercial or proprietary dependency, and on any AGPL/GPL package outside an explicit allowlist.

Full details, plus attribution for the code markitai ports from defuddle (MIT) and marker (Apache-2.0), are in NOTICE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

markitai-1.0.0.tar.gz (3.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

markitai-1.0.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file markitai-1.0.0.tar.gz.

File metadata

  • Download URL: markitai-1.0.0.tar.gz
  • Upload date:
  • Size: 3.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for markitai-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1e4a77b1bf8cbe35cbf00b3a24a77068a7cd14213c332b9d39e7b9f5ca81b25c
MD5 d9c924b9a2f014b782099ae8eb952e5f
BLAKE2b-256 59061a44ecfe615051902538972fe2e91a99280f806904e5132b0561034abe24

See more details on using hashes here.

Provenance

The following attestation bundles were made for markitai-1.0.0.tar.gz:

Publisher: publish.yml on Ynewtime/markitai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file markitai-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: markitai-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for markitai-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 144ebf668ec8d29a85b1ffd5603b04820a4b086b1db2c3f82e47955f10188e24
MD5 d53d357484af07a68cdd44feddc888f6
BLAKE2b-256 e66c9f050a59163a04930d40c572c0fa68d9c512abea7caabb243a3cde8b470c

See more details on using hashes here.

Provenance

The following attestation bundles were made for markitai-1.0.0-py3-none-any.whl:

Publisher: publish.yml on Ynewtime/markitai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

0.23.0

2 files

0.22.0

2 files

0.21.1

2 files

0.21.0

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

0.13.1

2 files

0.11.2

2 files

0.11.1

2 files

0.11.0

2 files

0.9.1

2 files

0.9.0

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page