datalab-to

indra: Fast CPU OCR with Datalab’s Indra Model

Indra OCR uses Datalab’s compact model with ONNX Runtime to turn PDFs and images into markdown, text, or structured JSON on CPU. It adds line boxes, layout labels, and reading order for fast document parsing without a GPU.

NewPythonApache-2.0OCRPDFCLI
Stars
421
Forks
33
Last commit
1 day ago
Contributors
1
Releases, 12 months
1

Our take

Newless than six months old

Health score

32/100

How it is scored
Activity
43
Community
4
Issues
21
Pull requests
61
  • Fewer contributors than 92% of the projects we track

Indra is a promising, narrowly focused CPU OCR tool, but its very new release history and dependence on one contributor make long-term maintenance less established.

Good fit if

  • You need fast CPU OCR and structured page output for clean printed documents.
  • Your workflow uses Python 3.10 or newer and can accommodate model downloads from Hugging Face on first use.
  • Apache-2.0 code licensing works for you, and you have checked the separate model-weight license for your intended use.

Look elsewhere if

  • Your documents depend on handwriting, degraded scans, complex tables, or scanned Arabic, Hebrew, Thai, Japanese kana, or Korean Hangul.
  • You need a more established contributor base or demonstrated ongoing issue handling; this repository is new, has one contributor, and has no recent issue closures reported.
  • You need broad commercial use of the model weights without OpenRAIL-M restrictions; review Datalab’s licensing options or evaluate another OCR system.
All health signals
Last commit2026-10-15 (1 day ago)
Commits, last 90 days2
Releases, last 12 months1 (latest v0.3.1, 2026-10-13)
Contributors1
Issues closed, last 90 days0
Pull requests merged, last 90 days3 (typically merged in 0 days)
Project age3 days

Checked on 2026-10-16 with the GitHub API.

Overview

Indra is Datalab’s CPU-focused OCR tool, built around its Indra OCR model and ONNX Runtime. It converts PDFs and images into markdown, plain text, or JSON, addressing the need for fast document extraction with line boxes, layout blocks, and reading order rather than text alone. It supports Linux and macOS, and can use a PDF’s digital text layer as well as OCR scanned pages.

The project is aimed at clean printed documents and high-throughput CPU processing. It is less suited to handwriting, degraded scans, complex tables, or scanned text in scripts outside its supported OCR set.

Key Features

  • Converts PDFs and images to markdown, plain text, or JSON through a CLI or Python API.
  • Uses a small ONNX Runtime model package and does not require PyTorch or a GPU.
  • Combines a PDF’s text layer with OCR when needed, including OCR for text inside images.
  • Returns line-level boxes and confidences, layout blocks, reading order, page source, and timings.
  • Labels layout elements such as headings, tables, captions, lists, and page furniture.
  • Provides a local web viewer for inspecting page overlays and extracted output.
  • Supports OCR for Latin, Cyrillic, Greek, Devanagari, Bengali, and Chinese, while digital PDF text extraction supports any script.

Use Cases

  • Teams processing large batches of clean, printed PDFs on CPU can use the CLI or Python interface to extract markdown without deploying GPU infrastructure.
  • Developers building document-ingestion pipelines can use JSON output to retain line coordinates, layout labels, and confidence data.
  • Researchers or analysts handling digital PDFs can use hybrid mode to preserve text-layer content while OCRing missing text in page images.
  • Users reviewing OCR output can inspect line and block overlays in the local viewer before using extracted content downstream.

What you need

Detected in the repository

  • Python >=3.10 (from pyproject.toml)
  • A test suite and automated checks on GitHub Actions

License in plain words

Apache-2.0permissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the license, the NOTICE file and a note of your changes
  • Share your changes: no
  • Includes an explicit patent grant from the contributors:

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

pip install indra-ocr

The first run downloads the models. See the README for CLI, Python, viewer, and configuration details.

Alternatives

  • marker: Marker converts PDFs and other documents to Markdown, JSON, HTML, or chunks, using local models and an inference backend.
  • docling: Docling handles formats beyond PDFs and images, including Word files and spreadsheets, and offers a Python library and CLI.
  • PaddleOCR: PaddleOCR is a broader OCR toolkit with multilingual recognition and document-layout parsing for images and PDFs.
  • pdf-craft: PDF Craft focuses on scanned books and documents, with editable Markdown or EPUB output and optional translation.
ProjectLanguageLicenseStarsStatus
indraPythonApache-2.0421New
markerPythonApache-2.040.2kActive
doclingPythonMIT68.7kActive
PaddleOCRPythonApache-2.090.6kActive
pdf-craftPythonMIT6.3kActive

Considerations

The repository is only a few days old in the supplied project-health data, with a recent release and pull requests but little commit history to establish maintenance patterns. The measured contributor data shows that all contributions come from one person, and no issues were closed in the measured period, so teams should assess their support and continuity needs.

OCR is optimized for clean print. The README identifies handwriting, degraded scans, complex tables, vertical text, and several scripts on scanned pages as limitations. The code is Apache-2.0, but the model weights use a modified OpenRAIL-M license with additional usage terms, including restrictions on competitive use against Datalab’s API. Check both licenses before adopting it commercially.

Found this useful?

Share it with someone who would like indra.