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.ynewtime.com
Install
# Recommended: uv tool (isolated environment)
uv tool install "markitai[all]"
# Or with pipx
pipx install "markitai[all]"
# Or the guided installer (checks Python, installs uv, picks extras)
curl -fsSL https://raw.githubusercontent.com/Ynewtime/markitai/main/scripts/setup.sh | sh # Linux/macOS
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/Ynewtime/markitai/main/scripts/setup.ps1 | iex" # Windows
Requires Python 3.11–3.14. Both markitai and the shorter mkai command are installed.
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.15.0.tar.gz.
File metadata
- Download URL: markitai-0.15.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 |
2b3fb0c9cb5809ac2c90cde4139c6d367c1ca589c58462212458daedc695c185
|
|
| MD5 |
14c80700026f4f07c9cd0e8cfc8c9e62
|
|
| BLAKE2b-256 |
a4ace6f40ee90d3151614da45ca4696d6135040b38f567b5901c7c9369ed8aa9
|
Provenance
The following attestation bundles were made for markitai-0.15.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.15.0.tar.gz -
Subject digest:
2b3fb0c9cb5809ac2c90cde4139c6d367c1ca589c58462212458daedc695c185 - Sigstore transparency entry: 2073103473
- Sigstore integration time:
-
Permalink:
Ynewtime/markitai@61b143af9e31d3b36845c6f58be70815f9dea427 -
Branch / Tag:
refs/tags/v0.15.0 - Owner: https://github.com/Ynewtime
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@61b143af9e31d3b36845c6f58be70815f9dea427 -
Trigger Event:
release
-
Statement type:
File details
Details for the file markitai-0.15.0-py3-none-any.whl.
File metadata
- Download URL: markitai-0.15.0-py3-none-any.whl
- Upload date:
- Size: 573.3 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 |
0af9d8169e4a31bbe1588376ae1d5aceb625842a14081ae575f48bffec719835
|
|
| MD5 |
0edb9440b00ba139c92e54d989738760
|
|
| BLAKE2b-256 |
54618d69e4850b235ab7649c07d4abd6517de7a1ae76ab3c2bf416d31d44d185
|
Provenance
The following attestation bundles were made for markitai-0.15.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.15.0-py3-none-any.whl -
Subject digest:
0af9d8169e4a31bbe1588376ae1d5aceb625842a14081ae575f48bffec719835 - Sigstore transparency entry: 2073103524
- Sigstore integration time:
-
Permalink:
Ynewtime/markitai@61b143af9e31d3b36845c6f58be70815f9dea427 -
Branch / Tag:
refs/tags/v0.15.0 - Owner: https://github.com/Ynewtime
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@61b143af9e31d3b36845c6f58be70815f9dea427 -
Trigger Event:
release
-
Statement type: