KO

KOReader

Document and ebook reader for e-ink and mobile devices

E-books & Media Library ★ 29.9k stars Medium setup AGPL-3.0

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.

Similar e-books & media library apps