KOReader
Document and ebook reader for e-ink and mobile devices
KOReader is an open-source document viewer for EPUB, PDF, DjVu, and many other formats, optimized for e-ink screens. It can connect to self-hosted OPDS catalogs and supports syncing reading progress.
Key features
- E-ink optimized rendering
- Many document formats
- OPDS catalog support
- Reading progress sync
Pros & cons
Strengths
- Excellent e-ink support
- Huge format support
- Highly customizable reading
Trade-offs
- Dense menu system
- Install varies by device
KOReader replaces
Last reviewed Aug 26, 2026 · 760 words
KOReader is the reader-side half of the only ebook setup I fully trust: a Kobo running KOReader, pulling books from a Calibre-Web OPDS catalogue on my own server, and pushing reading position to a sync server I also run. Nothing in that chain phones home, nothing needs an account with a retailer, and the whole thing survives the retailer deciding to drop support for your device. The catch is that "install" means modifying an e-reader, and the menus are dense enough to deserve their reputation.
It runs on the reader, so install means device surgery
KOReader (AGPL-3.0, roughly 29,000 stars, Lua, around since 2012) is not an app you download from a store on most of its targets. On Kobo it installs alongside the stock software: copy the release folder to the device and add a launcher such as NickelMenu or KFMon, no jailbreak required. On Kindle it requires a jailbreak first, which depends on your firmware version and is not always available for new devices. PocketBook and reMarkable are supported with device-specific steps, Android has a plain APK, and there is a Linux desktop build that is mostly useful for testing your server setup from a laptop. The official site at koreader.rocks links per-device instructions; follow the one for your exact model, because "install varies by device" undersells how much it varies.
OPDS turns your server into the bookstore
Once running, KOReader's OPDS browser is the feature that connects it to the rest of your stack. Under the file browser's cloud icon, add a catalogue entry with your server's OPDS URL and credentials: https://books.example.com/opds for Calibre-Web, https://books.example.com/api/opds/<your-api-key> for Kavita, https://comics.example.com/opds/v1.2/catalog for Komga. Browse the catalogue on the device, tap a book, and it downloads over Wi-Fi straight into the reader's storage. That replaces the cable-and-Calibre ritual entirely, and it works from anywhere the server is reachable, which for me means over Tailscale rather than a public port. If you were leaving the Kindle store, the Kindle alternatives page covers the server side.
Progress sync is the one server worth running
KOReader syncs reading position through a small protocol called kosync. The project's own server is a Lua service on OpenResty with Redis, and there are lighter community reimplementations in Go and Python that expose the same handful of endpoints and fit in 256 MB of RAM with room to spare. Point the reader at it under Settings, Progress sync, custom sync server, register a username and password once per device, and every device with the same book (matched by a document hash, so the same file on both) opens at the same page. This is the feature Kindle owners miss most when they leave, and it is one container.
The menu system is dense because the rendering is
Every complaint about KOReader's menus is true and every one of them is the cost of a setting you will eventually want. Fonts can be any TTF you copy over; hyphenation is per language; margins, line spacing, and justification are adjustable to the point; StarDict dictionaries load offline; the statistics plugin tracks pages per hour and time per book; a Wallabag plugin pulls saved articles; and gestures on the e-ink screen are all remappable, including the two-finger swipe that adjusts frontlight. The trick is to set up one profile you like, export the settings folder, and stop touching it.
Formats, and the PDF trick
EPUB, PDF, DjVu, CBZ, FB2, MOBI, plain text, and HTML all open natively, which makes it the widest-format reader available on e-ink. The PDF side has a built-in reflow mode using k2pdfopt that re-wraps a two-column academic paper into a single readable column for a 6-inch screen, which is the difference between reading papers on the device and not.
What I'd do
Buy a used Kobo rather than a Kindle, because the install needs no jailbreak and takes 10 minutes. Point it at Calibre-Web or Kavita over OPDS, run a kosync server in a container next to them, and reach both over a VPN. Spend one evening on the reader settings, then leave them. That is a complete, private ebook pipeline with no subscription and no vendor in it, and KOReader is what makes the reader end of it possible.
Compare KOReader
15 head-to-head comparisons.
- KOReader vs Calibre
- KOReader vs Readest
- KOReader vs Calibre-Web
- KOReader vs Kavita
- KOReader vs Foliate
- KOReader vs Komga
- KOReader vs Calibre-Web Automated
- KOReader vs Librum
- KOReader vs Stump
- KOReader vs Plato
- KOReader vs LazyLibrarian
- KOReader vs Storyteller
- KOReader vs BookLore
- KOReader vs ttu Ebook Reader
- KOReader vs COPS
Similar e-books & media library apps
Free Programming Books
E-books & Media LibraryCurated catalog of free programming ebooks and resources
Replaces Paid technical book subscriptions
Koodo Reader
E-books & Media LibraryCross-platform ebook reader with annotations and sync
Replaces Calibre, Apple Books
Calibre
E-books & Media LibraryPowerful ebook library manager with a built-in server
Replaces Kindle, Apple Books
Readest
E-books & Media LibraryCross-platform ebook reader with sync server
Replaces Kindle, Apple Books
Ebook2audiobook
E-books & Media LibraryConvert ebooks into narrated audiobooks locally
Replaces Audible, Speechify
Calibre-Web
E-books & Media LibraryWeb app to browse and read your Calibre library
Replaces Kindle, Goodreads