simple_ocr_capture

Read a book through your screen — local OCR, one page at a time

MIT License Eiffel 25.02 Design by Contract Windows x64

Overview

simple_ocr_capture captures a region of the screen, runs it through a local OCR model, and appends the text to a single file. Set the capture region once, then hit the hotkey after each page turn — the text accumulates in the order you captured it.

Given an advance button to click and a page indicator to read, it will do the turning itself and read a whole book unattended, stopping on its own when the page stops changing.

Everything runs locally. Nothing leaves the machine.

This is an application, not a library. It is a Windows GUI program you install and run. It belongs to the simple_* ecosystem because it is written in Eiffel on top of the simple_* libraries, not because you would add it to an ECF.

Install

Download

Grab the latest installer from Releases and run it. It is a per-user install: no UAC prompt, and the application only ever writes to %APPDATA% and the output folder you choose.

Requirements

Nothing else. The application ships as a single executable and needs no runtime, no redistributable and no Python.

The default model is olmOCR-2 (about 9.5 GB). A discrete GPU with 12 GB or more of VRAM is strongly recommended; a full page takes roughly 25–45 seconds on an RTX 5070 Ti.

First run

  1. Launch it. You do not need to start Ollama yourself.
  2. If the model is missing it offers to download it — the window stays usable meanwhile.
  3. Set Region by Dragging... and drag over the area you want transcribed. Esc or right-click cancels.
  4. Set the output folder.
  5. Test Capture to confirm the region is right.
  6. Check Setup / Install Model for a full report on the chain.

Features

Capture

Unattended runs

Video

Output and diagnostics

Building from source

Requires EiffelStudio 25.02 and, for the installer, Inno Setup 6.

git clone https://github.com/simple-eiffel/simple_ocr_capture.git
cd simple_ocr_capture

export SIMPLE_EIFFEL=/d/prod    # where the simple_* libraries live

./build.sh -c     # type-check only
./build.sh        # finalize the GUI application
./build.sh -i     # finalize, then build the installer

Binaries land in EIFGENs/<target>/F_code/.

Targets

Dependencies

base, time, vision2, plus simple_json, simple_base64 and simple_process.

Deliberately not simple_http: it resolves libcurl.dll at runtime from a path that is not on PATH, so a finalized binary fails with a bare "cURL issue". OCR_HTTP uses WinHTTP instead — present on every Windows, with nothing to redistribute.

Known limitations