Transcribe

Handwritten notebooks → text you keep.

Import page photos or PDFs. Read them with a vision model that runs on your computer. Correct the text beside the scan. Optionally look at themes, mood, and people — then export Markdown, HTML, or a notebook file you keep. No cloud OCR service.

The application

Library and Search over your notebooks. Workflow for import, transcribe, review, analyse, and export. View for reading and results.

Import

Bring JPEG, PNG, or PDF pages into a notebook on your machine. Optional visual declutter crops scanner beds and gutters.

Transcribe

Run a local Ollama vision model. Compare two models on the same pages when you want a second reading.

Review

Correct the text beside the scan. Keep your edits separate from the raw OCR.

Analyse & export

Themes, mood, people and places — then export Markdown, HTML, EPUB, PDF, or a portable notebook file.

What can I do with it?

  • Turn scans into editable text
  • Correct a page beside the original image
  • Find themes, mood, people, and places in a notebook
  • Spot poetry, lists, names, and other patterns
  • Export a notebook you can keep (Markdown, HTML, EPUB, PDF)

Walkthrough: user guide. Not sure if this is the right tool? What Transcribe is.

On your machine

Page images and results stay on disk you control. OCR and optional text analysis use a local Ollama server — nothing here is a hosted OCR or analysis service. Non-local Ollama hosts require an explicit acknowledgement because images would leave the machine.

From a scan to a readable notebook

  1. Open Workflow → New notebook and import JPEG, PNG, or PDF pages.
  2. Open Workflow → Transcribe, pick an OCR-friendly vision model, and start.
  3. Open Workflow → Review and correct the text beside the scan.
  4. Optionally open Workflow → Analyse, keep Balanced, and read View → Overview.

Full user guide · OCR runtime · Analysis

Install

Docker is the recommended path (no host Python packages). You also need a running Ollama server on the host and an OCR-friendly vision model.

git clone https://github.com/glen-w/transcribe.git
cd transcribe
cp .env.example .env          # set HOST_PROJECTS_DIR outside the repo
docker compose up --build transcribe-web

Open http://localhost:8510.

Advanced — native on the host (Python 3.10+): ./transcribe.sh setup then ./transcribe.sh ui.

Details: Installation · Docker · README