Open-source document reader

Hear every document,
highlighted word by word.

OpenReader turns EPUB, PDF, TXT, Markdown, and DOCX into a synchronized read-along surface, reading your original file in a native viewer with multilingual text-to-speech, language-aware highlighting, and audiobook export. It’s open source, and entirely yours to self-host.

Reads
EPUBPDFTXTMDDOCX
Speaks through
KokoroKittenTTSOrpheusOpenAIReplicateDeepInfra

The flow

From a raw file to a voice in three moves.

  1. 01

    Upload a document

    Drop an EPUB, PDF, TXT, Markdown, or DOCX into your library, or import one straight from the server, and it stays organized for every session after.

  2. 02

    Pick a voice

    Choose a provider and model: hosted OpenAI, Replicate, or DeepInfra, or your own self-hosted Kokoro, KittenTTS, or Orpheus server. Set the document language, choose a compatible voice, and adjust the speed to your pace.

  3. 03

    Read, listen, export

    Follow word-level highlighting right on the original page as it plays, pick up where you left off on any device, and export a chaptered m4b or mp3 audiobook for the road.

Under the hood

Engineered for deep reading, not playback demos.

Formats

Native EPUB and PDF, kept intact

Your file renders in a built-in EPUB and PDF reader, never flattened to plain text. Layout-aware parsing (PP-DocLayoutV3, ONNX) maps the structure underneath, so read-along highlighting follows the true reading order, even in dense, multi-column PDFs.

Alignment

Word-by-word timing

ONNX Whisper alignment through a JetStream-backed compute worker maps each spoken word back to the page, so the cursor tracks speech precisely.

Languages

Multilingual support

Choose a document language for language-aware narration, highlighting, and compatible voice selection.

Export

Audiobook output

Render chaptered m4b and mp3 files with resumable processing, ready for any offline player you already use.

Sync

Progress that follows you

Reading position, queue state, and per-document settings sync across browser sessions and devices through your account.

Backend

A stack you actually control

Run on embedded SeaweedFS or any S3-compatible bucket, back it with SQLite or Postgres, and ship it with Docker on amd64 or arm64, with built-in auth and automatic startup migrations.

Open source · MIT

Run your own private reading stack.

Deploy OpenReader for yourself or your team in minutes. The docs cover Docker, provider integration, object storage, and the external compute worker. Every piece is yours to host.