Docling
Docling converts documents — PDF, DOCX, PPTX, XLSX, HTML, Markdown, AsciiDoc,
CSV, images, audio, and XML — into a single unified representation, the
DoclingDocument, which you can export as Markdown (human-readable) or
JSON (structured, lossless). Reach for Docling whenever you need to
understand the content of a file you cannot read directly, especially PDFs
(including scanned ones, via OCR or a vision-language model).
The fastest thing that works: the CLI
If you just need to read a document's content, run the CLI. It is installed with
the docling package and accepts a local path or a URL:
docling report.pdf --to md --output /tmp/ # → /tmp/report.md
docling https://example.com/paper.pdf --to json --output /tmp/
Output files are named after the input (report.pdf → report.md). Default
output directory is the current directory. This handles the majority of
"what's in this file" requests. See references/cli.md
for pipelines (standard vs VLM), OCR engines, tables, scanned PDFs, passwords,
and every flag.
Choosing how to use Docling
| You need to… |
Use |
Reference |
| Read / convert a file once, from the shell |
CLI (docling …) |
references/cli.md |
| Convert programmatically, tune the pipeline, batch, ASR, export images/tables |
Python SDK (DocumentConverter + PipelineOptions) |
references/python-sdk.md |
| Pull specific typed fields out of a document (not the whole doc) |
DocumentExtractor (structured extraction, beta) |
references/extraction.md |
| Chunk documents for retrieval / feed a RAG index |
Chunking + framework loaders |
references/rag.md |
| Offload conversion to a remote service — low latency, scalable, no local ML deps or GPU |
Service Client (self-hosted or managed docling-serve) |
references/service-client.md |
| Install only the dependencies you actually use |
docling-slim extras |
references/slim-packaging.md |
Rules of thumb:
- Local, one-off, no code → CLI.
- Custom pipeline, chunking, structure analysis, embedding in an app → Python SDK.
- Many documents, low-latency, no GPU/ML install to manage, scale on demand
→ Service Client against a
docling-serve endpoint (self-hosted or the
managed Docling for IBM watsonx service).
- Minimize install size / avoid pulling torch and OCR engines you don't need
→ docling-slim with targeted extras.
Running without installing (uvx)
You can run the CLI without a persistent install:
uvx --from docling docling report.pdf --to md --output /tmp/
Output conventions
- Always report the conversion status and (for PDFs) the page count.
- If the user does not specify a format, ask whether they want Markdown (readable) or JSON / DoclingDocument (structured, lossless).
- For tables, prefer
export_to_markdown() / export_to_dataframe() on the table item (Python) — see references/python-sdk.md.
- If a converted PDF comes back near-empty, repeated, or full of
�, the source is likely scanned or complex layout — retry with OCR or --pipeline vlm (see references/cli.md).
1---2name: docling3description: Use Docling to understand the content of documents in any supported format — PDF (born-digital or scanned), DOCX, PPTX, XLSX, HTML, Markdown, AsciiDoc, CSV, images, audio, and XML — by converting them into a unified DoclingDocument (Markdown or structured JSON). Use this skill whenever you need to read, parse, convert, extract, or chunk a document you cannot read directly: "what's in this PDF", "convert this to markdown", "extract the tables", "chunk this for RAG", "read this scanned document", "parse this DOCX/PPTX". Covers the `docling` CLI, the Python SDK (DocumentConverter + PipelineOptions), the remote Service Client (self-hosted or managed docling-serve), and the docling-slim install extras for a minimal dependency footprint.4license: MIT5---67# Docling89Docling converts documents — PDF, DOCX, PPTX, XLSX, HTML, Markdown, AsciiDoc,10CSV, images, audio, and XML — into a single unified representation, the11**`DoclingDocument`**, which you can export as **Markdown** (human-readable) or12**JSON** (structured, lossless). Reach for Docling whenever you need to13understand the content of a file you cannot read directly, especially PDFs14(including scanned ones, via OCR or a vision-language model).1516## The fastest thing that works: the CLI1718If you just need to read a document's content, run the CLI. It is installed with19the `docling` package and accepts a local path **or** a URL:2021```bash22docling report.pdf --to md --output /tmp/ # → /tmp/report.md23docling https://example.com/paper.pdf --to json --output /tmp/24```2526Output files are named after the input (`report.pdf` → `report.md`). Default27output directory is the current directory. This handles the majority of28"what's in this file" requests. See **[references/cli.md](references/cli.md)**29for pipelines (standard vs VLM), OCR engines, tables, scanned PDFs, passwords,30and every flag.3132## Choosing how to use Docling3334| You need to… | Use | Reference |35|---|---|---|36| Read / convert a file once, from the shell | **CLI** (`docling …`) | [references/cli.md](references/cli.md) |37| Convert programmatically, tune the pipeline, batch, ASR, export images/tables | **Python SDK** (`DocumentConverter` + `PipelineOptions`) | [references/python-sdk.md](references/python-sdk.md) |38| Pull specific typed fields out of a document (not the whole doc) | **DocumentExtractor** (structured extraction, beta) | [references/extraction.md](references/extraction.md) |39| Chunk documents for retrieval / feed a RAG index | **Chunking + framework loaders** | [references/rag.md](references/rag.md) |40| Offload conversion to a remote service — low latency, scalable, no local ML deps or GPU | **Service Client** (self-hosted or managed docling-serve) | [references/service-client.md](references/service-client.md) |41| Install only the dependencies you actually use | **docling-slim** extras | [references/slim-packaging.md](references/slim-packaging.md) |4243Rules of thumb:4445- **Local, one-off, no code** → CLI.46- **Custom pipeline, chunking, structure analysis, embedding in an app** → Python SDK.47- **Many documents, low-latency, no GPU/ML install to manage, scale on demand**48 → Service Client against a `docling-serve` endpoint (self-hosted or the49 managed **Docling for IBM watsonx** service).50- **Minimize install size / avoid pulling torch and OCR engines you don't need**51 → docling-slim with targeted extras.5253## Running without installing (uvx)5455You can run the CLI without a persistent install:5657```bash58uvx --from docling docling report.pdf --to md --output /tmp/59```6061## Output conventions6263- Always report the conversion status and (for PDFs) the page count.64- If the user does not specify a format, ask whether they want **Markdown** (readable) or **JSON / DoclingDocument** (structured, lossless).65- For tables, prefer `export_to_markdown()` / `export_to_dataframe()` on the table item (Python) — see [references/python-sdk.md](references/python-sdk.md).66- If a converted PDF comes back near-empty, repeated, or full of `�`, the source is likely scanned or complex layout — retry with OCR or `--pipeline vlm` (see [references/cli.md](references/cli.md)).