mrkeyoor.com_
Mon 10 Aug 15:52 UTC
Dataevaluationupdated 10 Aug 2026

liteparse

LiteParse is a local document parser that turns PDFs, office files, and images into text, Markdown, JSON, or page screenshots. It uses PDFium, layout rules, and optional OCR instead of a proprietary language model, making it useful for fast extraction and document routing without a cloud dependency.

Verdict

LiteParse is an excellent first stage for local document pipelines because it is easy to install, broad across runtimes, and honest about when heuristic parsing stops being enough. Use it for ordinary digital PDFs, selective OCR, screenshots, and complexity routing, then keep a fallback for visually difficult material. Do not mistake fast Markdown output for guaranteed document understanding, especially around tables and rotated pages.

Setup4/5One package for PDFs, with LibreOffice and advanced OCR extra
Docs5/5Detailed CLI, APIs, formats, OCR, metadata, and agent guidance
Community5/5Current releases and near-daily issue and pull-request work
Maturity4/5Capable v2 core, with table and binding inconsistencies remaining

Who it’s for

  • Developers building local or air-gapped document ingestion for search, RAG, archives, and agent workflows.
  • Python, Node.js, Rust, or browser teams that want one parsing core across several runtimes.
  • Pipelines that need page text with bounding boxes, screenshots, forms, annotations, links, images, or document metadata.
  • Teams that want a cheap complexity check before sending only difficult pages to a heavier parser.
  • Claude Code users who want a documented agent skill for parsing a file once and searching the saved result.

Who it’s NOT for

  • Teams expecting accurate reconstruction of every dense table, multi-column page, chart, handwritten note, or difficult scan: the README explicitly recommends LlamaParse for those cases.
  • Pipelines that need tables directly as CSV or structured cells: open issues #404 and #308 request that output, while current table extraction is primarily Markdown.
  • Applications that need layout blocks tied to bounding boxes: issues #403 and #407 explain that Markdown has inferred structure and JSON has positioned text items, but the link between them is not exposed.
  • Users parsing rotated landscape pages without a validation step: issue #153 reports 90-degree pages producing gibberish.
  • Office-document users who cannot install LibreOffice: DOCX, XLSX, PPTX, and related formats are converted through it before parsing.
  • Teams assuming every binding has identical output and test depth: issue #391 reports npm text output omitting page separators, and issue #261 says the Node package lacks end-to-end coverage.

Setup reality

PDF parsing starts with one npm, pip, or Cargo install, and the shared lit command includes Tesseract for default OCR. That is a genuinely light start. Office formats add a full LibreOffice installation and PATH handling on Windows, non-English OCR needs the right Tesseract language data, and higher-accuracy OCR means operating an EasyOCR, PaddleOCR, or compatible HTTP service. Production pipelines still need representative fixtures, page and memory limits, output validation, and a fallback for documents that LiteParse's complexity check flags.

Local parsing with a deliberately narrow brain

LiteParse extracts documents without asking a language model to interpret every page. Its Rust core uses PDFium to read and render PDFs, Tesseract for built-in OCR, and spatial rules to reconstruct readable text and Markdown. The same engine is packaged for Rust, Python, Node.js, and WebAssembly. A shared lit command comes with the non-browser packages.

That architecture suits document ingestion where speed, privacy, and predictable cost matter more than solving every strange layout. A digital report can become text for search, Markdown for a retrieval pipeline, JSON with positioned text items, or PNG screenshots for a later visual step. Everything can run locally, including OCR, and Apache 2.0 licensing keeps the core usable in commercial systems.

The project does not pretend heuristics equal full visual understanding. Its README says dense tables, multiple columns, charts, handwriting, and difficult scans are better handled by LlamaParse, LlamaIndex's cloud service. That sales route is also a useful product boundary: LiteParse is the fast first pass, not a universal replacement for expensive document intelligence.

An unusually practical command line

Installation is simple for PDFs. pip install liteparse, the npm package, or Cargo supplies the parser, while Tesseract is bundled. The CLI can parse one file, a page range, or a directory; read a PDF from standard input; disable OCR for born-digital material; and write text, Markdown, or JSON. The default 1,000-page cap and configurable OCR workers are sensible safety controls.

The is-complex command is a standout. It cheaply inspects the text layer, labels pages as scanned, sparse, image-heavy, garbled, vector text, or annotation text, and exits nonzero when any page needs OCR. A pipeline can use that result to reject a file, turn OCR on, or send only difficult material to another service. This is more useful than blindly applying the slowest parser to every upload.

Screenshots add another escape hatch. An agent can parse text first, search it, and render only a page whose chart or layout carries the answer. The linked agent skill formalizes that workflow: parse once to a temporary file, search the saved output, and reserve screenshots for cases text cannot settle. Because it is distributed as a Claude-style skill under .claude/skills, LiteParse also fits Claude Code document tasks without becoming an MCP server.

More than plain text, but not one unified model

Structured output reaches well beyond a text dump. Callers can opt into bounding boxes, rich text metadata, vector paths, annotations, form fields, embedded images, tagged-PDF structure, content bounds, XFA packets, and provenance such as signatures and incremental-save markers. Most expensive or bulky fields are off by default. That restraint keeps ordinary JSON manageable.

Markdown reconstruction identifies headings, lists, links, images, and tables from spatial layout. Image references appear by default, but extracting the actual image bytes requires a separate option and output directory. This distinction is documented clearly and prevents an innocent Markdown request from unexpectedly filling storage with binary assets.

There is still a split between human-friendly structure and machine-friendly coordinates. Issue #403 notes that Markdown contains inferred blocks while JSON exposes line-level text items and bounding boxes, without linking a Markdown block back to its source region. Issue #407 proposes a block representation with provenance. Applications that highlight an answer on the original page cannot assume this mapping already exists.

Office files and OCR expand the setup

PDFs are the native path. Word, PowerPoint, spreadsheet, Apple office, OpenDocument, CSV, and related inputs first go through LibreOffice. That means another large system package, plus PATH configuration on some Windows machines. Images are converted natively in Rust, so the current README says ImageMagick is no longer needed.

Default Tesseract OCR keeps scans local and needs no separate server for English. Other languages require their trained data, especially in an air-gapped environment. Teams wanting another accuracy or performance profile can run the example EasyOCR or PaddleOCR HTTP wrappers, or implement the small documented API. Once that happens, LiteParse remains the client contract, but model deployment, language packs, hardware, and service monitoring become the team's responsibility.

Quality must be measured on real files. Issue #400 shows one sparse row causing a Markdown table to turn into column-wise prose. Issue #395 describes interleaved free text displacing a table header. Issue #153 reports rotated pages becoming gibberish. These are exactly the failures that can look plausible to downstream software, so a successful exit code is not enough for invoices, legal exhibits, or financial tables.

Healthy, fast-moving, and still converging

The repository was pushed on August 10, 2026. Version 2.11.1 packages for Rust, Python, Node.js, and WASM were released on August 5, with a fix for visible AcroForm values and an updated agent-skill guide. The combined open count was 31 issues and pull requests, and work in early August covered bounded-memory batches, tolerant page errors, screenshots, OCR servers, table fixes, and layout proposals. Maintainers also closed issue reports through matching patches, a good signal for a project moving this quickly.

Documentation is exceptional for the age of the tool. The README gives exact flags, defaults, format dependencies, output semantics, and expensive opt-ins instead of stopping at a demo. The remaining risk is cross-binding consistency: an open report says npm text output lacks page separators present in pip and Cargo, while another asks for Node end-to-end tests. Pin versions and run the same fixture suite against whichever binding you deploy.

LiteParse should be the first parser tried for ordinary local extraction, not the last parser forced onto every document. Its best role is to handle easy pages cheaply, expose evidence with coordinates and screenshots, and identify files that deserve heavier treatment. That honest division of labor makes it more useful than a parser that promises perfect Markdown and quietly returns convincing mistakes.

Alternatives

ProjectWhat it isPick it when
DoclingA local document conversion toolkit with richer layout, table, and multimodal processing.pick this instead when difficult layouts and structured document understanding matter more than LiteParse's small, fast rule-based path.
UnstructuredA broad Python document-ingestion toolkit with partitioning, chunking, and many file-type connectors.pick this instead when you need a larger ingestion framework and downstream chunking across many enterprise formats.
PyMuPDFA mature Python binding for direct PDF text extraction, rendering, editing, and inspection.pick this instead when you want low-level PDF control or document editing and can build layout reconstruction yourself.

What people are saying

  1. [github-trending] run-llama/liteparse

Sources

  1. LiteParse repository and README
  2. LiteParse Node.js 2.11.1 release
  3. LiteParse documentation
  4. LiteParse agent skill
  5. Open issue: structured blocks with bounding boxes
  6. Open issue: sparse-row Markdown table failure
  7. Open issue: rotated page detection
  8. Open issue: Node CLI page-separator mismatch