MondaySundaySaturdayFridayThursdayWednesdayTuesday

KOReader: Open-Source eBook Reader

charleshan 353 points github.com
II2II
KOReader is an amazing program that has progressed at amazing speed over the past few years, particularly when it comes to the user interface. (It can still be overwhelming, because of the sheer number of features, but it is much better organized.)

To give you an idea of how different it is from commercial products: it actually tracks reading in a useful way. It shows a chart of how long you have spent on each page, so you can figure out which parts of a book you have not yet read. That is really useful when jumping around technical books. If you are interested in tracking your general reading habits, there are handy views that shows which books you have read and when you read them (either by time of day or across a month).

As for reading PDFs, well, eInk has its limitations and KOReader does it's best to work around them. If you want to read a multicolumn paper on a small screen, you can configure it to go down one column then right back to the top of the next column. If you want there to be overlap between the screens when panning, you can configure that. You can also have it display which parts were overlapping, so you don't get lost when it displays the next part.

There is tonnes of other stuff in there. I just mentioned those two because I use them the most. Overall I would say it feels like KOReader was designed by people who want an amazing reading experience, rather than by people trying to sell novels.

exe34
If you want to read a multicolumn paper on a small screen, you can configure it to go down one column then right back to the top of the next column. If you want there to be overlap between the screens when panning, you can configure that. You can also have it display which parts were overlapping, so you don't get lost when it displays the next part

That's insane, I thought it was already good with a whole page, I will have to explore this more. Might need to update it as well, since I installed it a few years ago.

goosedragons
Have they really improved the interface? I tried it a few years ago and while it certainly has a lot of features I found it be sort of confusing to use compared to the built-in Kobo, Kindle, Boox options.

Some of those features like the column panning are also available in Boox's default reader.

graemep
It was the only thing I could find that works well on a Linux tablet. Other readers have poor controls for a touch screen.
jtmoulia
I use a Kobo because its overdrive integration lets me read ebooks checked out from my county library.

I'd love to give KOReader a try -- does anyone know if it can be used with library books, via overdrive or another integration? A quick search indicates KOReader doesn't work with DRM books, but I'm curious if someone has a solution.

lucius_verus
Koreader doesn't integrate with overdrive, but it's trivially easy to install it on your Kobo alongside the Kobo OS. You can continue to use overdrive on your Kobo and also dip into koreader for the better PDF viewer etc.
bb88
I tried koreader on a kobo. I wouldn't call it trivially easy when I installed it last year, and I promptly uninstalled it and removed all the hacks so I could get back to a sane installation of the Kobo OS again.

I think maybe for a kindle it might be worth it, but the reality is for Kobo, it's probably more hassle than it's worth.

I found my time better spent setting up a calibre-web in a docker container and then having my kobo sync to that. And that was awesome.

Larrikin
What's the issue you had? When you reboot or quit you're kicked back to regular Kobo and you open up Koreader through a menu option.

The Kobo OS is good enough for me to recommend it to family, there's nothing wrong with the iPod experience of uploading books.

But Koreader+Tailscale+Kavita OPDS is the best reading experience I've ever had.

bb88
I don't remember frankly, maybe something with the script, maybe something with KFMon. Lack of integration with the Kobo OS itself? Maybe it had to be rooted to install KFMon, but I was reading Koreader could just run inside nickel menu maybe? But yet the script installed KFMon?

Again, I don't remember. And whatever it was it's not worth me trying to reinstall it just to remember what it was, and then to uninstall it again.

BeetleB
The installation instructions are a bit windy, so many people miss that there's a simple script that automates the install for you.

The one thing you have to watch out for : You need to return those scripts whenever Kobo has an update. You won't lose your data or anything but a standard Kobo update dialed disables Koreader

cyberpunk
It’s two .tgz files extracted to / … how is that not trivially easy?
fisian
Can anyone recommend a site for buying DRM free books so I can read it with KOReader?
BHSPitMonkey
I've purchased a lot of mine from Kobo. There's also Standard Ebooks if you want free, high-quality reproductions of public domain works.
internet_points
Note that with Kobo you need to check. I bought one there once thinking it was DRM-free, it was not.
internet_points
https://www.libreture.com/bookshops/ has a list of stores (and for Norwegian books there is https://ebok.no/ ), but I have found no way to search "globally" (across sites like that) for DRM-free ebooks.

https://news.ycombinator.com/item?id=32442549 has some more tips.

Oh and https://bookshop.org/beta-search now actually lets you check "DRM-free" when you search, which is a very good step in the right direction!

I have a dream of https://news.ycombinator.com/user?id=marginalia_nu taking up the mantle. Though I think anyone could make something that's better than what we have now, which is nothing.

troyvit
The best solution I have found is to buy a DRM book, then download the DRM-free version from libgen. That may not be what you're looking for but it keeps me in Calibre.
vlowrian
For books in German, Beam is a very good choice: https://www.beam-shop.de/
wahnfrieden
anyone know the answer for japanese language books?
theshrike79
Not for buying, but for free: https://standardebooks.org
sodality2
Got this on my Kindle after the jailbreak came out in January. It's fantastic, especially the OPDB index + self hosted calibre-web means I can just download an epub on any device, drop it on a webpage, then search it on KOReader immediately. I did not want to use USB or Amazon's plumbing to transfer, so this is great. Tons of customization over the built-in reader.
pidgeon_lover
How do you connect your Kindle to the internet to access OPDB/Calibre-web without losing your jailbreak?

Every time I connect my Kindle 4 to the internet, it disables developer mode and I have to rejailbreak. This is despite using an update disabler plugin (I've tested them all).

homebrewer
It probably depends on your model, I jailbroke my paperwhite 7 (10-year old model) back in January, and it hasn't been reverted since, even though it's always connected to the internet.
sodality2
I used Winterbreak[0] and used the renameotabin extension to block updates.

[0] https://kindlemodding.org/jailbreaking/WinterBreak/

rraghur
Kual+ had an option to stop auto updates... KT4 here
boznz
Pretty keen to try one day, a quick question for anyone who has installed it is what does it do to the battery life of the device its installed on?

is it the same, better or worse and by how much?

Agraillo
With eInk screens it's an interesting story. Because when your page is shown, there is no need for CPU at all for keeping it, so in an ideal world for such devices every page flip is a micro-cycle of waking up from the deep sleep, doing a job and going back to sleep. With such a lifecycle it's even better to measure the battery life not in hours but in page flips. When KOReader supports going to the deep sleep between flips then the difference between it and the bundled software should be small. But if for some reason there's no going to DS between flips, the battery life will drop significantly and back to time units per charge.
dantondwa
On my Paperwhite from 2018, the battery life is better on KOReader than on Amazon’s firmware.
philips
What device? I haven’t noticed an issue on android devices. On my rooted kindle it is a bit less battery but I haven’t measured it.
herboh
I installed on a brand new kindle and didn't notice any difference.
complexworld
On my Kobo Libra 2 I never noticed a difference.
mmooss
It says it focuses on e-ink screen integration. What are the unique challenges of e-ink screens for reading ebooks?

At least in the past, screen refresh was slower; the reflective, rather than luminescent screen changed contrast and color performance; resolution was well behind standard screens.

The first two seem easily solved; the third hard to mitigate beyond larger print and appropriate typefaces. What else?

carlosjobim
How long was it since you saw an e-ink screen the last time? Resolution has been excellent for a while now. Refresh is still slow, but that doesn't matter for reading books. Contrast is fine, but not comparable to other display types.
mmooss
How high is resolution? The example screenshots look pretty low.
jhot
I think the eink focus is mainly in the UI as it avoids scrolling in favor of pages and tabs.
BeetleB
For people on Kobo: Koreader handles standard epub way better than the native reader.

If you've ever tried reading an epub using Kobo that you didn't buy from the Kobo store, you may have noticed that highlighting text is very laggy. Koreader has no such lag.

theshrike79
This can also be fixed by converting books to KEPUB with Calibre, it'll also (for some reason) make page turns faster.
lazyeye
I find it easier to do this using kepubify in a script

https://pgaskin.net/kepubify/

freeAgent
I believe Calibre (very) recently added a feature to make conversion to kepub automatic when transferring to a Kobo, so things may have changed on the ease of use front.
BeetleB
Yes, that's true, but I'd rather keep them as ePub so it will work well with other readers.
E39M5S62
I wonder if load times have improved. I had this on my Kobo Libra 2, and it took it easily 5 minutes or more to open an admittedly large epub file. Changing the font size also incurred a huge penalty as it reflowed the entire document.

Conversely, the built-in software never struggled with that file.

II2II
I ended up getting a faster Kobo! Thankfully, the slow load is a one time thing, per book. Depending upon when you tried it, KOReader has switched to a progressive model of updating it's caching (with most of it being handled in the background) when modifying a book's formatting.

That said, I think this may be mostly based upon a book's formatting. Messing around with upload options in Calibre may help. (For example, Calibre recently added an option to speed up load times with Kobo's reader software.)

mkozlows
That Calibre option isn't relevant -- it's for Kobo's native stuff, which treats "KEPUB" different from regular ePub, in ways that I haven't bothered to remember.
homebrewer
I think it builds a full text search index by default, have you tried disabling that?
a-french-anon
It's certainly an incredible gem, but I do find it quite bloated in features. Which is why I plan on trying https://github.com/baskerville/plato one of these days, to see if it does everything I need.
dfxm12
Is it not easy enough to just ignore the features you don't need?
a-french-anon
Those mean a pretty cluttered UI, in my eyes.
Gormo
And what's wrong with a UI being "cluttered", especially if the alternative is that it fails to expose the software's full functionality?
OuterVale
Absolutely love KOReader. I use it on my Kindle 3 and have moved my parents and brother over to using it on their Kindles as well. You can even install it on relatively new models thanks to the recent WinterBreak gaolbreak.

There was some discussion about it on HN not long ago:

All Kindles can now be jailbroken | 1377 points by lumerina | 2025/02/17 | https://news.ycombinator.com/item?id=43073969

I found KOReader's Android app a tad buggy, but the experience is wonderful on Kindles. If you've got an old Kindle kicking around, I also wrote up a little thing about bringing them up to speed which mentions KOReader: https://vale.rocks/posts/improving-early-kindles

jwrallie
Same experience on a PaperWhite 2, been using it for a long time.

It is a good reason to look into rooting, PDF reflow and the function to remove margins make it possible (at least tolerable) to read PDFs when an .epub / .mobi is not available.

You can also run Alpine Linux on a rooted Kindle with graphical interface, I found it amazing but ultimately not that useful with the limited system memory.

vlowrian
I'm using KOReader with the PocketBook Era. The integration is top notch. Installation is simply done by copying the KOReader folder to the right directory on the device. After that you can set KOReader as the default reader, which means that you keep on using the original system software and library, but books will automatically open in KOReader.

This lets me use "Mail to PocketBook", Dropbox sync etc. or the fantastic Push-to-Kindle browser-plugin in combination with the fantastic KOReader. No flashing or jail break required.

codybontecou
How are you getting the Push-to-Kindle plugin to sync to KOReader?
stuxnet79
I've installed KOReader in about 3 devices but I haven't yet cracked how to keep them all in sync - frankly, I don't know how the syncing process works.

I used to think that it syncs up both the books and the reading progress / metadata but when I tried doing it, it didn't seem to work that way. I would love to hear how folks have done this. It's about the only thing left that's keeping me from using KOReader more frequently on all my devices.

thallian
The progress sync is separate from how books get onto the various devices (at least as far as I know). Something OPDS capable works well to get the actual files across a network (or calibre via usb). For progress you can use their provided sync server or run your own (the original one gave me enough trouble to write my own implementation).
beAroundHere
I came across KOReader when I was trying to jailbreak my kindle. It's UI looked great on e-ink screen. And it handled almost all ebook formats properly.

Lately, I've used it on Android, and UI which is more suited for e-ink screens, look not so polished on phones, but that's just nitpicking. It's fully usable and keeps adding support for new platforms.

lucius_verus
It really shines on e-ink Android readers such as the tablets Boox makes. I almost exclusively use it on my Boox because the built-in reading app is terrible.
ZeWaren
I manage my ebooks using a self-hosted instance of calibre-web. This allows me to sync my library to my Kobo e-reader using KOreader.

Also, turning pages is faster than with the stock reader of the device.

https://github.com/janeczku/calibre-web

stanac
OPDS (Open Publication Distribution System) is protocol in the background. Jellyfin has a plugin for OPDS and works by simply dropping a file in specified directory, but it doesn't support multiple catalogues (i.e. one per library/directory).

Protocol is atom based, chatgpt was able to make a custom OPDS server for my needs within minutes, it took another hour or two to fix and customize generated code.

bobchadwick
Are you able to sync progress? I can access my calibre-web library, but I've been unable to figure out how to sync progress.
andro_dev
KOReader is the best ereader.
_emacsomancer_
And it works on Android too. Even for devices that aren't e-ink, I prefer KOReader to anything else.
Multicomp
I prefer Moon Plus Reader because it does not force itself to be full screen.
no_time
Very impressive how the almost the entire application is written in lua(JIT). Particularly impressive how it is fast enough to do CPU blitting/blending[0]

I wonder why is lua so rarely utilized like this on its own. Such a neat language.

[0] https://github.com/koreader/koreader-base/blob/master/ffi/bl...

jszymborski
Running on my Pixel 6a, I wouldn't really characterize it as super responsive. This context, I think, helps me understand why.
Ciantic
I use KOReader with Koobo Clara BW (300 ppi screen), it's great.

I still have to remove a lot of CSS from most books before uploading, but after that, it is very good, as you can fine-tune every aspect and have every book look similar. Which, in my opinion, is necessary because e-ink readers still don't have enough resolution to use all the fancy fonts authors may have thought. Also, the ability to set margins to the same is very important to me.

dantondwa
I use it on my Kindle and I love it. I can use better and more dictionaries, the controls are ergonomic and customizable, I can easily override the font so that every ebook looks exactly the same. It supports epub and with it my Kindle is faster, the battery lasts longer and it supports dark mode on an old model while Amazon officially doesn’t. Amazing software all around!
rat87
How does it compare to the other big foss e-book app, FBReader?

Does the focus on eink mean it's mainly aimed at jail broken eink tablets? Or aimed at phones as well?

presbyterian
You don't need to jailbreak, there are many eink tablets that will run it via sideloading (Kobos, for example, and I believe Nooks as well) and eink Android devices (like the BOOX line) that can just install it from F-Droid
Mossy9
When I was figuring out what reader to put in my ancient android 5 tablet (dedicated for offline ebooks) I tried KO, but the UI was way too complex. I've since been happy with Librera, but seeing all this high praise, it seems that I need to revisit KO.

Nice to see there are multiple open source readers going strong!

AdmiralAsshat
The ability of KOReader to infer panel boundaries to do intelligent panel zoom sounds like a nice feature. I wish other Android-available comic readers could do it. I've held onto Amazon's Kindle/Comixology app for much longer than I should because intelligent panel navigation is frequently a necessity, even on my 10" tablet.
GordonS
If I installed this ony Kindle, would it sill be able to read all the books I have with DRM? (I've bought lots of ebooks from Amazon over the years)
kristofferR
Yeah. You need to remove the DRM first ofc, but thats really easy: https://www.youtube.com/watch?v=5CIFbUIKwDY?t=219
ValtteriL
My Kindle got hardly any use nowadays thanks to this gem.

Out of the box it's a bit hard to use. Love it after configuring intuitive gestures for navigation.

Especially love the frontlight switch that lets me read while helping my kid fall asleep.

SheinH
Shout out to the developers of KOReader. I love this application so much.

Saves me so much work in having to convert EPUB files on my Kindle. I also love how great it is at handling PDF files and cropping margins out of pages. I don't think I would ever want an e-reader that couldn't run it at this point.

deng
Instead of simply praising KOReader, let me add that it is also incredibly hackable. The vast majority of KOReader is written in Lua, and adding your own feature is usually not that hard. I added support for Kobo natural light a few years ago, and found the code base to be very understandable and nice to work with.
ksynwa
Fair warning to those who are interested. If you are the kind of person who gets lost dabbling in configuration and customisation Koreader will keep you very busy with that. Once you get past that it is very worth it if you aren't tethered to your ereader's book store ecosystem (if it has one). On my Kobo ereader it is much much faster than the default interface and has extra bells and whistles that I really appreciate.
majora2007
If anyone is interested in helping Kavita, an open source self hosted reading software, finish off the Koreader Sync support, please take a look at this PR. It's 90% complete and just needs some finishing polish. The contributor got busy and hasn't returned for some time.

https://github.com/Kareadita/Kavita/pull/3311

mdhen
love KOReader, recently jailbroke my kindle oasis with the new winterbreak exploit and installed it. The ability to connect via wifi to calibre is amazing.
locusofself
I'd like to try it, but I really don't want to brick my beloved Kindle Oasis second edition. It's not sold anymore, at least not in the US.
arkx
I wish it supported vertical text and reading right-to-left (Japanese). It's a long-standing issue that doesn't seem likely to be solved (https://github.com/koreader/koreader/issues/4353). The relevant standard is https://www.w3.org/TR/css-writing-modes-3/, which is part of supporting ePub 3.
philips
I am looking forward to the macOS release. I use it on my Supernote, Inkpalm 5 and my kids Kindle.

Koreader is wonky in places. But, like vi and bash, you get used to the wonkiness and it works well enough for the job and is everywhere.

corank
I own a Kindle Oasis 2. Amazon stopped software updates for it so I just jailbroke it and loaded KOReader. It's way better than the official software, probably the most feature-rich and customisable document viewer I've ever seen. I regret not installing it earlier.
coolca
Once you get used to it, you cannot go back! I would love for a self hosted web interface.
sangpugogogo
Good points, especially about the implementation details.
user3939382
It’s hideous but it works great, and better that than the reverse right?

If you combine this with a Kobo you have an ereader experience without all the DRM crap.

ementally
Book Story on Android is a much more modern FOSS eBook reader and supports other formats too.

https://github.com/Acclorite/book-story

throwaway2046
I looked into building the emulator for KOReader and it requires CMake, Meson, and autotools... Why are 3 different build systems necessary?
totetsu
I used this for many years on a rooted Kobo. It was great. being able to curate my own rss feeds and have them auto fetched over wifi from calibre to the e-reader, no algorithm involved, was a glimpse at how things could have been.