Overview
LiteParse is LlamaIndex's standalone open-source document parser, built for one thing: fast, light, local parsing. It does spatial text extraction with PDFium, reconstructs the page layout on a grid, and emits Markdown, structured JSON or layout-preserved plain text — with bounding boxes for every piece of text. There are no proprietary LLM features and no cloud dependency; everything runs on your machine. PDF is the core format, and DOCX, XLSX, PPTX and images are converted in first.
OCR is selective rather than mandatory. Tesseract is bundled for zero-setup use, any OCR server (EasyOCR, PaddleOCR or your own) can be plugged in over a documented HTTP API, and OCR results are merged with the native text layer instead of replacing it. A complexity-detection pass tells you cheaply whether a document needs OCR or heavier parsing at all, so a pipeline can route, reject or cost-estimate a file before committing to a full parse. Page screenshots can be rendered for handing pages to a vision model.
The Rust core is wrapped for Node.js/TypeScript (napi-rs), Python (PyO3) and the browser (WASM), and every non-WASM install ships the same `lit` CLI, so the command shape is identical whichever ecosystem you install from. The Python and Node bindings add a worker-pool mode: parses run in persistent worker processes for real parallelism — PDFium otherwise serialises concurrent parses — with hard per-parse timeouts so a pathological document is killed by name instead of stalling the pipeline. LiteParse is Apache-2.0 and runs on Linux, macOS (Intel and Apple Silicon) and Windows; LlamaIndex points at its hosted LlamaParse for the hardest documents.
What it does
- Spatial text parsing over PDFium with bounding boxes, plus grid-projection layout reconstruction
- Markdown, JSON and layout-preserved text output, with optional images, tables, links, annotations, form fields, vector graphics and tagged-PDF structure
- Selective OCR: bundled Tesseract, or any HTTP OCR server behind a documented API, merged with the native text layer
- Complexity detection to decide up front whether a document needs OCR or heavier parsing
- One `lit` CLI shared across the Rust, Python and Node installs, plus a WASM build for the browser
- Worker-pool mode (Python and Node) for true parallelism and hard per-parse timeouts
Getting started
Install from whichever ecosystem you already use — all of them except WASM ship the same `lit` CLI.
Install
Pick one. The Rust crate is available as both a CLI and a library.
npm i -g @llamaindex/liteparse # Node.js / TypeScript
pip install liteparse # Python
cargo install liteparse # Rust CLI (cargo add liteparse for the library)
npm i @llamaindex/liteparse-wasm # Browser (WASM)Parse a document
The default output is structured; --format picks what you get back.
lit parse document.pdf
lit parse document.pdf --format json -o output.jsonRender Markdown for a RAG pipeline
Markdown reconstruction rebuilds headings, tables, lists, images and links from the spatial layout — rule-based, so it stays fast.
lit parse document.pdf --format markdown -o output.mdNarrow the work
Parse a page range, skip OCR entirely, or stream a remote file straight in.
lit parse document.pdf --target-pages "1-5,10,15-20"
lit parse document.pdf --no-ocr
curl -sL https://example.com/report.pdf | lit parse -Pull images out alongside the text
--extract-images is the only flag that enables embedded-image extraction; --image-output-dir requires it and writes the bytes to disk.
lit parse document.pdf --format markdown --image-mode embed \
--extract-images --image-output-dir ./imagesCommands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Turn a corpus of PDFs and Office files into clean Markdown for a RAG index, entirely on your own machine
- Get bounding boxes for parsed text so citations can point back at a location on the page
- Screen a document with complexity detection and route only the hard ones to a heavier or hosted parser
- Parse at volume from Python or Node with a worker pool and per-document timeouts instead of a serialised loop
How LiteParse compares
LiteParse alongside other open-source parsing & ingestion tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| MarkItDown | ★ 183k | A Microsoft Python utility that converts many file types, including Office docs and PDFs, into Markdown for LLMs. |
| MinerU | ★ 79.7k | A document extraction tool that converts PDFs and Office files into clean Markdown or JSON, with strong handling of complex layouts and CJK content. |
| Docling | ★ 66.3k | An IBM-originated document conversion pipeline that turns PDF, DOCX, PPTX, HTML, and more into structured, LLM-ready Markdown or JSON. |
| Marker | ★ 39.7k | A fast pipeline that converts PDFs and other documents to Markdown, JSON, or HTML while preserving tables, equations, and formatting. |
| OfficeCLI | ★ 30.5k | A single-binary command-line Office suite built for AI agents: create, read and edit Word, Excel and PowerPoint files, render them to HTML or PNG, and drive it all over MCP. |
| OpenDataLoader PDF | ★ 29.1k | OpenDataLoader PDF turns any PDF into structured Markdown, JSON, or HTML with bounding boxes, and auto-tags untagged files into screen-reader-ready Tagged PDFs. |
| Repomix | ★ 28.3k | Repomix packs an entire repository into one file that is easy to feed to AI tools like Claude, ChatGPT, and Gemini. |
| LiteParse | ★ 12.3k | A fast local document parser with a Rust core — Markdown, JSON or text with bounding boxes, no cloud |