# Docling

Local document converter with structured JSON and Markdown output.

## What is known from testing

On 2026-10-11, the headlesson operator ran all 3 steps of this lesson with Docling 2.137.0 (macOS26.5.2 arm64; Python3.11.13 disposable venv; wheel-only PyPI installation; no LLM use), and all passed. The final Next step is advice and was not run. An independent check (revision 3fadc9d) covered: Independent trial and audit on one self-made English page: headings, text and a table compared with the Markdown output; the source PDF was rendered independently. Its limits: Sample-limited. Scanned images, Japanese OCR and complex real documents were not measured. This is the operator's own run, not a vendor claim.

- Test record: [test:zcpidpi](/tests/zcpidpi) — 2026-10-11, 2.137.0, passed

## Independent check

Independent check (revision 3fadc9d6215b): Independent trial and audit on one self-made English page: headings, text and a table compared with the Markdown output; the source PDF was rendered independently.

Limits: Sample-limited. Scanned images, Japanese OCR and complex real documents were not measured.

## Description

Docling parses documents including PDF layout and OCR content into a DoclingDocument representation. It supports local and air-gapped processing when required assets are prepared. Optional VLM pipelines can use selected models.

## Current lesson

Goal: Convert one owner-chosen local PDF and inspect the output.

This is the current lesson. The test record above was run on the lesson as it was at its own revision; they can differ.

- 1. pip install docling
- 2. docling ./sample.pdf
- 3. Inspect the generated Markdown in the current directory against the original PDF.

Next (advice, not tested): Next: Select the real document and output destination with the user, run docling <confirmed-document-path>, then compare text, tables and reading order with the original. Record missing or misread content before sending the output to a downstream LLM.

## Cautions recorded with the lesson

These notes come from the lesson. Some describe failures seen in tests; others are general cautions. Each one is not a separately tested result.

- Python 3.10 or newer and an owner-provided sample.pdf are prerequisites; first use may download model assets.
- Software MIT licensing does not determine every model component or weight license.
- Japanese OCR support is backend/version dependent and is not an accuracy guarantee.
- Successful conversion or schema validation does not prove source-faithful transcription.
- Confirm: Check formats/languages, model assets, output path and permission/costs for any downstream external transfer; a successful conversion is not an accuracy guarantee.

## How to start

- cli Docling CLI: install `pip install docling`; check `unknown`; auth: Local default processing; optional remote conversion backends have their own authentication.; docs: [https://github.com/docling-project/docling/blob/main/README.md](https://github.com/docling-project/docling/blob/main/README.md)
- mcp-stdio Docling MCP: install `uvx --from=docling-mcp docling-mcp-server`; check `unknown`; auth: Default local conversion; remote backend options require separate configuration.; docs: [https://docling-project.github.io/docling/usage/mcp/](https://docling-project.github.io/docling/usage/mcp/)
- rest Docling Serve REST API (separate docling-serve component): install `unknown`; check `unknown`; auth: A running docling-serve endpoint and its service URL; an API key is needed if that server requires DOCLING_SERVE_API_KEY.; docs: [https://docling-project.github.io/docling/usage/api_server/](https://docling-project.github.io/docling/usage/api_server/)

Where each of these values comes from is listed per field under Sources (/interfaces/N/field).

## Compared facts

- license: MIT (checked 2026-10-09, primary, official; source: [https://github.com/docling-project/docling/blob/main/LICENSE](https://github.com/docling-project/docling/blob/main/LICENSE))
- open_source: true (checked 2026-10-09, primary, official; source: [https://github.com/docling-project/docling/blob/main/README.md](https://github.com/docling-project/docling/blob/main/README.md))
- pricing: unknown (not confirmed)
- has_human_gui: unknown (not confirmed)
- non_interactive: unknown (not confirmed)
- machine_output: true (checked 2026-10-09, primary, official; source: [https://github.com/docling-project/docling/blob/main/README.md](https://github.com/docling-project/docling/blob/main/README.md))
- local_mcp: true (checked 2026-10-09, primary, official; source: [https://docling-project.github.io/docling/usage/mcp/](https://docling-project.github.io/docling/usage/mcp/))
- remote_mcp: unknown (not confirmed)
- cli: true (checked 2026-10-09, primary, official; source: [https://github.com/docling-project/docling/blob/main/README.md](https://github.com/docling-project/docling/blob/main/README.md))
- rest_api: true (checked 2026-10-09, primary, official; source: [https://docling-project.github.io/docling/usage/api_server/](https://docling-project.github.io/docling/usage/api_server/))
- auth: none (checked 2026-10-09, inferred, editorial; source: [https://github.com/docling-project/docling/blob/main/README.md](https://github.com/docling-project/docling/blob/main/README.md))
- self_hostable: true (checked 2026-10-09, primary, official; source: [https://github.com/docling-project/docling/blob/main/README.md](https://github.com/docling-project/docling/blob/main/README.md))
- embeds_llm: yes (checked 2026-10-09, primary, official; source: [https://github.com/docling-project/docling/blob/main/README.md](https://github.com/docling-project/docling/blob/main/README.md))
- refusal_contract: unknown (not confirmed)
- audit_log: unknown (not confirmed)
- last_release: 2026-10-09 (checked 2026-10-09, primary, official; source: [https://pypi.org/pypi/docling/json](https://pypi.org/pypi/docling/json))
- ja_support: true (checked 2026-10-09, primary, official; source: [https://docling-project.github.io/docling/concepts/OCR_native/](https://docling-project.github.io/docling/concepts/OCR_native/))

## Sources

Each line names fields of this page (as JSON pointers into the .json version) and where they come from. Labels without a link are non-public sources. Fields not listed (such as test results) are the headlesson operator's own observations.

- /name, /one_liner, /lesson/cautions/items/1, /interfaces/0/kind, /interfaces/0/name, /interfaces/0/install, /interfaces/0/auth, /interfaces/0/docs, /axes/open_source, /axes/machine_output, /axes/cli, /axes/self_hostable, /axes/embeds_llm, /relations/0: [https://github.com/docling-project/docling/blob/main/README.md](https://github.com/docling-project/docling/blob/main/README.md) (checked 2026-10-09, primary, official)
- /description, /lesson/steps/0, /lesson/steps/1: [https://github.com/docling-project/docling/blob/main/README.md](https://github.com/docling-project/docling/blob/main/README.md) (checked 2026-10-09, primary, editorial)
- /lesson/goal, /lesson/steps/2, /lesson/cautions/items/0, /lesson/cautions/items/3: headlesson editorial judgement (checked 2026-10-09, inferred, editorial)
- /lesson/next_advice, /lesson/cautions/items/4: [https://raw.githubusercontent.com/docling-project/docling/main/README.md](https://raw.githubusercontent.com/docling-project/docling/main/README.md) (checked 2026-10-10, inferred, editorial)
- /lesson/cautions/items/2: [https://docling-project.github.io/docling/concepts/OCR/](https://docling-project.github.io/docling/concepts/OCR/) (checked 2026-10-09, primary, official)
- /interfaces/1/kind, /interfaces/1/name, /interfaces/1/install, /interfaces/1/auth, /interfaces/1/docs, /axes/local_mcp: [https://docling-project.github.io/docling/usage/mcp/](https://docling-project.github.io/docling/usage/mcp/) (checked 2026-10-09, primary, official)
- /interfaces/2/kind, /interfaces/2/name, /interfaces/2/auth, /interfaces/2/docs: [https://docling-project.github.io/docling/usage/api_server/](https://docling-project.github.io/docling/usage/api_server/) (checked 2026-10-09, primary, editorial)
- /axes/license: [https://github.com/docling-project/docling/blob/main/LICENSE](https://github.com/docling-project/docling/blob/main/LICENSE) (checked 2026-10-09, primary, official)
- /axes/rest_api: [https://docling-project.github.io/docling/usage/api_server/](https://docling-project.github.io/docling/usage/api_server/) (checked 2026-10-09, primary, official)
- /axes/auth: [https://github.com/docling-project/docling/blob/main/README.md](https://github.com/docling-project/docling/blob/main/README.md) (checked 2026-10-09, inferred, editorial)
- /axes/last_release: [https://pypi.org/pypi/docling/json](https://pypi.org/pypi/docling/json) (checked 2026-10-09, primary, official)
- /axes/ja_support: [https://docling-project.github.io/docling/concepts/OCR_native/](https://docling-project.github.io/docling/concepts/OCR_native/) (checked 2026-10-09, primary, official)

## Primary record

Test results here are the operator's own past lesson trials (legacy). They are not claimed to meet level L1 of run-task-contract/0.1.0.

## Relations

- used-for: [usecase:parse-documents-for-llm](/usecases/parse-documents-for-llm)

3 other relations point to records that are not published yet.

## Retrieve over MCP

`headlesson_get id="app:docling" sections ["lesson","gotchas"]` on https://mcp.headlesson.com/mcp

## Cite

headlesson app:docling: see test record test:zcpidpi (https://headlesson.com/tests/zcpidpi).

Page updated: 2026-10-13 (the date its content last changed).

要約（日本語）: Docling。運営の試用（2026-10-11、2.137.0、passed）の記録がある。詳しい条件・限界・出典は本文のとおり。
