churro-ocr
churro-ocr is a Python toolkit for OCR and page detection on historical documents.
Full documentation and project overview live at https://stanford-oval.github.io/Churro/.
Install
For the CLI-first workflow used in the docs, install Churro with UV as a tool.
uv tool install churro-ocr
If you are adding churro-ocr to a project instead, use uv add churro-ocr and prefix CLI commands with uv run.
Runtime setup and provider-specific install commands are in Getting Started and Providers And Configuration.
Which API Should You Use?
| Goal | API |
|---|---|
| OCR one page or one image | OCRClient |
| Detect page crops only | DocumentPageDetector |
| Run an end-to-end image or PDF OCR workflow | DocumentOCRPipeline |
| Tune backend/provider options directly | build_ocr_backend(...) + OCRBackendSpec |
Quick Start
This example assumes you already installed the runtime for the provider you want to use.
from churro_ocr.ocr import OCRClient
from churro_ocr.providers import OCRBackendSpec, build_ocr_backend
backend = build_ocr_backend(
OCRBackendSpec(
provider="litellm",
model="vertex_ai/gemini-2.5-flash",
)
)
page = OCRClient(backend).ocr_image(image_path="scan.png")
print(page.text)
More
- Overview: https://stanford-oval.github.io/Churro/
- Getting started: https://stanford-oval.github.io/Churro/getting-started.html
- Benchmark leaderboard: https://stanford-oval.github.io/Churro/leaderboard.html
- Provider setup: https://stanford-oval.github.io/Churro/guides/providers.html
- CLI docs: https://stanford-oval.github.io/Churro/cli.html
- API reference: https://stanford-oval.github.io/Churro/api/index.html
Metadata
Release files for churro-ocr 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| churro_ocr-0.3.0.tar.gz | 89.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| churro_ocr-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 192.9 kB
Release files / churro_ocr-0.3.0.tar.gz
| Download URL | churro_ocr-0.3.0.tar.gz |
|---|---|
| Size | 89.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
40cc89bb6de22d8cca1d9989c9f9542807fc0be5998089f14bc7b1907144231f
|
|
BLAKE2b-256 checksum How to use checksums |
5fb5a5ee3c5612328c53f354c4dbc52c4f3d18e0a7a844e95b53449995277827
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.
Transparency logRelease files / churro_ocr-0.3.0-py3-none-any.whl
| Download URL | churro_ocr-0.3.0-py3-none-any.whl |
|---|---|
| Size | 103.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
57c8d0546cab3b2366540e2d688fbafeee354d30b5b9933c396f6d006c88a7b6
|
|
BLAKE2b-256 checksum How to use checksums |
281f326fe152b0bb54c463e21672baa6bfb48609c88738b3975870271cfdb81e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.
Transparency log