thehardwarestore.ai

where AI agents shop for the right tools

── 99215 repos indexed ── | filtered by tag: ocr
paperless-ngx/paperless-ngx ★ 46102 3194 APPLICATION

Paperless-ngx is a production-grade, self-hosted document management system. It ingests physical and digital documents through a consume folder, REST API uploads, and IMAP email fetching, then runs OCR via Tesseract/ocrmypdf, extracts text through a pluggable parser registry, generates archive PDFs and thumbnails, and stores structured metadata (tags, correspondents, document types, custom fields). Documents are indexed in Tantivy and exposed through a Django REST API consumed by an Angular SPA that provides search, editing, bulk operations, permissions, workflows, sharing, and an admin interface. Background processing is handled by Celery/Redis with real-time status pushed over WebSockets. The system also includes optional AI/LLM classification, RAG chat over the document index, and a workflow engine that reacts to consumption and document lifecycle events with actions like assignment, emailing, webhooks, and trash moves. Though primarily an application, it contains a substantial search-engine subsystem and an optional LLM/embedding pipeline, giving it a mild hybrid character.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
Stirling-Tools/Stirling-PDF ★ 93433 10054 APPLICATION

Stirling PDF is a comprehensive, open-source PDF processing platform that provides 50+ document manipulation tools (merge, split, compress, OCR, sign, redact, convert, etc.) via a web UI, REST API, and desktop client (Tauri). The backend is a modular Java Spring Boot application split into core, common, proprietary, and SaaS modules, while the frontend is a React/TypeScript app with Mantine UI and Storybook. The system also includes a Python FastAPI engine for AI-powered features such as document classification, math auditing, and question answering, and an enterprise policy engine for automated document workflows with triggers, pipelines, and output sinks (local, S3, vector DB). It supports self-hosted, SaaS (Supabase/Stripe), and desktop deployment modes with clustering via Valkey/Redis backplane, SSO/OAuth2/SAML2 authentication, and comprehensive billing/licensing (PAYG, subscriptions, enterprise). The architecture is multi-module with clear separation of concerns: `app/common` provides shared utilities (PDF parsing, security, cluster abstractions, temp file management), `app/core` implements core PDF operations, `app/proprietary` adds enterprise features (encrypted storage, policy engine, audit, hardware signing), and `app/saas` handles SaaS-specific billing and team management. The frontend uses a shadowing pattern to swap implementations per build variant (core, proprietary, desktop, SaaS) without conditional imports. The AI engine runs as a separate Python service with streaming progress events and two-round protocols for complex tasks. Key data flows include: PDF upload → tool execution (Java PDFBox/iText) → output download; policy-triggered processing (folder watch, schedule) → pipeline execution → output delivery; AI agent workflows (classification, auditing) with progress streaming. External dependencies include LibreOffice (document conversion), Tesseract (OCR), PDFBox, iText, and various cloud services (Supabase, Stripe, PostHog). The codebase demonstrates high craftsmanship with extensive unit/integration/E2E tests, reusable component patterns (createToolFlow, useBaseTool), and well-abstracted interfaces for storage, signing, licensing, and clustering.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
PaddlePaddle/PaddleOCR ★ 90516 11433 APPLICATION

PaddleOCR is a production-grade OCR and document parsing toolkit built on PaddlePaddle. It provides a comprehensive suite of models for text detection, text recognition, layout analysis, table extraction, formula recognition, key information extraction (KIE), and document conversion (PDF/Image to Markdown/JSON). The system is deployed as a Python CLI, a Python library, a C++ inference engine, mobile SDKs (Android, iOS), a JavaScript browser SDK, a Go SDK, a TypeScript SDK, and a Model Context Protocol (MCP) server for AI agent integration. It also includes a cloud API client for remote inference. The architecture is modular: models are configurable via YAML, pipelines orchestrate multi-stage workflows, and deployment targets range from edge devices to cloud servers. The codebase is actively maintained with extensive testing, CI/CD, and support for multiple hardware accelerators (GPU, NPU, XPU, etc.). While primarily an application toolkit, it also contains research-grade training infrastructure, custom loss functions, and data augmentation modules, making it a hybrid project with a strong application focus.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 6 reusable components found
tesseract-ocr/tesseract ★ 76806 10819 APPLICATION

Tesseract is an open-source optical character recognition (OCR) engine originally developed by Hewlett-Packard and now maintained by Google and the community. It provides a C++ library (libtesseract) and a command-line tool (tesseract) that can recognize text from images in over 100 languages. The engine supports two recognition backends: a legacy engine based on character pattern matching with adaptive classifiers, and a modern LSTM-based neural network engine for line-level recognition. The architecture is modular, with separate components for page layout analysis (textord), character classification (classify), word recognition (wordrec), dictionary/DAG search (dict), and neural network layers (lstm). Training tools (src/training) allow users to build custom language models and fine-tune existing ones. The codebase is well-structured, extensively tested, and includes optimizations for SIMD (SSE, AVX, NEON, RVV). While primarily an application/library, it also has strong research elements in its LSTM training pipeline, feature extraction, and Unicode validation subsystems. The project has a long history but remains actively maintained, with recent commits addressing security, performance, and new architectures.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
microsoft/markitdown ★ 187875 13900 APPLICATION

MarkItDown is a Python library and CLI tool that converts a wide variety of file formats (PDF, DOCX, PPTX, XLSX, HTML, CSV, JSON, EPUB, Outlook MSG, images, audio, YouTube, RSS, IPYNB, ZIP, and more) into Markdown. Its primary production use is preparing documents for LLM ingestion, agent workflows, and text analysis pipelines. The architecture is a monorepo containing the core `markitdown` package, an OCR extension (`markitdown-ocr`) that uses LLM Vision for image text extraction, an MCP server (`markitdown-mcp`) exposing conversion as a tool for AI agents, and a sample plugin for third-party converters. The core library uses a plugin system based on `importlib.metadata.entry_points` to register converters, each implementing a `DocumentConverter` base class with `accepts()`/`convert()` methods and a priority-based dispatch. The main entry points are the `MarkItDown` class (Python API), the `markitdown` CLI, and the MCP server's `convert_to_markdown` tool. Data flows from local files, streams, HTTP responses, or URIs through converter selection (by MIME type, extension, or content inspection) to produce Markdown output. External dependencies include many optional format-specific libraries (pdfminer.six, python-docx, python-pptx, openpyxl, etc.), external binaries (exiftool, ffmpeg), cloud APIs (Azure Document Intelligence, Azure Content Understanding), and an OpenAI-compatible LLM client for image captioning and OCR.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
docling-project/docling ★ 68329 4990 APPLICATION

Docling is a production-grade Python library for converting diverse document formats (PDF, DOCX, PPTX, XLSX, HTML, LaTeX, EPUB, images, audio, video, email, EBCDIC, and more) into a unified, structured `DoclingDocument` representation. It is designed to serve as the document understanding layer for AI workflows, particularly Retrieval-Augmented Generation (RAG), agentic AI, and document extraction pipelines. The system provides a rich Python SDK, a Typer-based CLI (`docling convert`), a service client for remote conversion via `docling-serve`, and an MCP server. It supports multiple output formats including Markdown, JSON, HTML, DocTags, and plain text. Architecturally, Docling employs a modular pipeline system with pluggable backends for each input format and a stage-based processing model. The core pipeline (`StandardPdfPipeline`, `VlmPipeline`, `AsrPipeline`) orchestrates page-level operations (preprocessing, OCR, layout detection, table structure recognition, picture classification, reading order) and document-level enrichments (code/formula extraction, heading hierarchy, picture description). Inference engines are abstracted behind factory patterns supporting ONNX Runtime, HuggingFace Transformers, vLLM, MLX, KServe v2, and remote APIs. The library integrates with over 20 OCR engines and vision-language models, and includes a plugin system for extensibility. Key entry points include the `DocumentConverter` class, the CLI (`docling.cli.main`), and the service client (`docling.service_client`). External dependencies span PDF libraries (pypdfium2, docling-parse), ML frameworks (torch, transformers, onnxruntime), OCR engines (Tesseract, EasyOCR, RapidOCR), and cloud services (KServe, Azure, S3). The codebase is actively maintained with frequent releases, extensive test coverage, and a clear migration path from legacy components.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
ocrmypdf/OCRmyPDF ★ 34883 2416 APPLICATION

OCRmyPDF is a mature, production-grade command-line tool and Python library that adds searchable OCR text layers to scanned PDFs, producing PDF/A-compliant output by default. The system ingests PDFs or images, optionally deskews/cleans pages via unpaper, rasterizes with Ghostscript or pypdfium2, runs Tesseract OCR, grafts the recognized text into the original PDF using a plugin-based pipeline, and performs image optimization with pngquant/jbig2enc. It supports multiple output formats (PDF/A-1b, PDF/A-2b, plain PDF), a plugin system for replacing OCR engines, rasterizers, and progress bars, and includes a directory watcher for batch processing. Architecture is a modular Python CLI/library with external subprocess orchestration; core abstractions include typed OcrOptions (pydantic), Executor concurrency, FontProvider chains, and the OcrElement data model. The codebase is exceptionally well-tested with a comprehensive suite of unit, integration, and plugin-level tests, and demonstrates advanced patterns for PDF repair, cross-platform tool discovery, and atomic file operations.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
ShareX/ShareX ★ 39908 3947 APPLICATION

ShareX is a comprehensive screenshot, image editing, and file sharing application for Windows. It features a modular architecture with separate libraries for screen capture, image editing, uploading, helpers, history, and tools. The application supports capturing screenshots/recordings, applying annotations and effects, uploading to over 50 services, and includes various productivity tools. Built with .NET/C# using a mix of Windows Forms and Avalonia UI frameworks, it employs MVVM patterns, plugin architectures for extensibility, and cross-cutting helper libraries. The system handles data flows from capture through editing to upload/storage, with history tracking for user convenience.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
opendataloader-project/opendataloader-pdf ★ 29484 2809 APPLICATION

OpenDataLoader-PDF is a production-grade, multi-language PDF-to-structured-content extraction tool designed for AI/LLM pipelines, RAG systems, and accessibility workflows. It converts PDFs into JSON, Markdown, HTML, plain text, and tagged PDF (PDF/UA) with high accuracy (0.907 overall benchmark). The core engine is written in Java (veraPDF-based) and provides a rich CLI, while Python and Node.js SDKs bundle the Java JAR and expose idiomatic APIs. A hybrid mode routes pages to an external AI backend (Docling) for OCR, formula extraction, and picture descriptions, with a triage processor deciding per-page routing based on content signals. The project also includes an MCP server for AI agent integration, a LangChain loader, and an agent skill bundle for correct usage.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 7 reusable components found
datalab-to/marker ★ 40215 2908 APPLICATION

Marker is a high-accuracy document-to-markdown converter that transforms PDFs, images, DOCX, PPTX, XLSX, HTML, and EPUB files into clean markdown, JSON, HTML, or chunked output. It uses a pipeline architecture: a Provider extracts raw text and layout from the input, Builders (layout, line, OCR) construct a structured document model, Processors apply domain-specific transformations (table reconstruction, equation extraction, footnote handling, LLM-based correction), and Renderers produce the final output format. The system is driven by the Surya VLM for layout analysis and OCR, with an optional LLM enhancement layer (Gemini, Claude, OpenAI, etc.) for complex tasks like table merging, inline math, and image descriptions. Key entry points include CLI tools (`marker`, `marker_single`), a FastAPI server (`marker_server`), a Streamlit GUI, and a Python API (`PdfConverter`, `TableConverter`, `OCRConverter`). External dependencies include surya-ocr, pdftext, pypdfium2, torch, transformers, and various LLM SDKs. The codebase is well-structured with a clear separation of concerns, extensive test coverage, and a benchmark suite (olmocr-bench) that validates quality scores (~76% overall balanced mode).

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
naptha/tesseract.js ★ 38753 2396 APPLICATION

Tesseract.js is a JavaScript library that brings the Tesseract OCR engine to the browser and Node.js by wrapping a WebAssembly port (tesseract.js-core). It enables optical character recognition (OCR) from images in over 100 languages, supporting multiple output formats (plain text, hOCR, TSV, PDF, JSON blocks, etc.) and pre-processing options like auto-rotation and rectangle cropping. The library's architecture is centered around two abstractions: Workers (each managing a Tesseract instance in a Web Worker or Worker Thread) and Schedulers (managing pools of Workers for parallel job execution). Key entry points are `createWorker` (which handles language loading, core initialization, and provides `recognize`, `detect`, `setParameters`, etc.) and `createScheduler` (which queues jobs among multiple Workers). Images can be provided as URLs, base64 strings, Buffers, File/Blob objects, or DOM elements (browser only). The core flow involves loading the appropriate WebAssembly binary based on SIMD support, downloading and caching language data (via IndexedDB or filesystem), initializing the Tesseract API, running recognition, and dumping results through a clean output abstraction. External dependencies include tesseract.js-core, wasm-feature-detect, idb-keyval, zlibjs, bmp-js, and node-fetch. The codebase is well-structured, modular, and has comprehensive tests (both Node and browser via Karma+Mocha), though some modules (like `createWorker`) mix concerns of worker lifecycle, job management, and message handling in a single file.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
opendatalab/MinerU ★ 81003 6752 APPLICATION

MinerU is a production-grade document parsing engine that converts PDFs, images, and Office documents (DOCX, PPTX, XLSX) into structured Markdown and JSON. It supports multiple backends: a fast pipeline (layout analysis + OCR + formula/table recognition), a high-accuracy hybrid mode combining VLM and OCR, and a pure VLM mode using vLLM/LMDeploy. The system is deployed as a CLI tool, FastAPI service, Gradio web UI, or Docker container, with integrations for RAG frameworks like LangChain, LlamaIndex, and Dify. The codebase is well-architected with clean abstractions for data I/O (file/S3), model initialization (singleton pattern), and output generation (client-side rendering). It handles 109 languages and includes specialized modules for mathematical formula recognition (UniMERNet), table structure recovery (SLANet+/UNet), and office document normalization. While the code is actively maintained and functionally rich, it carries some technical debt from its PaddleOCR heritage (vendored code, eval-based builders) and has a complex optional dependency matrix for hardware accelerators.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
CVHub520/X-AnyLabeling ★ 10676 1178 APPLICATION

X-AnyLabeling is a cross-platform desktop application (PyQt6) for AI-assisted annotation of images, videos, and 3D point clouds. It serves as a unified interface for a vast model zoo including YOLO (v5-v26), SAM (1/2/3), Grounding DINO, Florence-2, PP-OCR, and many others, enabling auto-labeling for detection, segmentation, pose estimation, OCR, tracking, and more. The application features a plugin-based model architecture, abstracted inference engines (ONNX, TensorRT, PyTorch), and a comprehensive settings system. It also integrates an Ultralytics YOLO training pipeline and a secure in-app update mechanism. While primarily an application, it has a strong hybrid nature due to its deep integration of research code (vendored Grounding DINO, SAHI) and data pipeline utilities (format converters, COCO evaluators). The codebase demonstrates high craftsmanship in its model abstraction layer and inference engine design, though the sheer volume of integrated models introduces a medium risk of technical drift. It is actively maintained with a large community and extensive test coverage.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
papra-hq/papra ★ 5563 311 APPLICATION

Papra is a self-hostable, open-source document management platform that provides a full-stack solution for archiving, organizing, and searching documents. The system consists of a Hono-based API server with SQLite (via Drizzle ORM and libsql/Turso), a SolidJS web client, a React Native mobile app (Expo), a CLI tool, and several standalone packages. It supports multi-tenant organizations, role-based access, document upload with content extraction (OCR via Tesseract, Mistral OCR, Azure Document Intelligence, Docling, and a custom HTTP strategy), full-text search via SQLite FTS5 with a custom query parser, tagging with automatic tagging rules, document sharing with password-protected links, intake emails, webhooks, and subscriptions with Stripe integration. The architecture is modular, using repository and usecase patterns, an in-process event system, and a driver-based approach for storage (filesystem, S3, Azure Blob), email delivery, and KV stores. The codebase is heavily tested with unit, integration, and e2e tests, and includes a comprehensive demo mode.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
kel-z/HSR-Scanner ★ 203 15 APPLICATION

HSR-Scanner is a desktop application that automates the extraction of game data from Honkai: Star Rail using computer vision techniques. It simulates keyboard and mouse inputs to navigate the game's inventory system, captures screenshots of items, and uses OCR (Optical Character Recognition) to extract item statistics. The extracted data is exported to JSON format compatible with third-party optimizers. The application features a PyQt6-based GUI with configurable scan options, hotkeys, and performance tuning parameters.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
DavidVentura/offline-translator ★ 1217 49 APPLICATION

This repository implements a fully offline, multi-modal translation application for Android. It supports text translation, image translation via OCR (PaddleOCR, Tesseract), document translation (PDF, ODT, EPUB, TXT), live camera translation with GPU-accelerated overlay, screen capture translation, a built-in web browser with adblock and reader mode, text-to-speech (Piper, Kokoro, MMS, Coqui, Mimic3), and dictionary lookup from Wiktionary data. All inference runs on-device using downloaded language packs (translation models, OCR models, TTS voices, dictionaries). The app is built with Kotlin and Jetpack Compose for the UI, with a native Rust core (via UniFFI and JNI) for performance-critical tasks like translation, OCR, TTS synthesis, and GPU rendering. It also includes a Python-based catalog generation pipeline for managing model distributions and a standalone i18n viewer tool for translation management. The architecture is a monolith with multiple foreground services, accessibility services, and overlay windows, all orchestrated by a central ViewModel and a Rust-based catalog handle. While primarily an application, the repository also contains data/research elements in the form of model catalogs, evaluation metrics, and build-time data processing scripts.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
danpla/dpscreenocr ★ 297 18 APPLICATION

dpScreenOCR is a cross-platform desktop application for recognizing text from a selected screen region. It is built in C++ using the Tesseract OCR engine and Qt 5/6 for the graphical interface. The application runs as a system-tray utility: the user triggers a screen selection via a global hotkey, captures a portion of the screen, processes the image (grayscale conversion, upscaling, unsharp masking), and feeds it to Tesseract. Recognized text can be copied to the clipboard, added to a persistent history, or passed to an external executable. The architecture is modular, with separate libraries for OCR (dpso_ocr), system interaction (dpso_sys), image processing (dpso_img), network requests (dpso_net), sound playback (dpso_sound), configuration and history (dpso_ext), and a suite of cross-platform utilities (dpso_utils). Each module exposes a C API for C/C++ interoperability and includes platform-specific backends for X11 and Windows. The Qt UI provides a main window with recognition controls, a language manager for installing/updating Tesseract language packs, and export functionality for history. The project also packages a built-in gettext-compatible internationalization library (dp_intl) and supports 16 languages through Weblate. This is a pure application repository with no data analysis or machine learning training components. The code demonstrates solid engineering practices: clear separation of concerns, RAII resource management, comprehensive error handling, and an extensive CMake-based build system supporting multiple packaging formats (Unix bundle, Windows MSIX, Inno Setup). The test suite covers utility functions, geometry, SHA-256, version comparison, and platform-specific components, though the OCR pipeline itself has limited direct unit tests.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
TheJoeFin/Text-Grab ★ 4985 328 APPLICATION

Text-Grab is a Windows desktop application for capturing and extracting text from screen regions, images, PDFs, and barcodes using on-device OCR (Windows OCR, Tesseract, Windows AI) and UI Automation. It provides multiple capture modes (fullscreen grab, grab frame, edit text window, quick lookup) and offers post-capture features like text editing, table analysis, unit conversion, expression evaluation, template-based extraction, text-to-speech, and clipboard integration. The application is privacy-focused as all processing runs locally. It is built as a monolithic WPF application using .NET 10 and WindowsAppSDK, with extensive unit and UI automation test coverage. The codebase is well-structured with reusable utility classes and custom controls, though some files (e.g., EditTextWindow) are very large and tightly coupled. The repository is actively maintained with recent commits, CI/CD pipelines, and dependabot integration.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
koharu-rs/koharu ★ 5458 372 APPLICATION

Koharu is a desktop application for manga/comic translation, built with Rust (Tauri) and a React/TypeScript frontend. It provides an end-to-end pipeline: page import, AI-based layout detection, speech bubble segmentation, OCR (multiple models including Manga OCR, PP-OCRv6, Baberu OCR), text translation (local LLMs via llama.cpp and 13+ remote providers), inpainting (LaMa, AOT, FLUX.2 Klein, RORem mixed), and typesetting with CJK/RTL support. The application features a WebGPU canvas editor, project management with undo/redo, PSD export, and an AI agent (Codex) for natural-language editing. The architecture is modular: a scene graph document model (koharu-scene), content-addressed blob storage (koharu-storage), a pipeline orchestrator (koharu-pipeline), and a hardware abstraction layer (koharu-runtime) for CUDA/ROCm/Vulkan/Metal. The frontend uses a custom UI component library (packages/ui) built on @base-ui/react. While the codebase is well-structured and actively maintained, it has technical drift risks from pinned git dependencies, multiple ML model ports that must stay synchronized with upstream, and platform-specific runtime packages.

RATING: 8.1/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
dmMaze/BallonsTranslator ★ 5214 355 APPLICATION

BallonsTranslator is a desktop application for translating manga and comics, built with PyQt6. It orchestrates a full pipeline from image loading through text detection, OCR, translation, inpainting, and typesetting. The architecture is modular with a lazy plugin system for detectors, OCR engines, translators, and inpainters, supporting both local ML models and cloud LLM APIs (OpenAI, Codex, etc.). The application features a rich interactive canvas with advanced text editing (rich formatting, effects, transforms like bend and grid warp), project management with undo/redo, a Photoshop bridge, and internationalization. Code quality is good with extensive test coverage, but there are signs of technical drift such as hardcoded API keys, platform-specific fragility, and dependency version locks. Overall, it's a well-crafted tool with several genuinely reusable components, particularly in module registration, secret storage, filter plugins, and download utilities.

RATING: 8.1/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
$ loading more...
$ submit: