Installation¶
Doctopus is published on PyPI as doctopus-ai. The import name and the command are both doctopus.
Python 3.12
Doctopus currently requires Python 3.12 (>=3.12,<3.13), because several engine packages do not yet support newer interpreters.
Base install¶
The base install includes the lightweight Xberg engine, the CLI, the REST API and the MCP server.
Check that it works and see which engines are available:
OCR and layout engines may download model weights on first use.
Optional engines¶
Install only the engines you need. Each one is an optional extra:
| Extra | Engine | Notes |
|---|---|---|
docling |
Docling | Rich layout, tables and OCR. Substantial dependencies; needs ~4 GB free RAM for automatic selection. |
paddleocr |
PaddleOCR PP-StructureV3 | CPU OCR, layout and tables for scans. Explicit selection only. |
markitdown |
MarkItDown | Office, HTML, spreadsheets and text-layer PDFs; no OCR. |
pymupdf4llm |
PyMuPDF | AGPL-3.0. MuPDF text layer, layout and tables. |
ollama |
Ollama vision models | Needs a running Ollama server. |
Marker and MinerU run as sidecar command-line tools in their own environments, because their dependency pins conflict. See Sidecar engines.
From source¶
git clone https://github.com/adityasasidhar/doctopus.git
cd doctopus
uv sync # base install
uv sync --extra docling # add an engine
uv run doctopus parse path/to/document.pdf
uv sync selects the extras for that environment: include every extra you want to keep in the same command, for example uv sync --extra dev --extra docling --extra paddleocr.
Docker¶
See Deployment for images with optional engines.