Opinionated Markdown converter with native LLM enhancement support
Project description
Markitai
Opinionated Markdown converter with native LLM enhancement support.
- Multi-format: DOCX, PPTX, XLSX, PDF, TXT, MD, images (JPG/PNG/WebP), and URLs → clean Markdown
- 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, ...)
- Batch processing: concurrent conversion with progress display and
--resumefor interrupted jobs - OCR: scanned PDFs and images via RapidOCR
- Web fetching: static HTTP with cache revalidation, or Playwright rendering for JS-heavy pages
Docs: https://markitai.dev
Install
Recommended — guided installer. Checks/installs Python and uv, lets you pick extras, installs optional components (Playwright browser, LibreOffice, FFmpeg), offers China-mainland mirror acceleration, and is bilingual (EN/中文):
# Linux/macOS
curl -fsSL https://raw.githubusercontent.com/Ynewtime/markitai/main/scripts/setup.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/Ynewtime/markitai/main/scripts/setup.ps1 | iex"
Minimal — uv / pip, if you already have Python 3.11–3.14 and just want the package:
uv tool install "markitai[all]" # isolated environment (recommended)
pipx install "markitai[all]" # or pipx
After a uv/pip install, do the setup steps the guided installer would have done for you:
markitai doctor # check what's installed / missing
markitai doctor --fix # install the Playwright Chromium browser if you use --playwright
markitai init # create a config and set up an LLM provider
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 |
gemini-cli |
Gemini CLI OAuth as an LLM provider |
extra-fetch |
curl-cffi HTTP client (better anti-bot compatibility) |
kreuzberg |
Kreuzberg extraction backend |
svg |
SVG rasterization via cairosvg |
all |
Everything above |
Quick start
markitai document.pdf -o out/ # convert a file
markitai https://example.com -o out/ # convert a URL
markitai ./docs -o out/ --llm # batch convert with LLM enhancement
markitai document.pdf --preset rich # LLM + alt text + descriptions + screenshots
markitai doctor # check dependencies and configuration
markitai init # interactive configuration setup
See the Getting Started guide for LLM configuration, presets, caching, and batch options.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file markitai-0.16.0.tar.gz.
File metadata
- Download URL: markitai-0.16.0.tar.gz
- Upload date:
- Size: 7.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
541f2eb1621de1e1c64e792c09a6b56217d82a3a81badb233f2d5d1f58b8b21b
|
|
| MD5 |
55e94b0393fc66974318300532ad1b96
|
|
| BLAKE2b-256 |
51c1e9f70f618c98afb2c65a53c102df62a1846be9cefb01f0d5938a14e4833e
|
Provenance
The following attestation bundles were made for markitai-0.16.0.tar.gz:
Publisher:
publish.yml on Ynewtime/markitai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
markitai-0.16.0.tar.gz -
Subject digest:
541f2eb1621de1e1c64e792c09a6b56217d82a3a81badb233f2d5d1f58b8b21b - Sigstore transparency entry: 2102199064
- Sigstore integration time:
-
Permalink:
Ynewtime/markitai@08a93793729ca1bfa032870aec979b4e6739fb62 -
Branch / Tag:
refs/tags/v0.16.0 - Owner: https://github.com/Ynewtime
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@08a93793729ca1bfa032870aec979b4e6739fb62 -
Trigger Event:
push
-
Statement type:
File details
Details for the file markitai-0.16.0-py3-none-any.whl.
File metadata
- Download URL: markitai-0.16.0-py3-none-any.whl
- Upload date:
- Size: 583.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18cc741d1466c6ff9ab609225d2430422ab1cec6c04d06c15b8b012ab29c4201
|
|
| MD5 |
2df6521874c5d004fc359486e91822ba
|
|
| BLAKE2b-256 |
e2303b00290aca239a32d9a1ef9ad5578ad3b40c109ab7de10cc6b4da29f4dec
|
Provenance
The following attestation bundles were made for markitai-0.16.0-py3-none-any.whl:
Publisher:
publish.yml on Ynewtime/markitai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
markitai-0.16.0-py3-none-any.whl -
Subject digest:
18cc741d1466c6ff9ab609225d2430422ab1cec6c04d06c15b8b012ab29c4201 - Sigstore transparency entry: 2102199210
- Sigstore integration time:
-
Permalink:
Ynewtime/markitai@08a93793729ca1bfa032870aec979b4e6739fb62 -
Branch / Tag:
refs/tags/v0.16.0 - Owner: https://github.com/Ynewtime
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@08a93793729ca1bfa032870aec979b4e6739fb62 -
Trigger Event:
push
-
Statement type: