markit-mistral
A powerful PDF and image to markdown converter using Mistral AI OCR with advanced mathematical equation support.
Features
- Convert PDF documents and images to clean markdown
- Advanced OCR using Mistral AI for high accuracy text extraction
- Preserve mathematical equations in LaTeX format
- Extract and manage images alongside markdown output
- Support for complex documents with tables, figures, and formulas
- Command-line interface similar to markitdown
- Web interface for browser-based processing
- Batch processing capabilities
- Configurable output formats
Usage Options
Web Interface (Browser-based)
For a user-friendly, browser-based experience:
- Open
docs/index.htmlin your browser - Enter your Mistral API key
- Drag and drop files or click to upload
- Download the generated markdown and images
Features:
- No installation required - runs entirely in your browser
- Privacy-focused - files never leave your device
- Real-time progress tracking
- Responsive design for mobile and desktop
See the Web Interface README for detailed instructions.
Command Line Interface
For automated workflows and integration:
Installation
Prerequisites
- Python 3.10 or higher
- Mistral AI API key
Install from PyPI (coming soon)
pip install markit-mistral
Install from Source
git clone https://github.com/yahya/markit-mistral.git
cd markit-mistral
pip install -e .
Development Installation
git clone https://github.com/yahya/markit-mistral.git
cd markit-mistral
pip install -e ".[dev]"
Quick Start
API Key Setup
Set your Mistral AI API key as an environment variable:
export MISTRAL_API_KEY="your-api-key-here"
Or pass it directly via command line:
markit-mistral document.pdf --api-key your-api-key-here
Basic Usage
Convert a PDF to markdown:
markit-mistral document.pdf
Convert with output file:
markit-mistral document.pdf -o output.md
Convert an image:
markit-mistral image.png -o result.md
Extract images alongside markdown:
markit-mistral document.pdf --extract-images -o output.md
Process from stdin:
cat document.pdf | markit-mistral > output.md
Command Line Options
usage: markit-mistral [-h] [-v] [-o OUTPUT] [--api-key API_KEY]
[--extract-images] [--base64-images]
[--preserve-math] [--verbose] [--quiet]
[input]
PDF and image to markdown converter using Mistral AI OCR
positional arguments:
input input file (PDF or image). If not provided, reads from stdin
options:
-h, --help show this help message and exit
-v, --version show version and exit
-o OUTPUT, --output OUTPUT
output file path. If not provided, outputs to stdout
--api-key API_KEY Mistral API key (can also be set via MISTRAL_API_KEY environment variable)
--extract-images extract images to separate files alongside markdown output
--base64-images embed images as base64 in markdown instead of separate files
--preserve-math preserve mathematical equations in LaTeX format (default: True)
--verbose enable verbose output
--quiet suppress all output except errors
Mathematical Equation Support
markit-mistral automatically detects and preserves mathematical equations in multiple formats:
- Inline math:
$E = mc^2$or\(E = mc^2\) - Display math:
$$\frac{-b \pm \sqrt{b^2-4ac}}{2a}$$or\[\frac{-b \pm \sqrt{b^2-4ac}}{2a}\] - Complex equations: Multi-line equations, matrices, chemical formulas
- Mixed content: Documents with both text and mathematical content
Image Management
When processing documents with images, markit-mistral can:
- Extract images to separate files in the same directory
- Generate relative links in markdown
- Maintain original image quality and format
- Support base64 embedding for standalone markdown files
Example output structure:
output.md
output_images/
├── image_001.png
├── image_002.jpg
└── figure_003.png
Python API
from markit_mistral import MarkItMistral
# Initialize converter
converter = MarkItMistral(api_key="your-api-key")
# Convert a file
markdown_content = converter.convert_file("document.pdf")
# Convert with custom options
markdown_content = converter.convert_file(
"document.pdf",
extract_images=True,
preserve_math=True
)
Configuration
You can configure markit-mistral through:
- Environment variables
- Command line arguments
- Configuration file (coming soon)
Environment Variables
MISTRAL_API_KEY: Your Mistral AI API keyMARKIT_MISTRAL_CONFIG: Path to configuration file
Supported File Formats
Input Formats
- PDF documents
- PNG images
- JPEG images
- TIFF images
- BMP images
Output Formats
- Markdown with LaTeX math
- Markdown with extracted images
- Markdown with base64 embedded images
Performance
markit-mistral is optimized for:
- Large document processing
- Batch operations
- Memory-efficient streaming
- API rate limit handling
Contributing
We welcome contributions! Please see our contributing guidelines for details.
Development Setup
- Clone the repository
- Install development dependencies:
pip install -e ".[dev]" - Run tests:
pytest - Format code:
black src tests - Check types:
mypy src
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built with the powerful Mistral AI OCR capabilities
- Inspired by the markitdown project
- Thanks to the open source community for various dependencies
Support
- Report issues on GitHub Issues
- Check the documentation for common problems
- Join our community discussions
Roadmap
- Plugin system for custom processors
- Multiple output format support
- Advanced table recognition
- Batch processing UI
- Cloud deployment options
- Integration with popular document workflows
Note: This project is in active development. Some features may be experimental.
Release files for markit-mistral 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| markit_mistral-0.2.3.tar.gz | 3.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| markit_mistral-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.7 MB
Release files / markit_mistral-0.2.3.tar.gz
| Download URL | markit_mistral-0.2.3.tar.gz |
|---|---|
| Size | 3.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b9565c6357cd040936af9a6a735e76b43d92b51208f74c004e17c42061444ecd
|
|
BLAKE2b-256 checksum How to use checksums |
4a0a03f4376a761398d4a2ace4ca9a28a4162cb7681718d4eacb19eb1755329c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 23, 2026.
Transparency logRelease files / markit_mistral-0.2.3-py3-none-any.whl
| Download URL | markit_mistral-0.2.3-py3-none-any.whl |
|---|---|
| Size | 29.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4afb1151f7157f05de8e9c225c26d624f3053dcbd6b8d9087556dc0ea23c30f3
|
|
BLAKE2b-256 checksum How to use checksums |
ff524644178790963efdefa9281fa8bb532a917df2f2ac4a40a2cd9faf70ea7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 23, 2026.
Transparency log