Introduction
OpenReader is an open source text-to-speech document reader built with Next.js. It provides a read-along experience with narration for EPUB, PDF, TXT, MD, and DOCX documents.
Previously named OpenReader-WebUI.
It supports multiple TTS providers including OpenAI, DeepInfra, and custom OpenAI-compatible endpoints such as Kokoro-FastAPI and Orpheus-FastAPI.
✨ Highlights
- 🎯 Multi-Provider TTS Support
- Kokoro-FastAPI: supports multi-voice combinations (for example
af_heart+af_bella) - Orpheus-FastAPI
- Custom OpenAI-compatible: any TTS API with
/v1/audio/voicesand/v1/audio/speechendpoints - Cloud TTS providers:
- DeepInfra: Kokoro-82M and other hosted models
- OpenAI API:
tts-1,tts-1-hd, andgpt-4o-mini-tts
- Kokoro-FastAPI: supports multi-voice combinations (for example
- 🛜 Server-side Document Storage
- Documents are persisted in server blob/object storage for consistent access
- 📚 External Library Import
- Import documents from server-mounted folders
- 🎧 Server-side Audiobook Export in
m4b/mp3with resumable chapter generation - 📖 Read Along Experience
- Real-time highlighting for PDF/EPUB, with optional word-level whisper.cpp timestamps
- 🔐 Auth Optional by Design
- Run no-auth for local use, or enable auth with user isolation and claim flow
- 🗂️ Flexible Storage and Database Modes with embedded defaults or external S3/Postgres
- 🚀 Production-ready Server Behavior with TTS caching/retries/rate limits and startup migrations
- 🎨 Customizable Experience
- Theme, TTS, and document handling controls
🧭 Key Docs
- Docker Quick Start
- Local Development
- Vercel Deployment
- Environment Variables
- Auth
- Database
- Object / Blob Storage
- Migrations
- Server Library Import
- TTS Providers
Source Repository
- GitHub: richardr1126/openreader