Hacker News new | past | comments | ask | show | jobs | submit login
KOReader: Open-Source eBook Reader (github.com/koreader)
396 points by charleshan 1 day ago | hide | past | favorite | 98 comments





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.


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.


It was the only thing I could find that works well on a Linux tablet. Other readers have poor controls for a touch screen.

> 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.


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...


Running on my Pixel 6a, I wouldn't really characterize it as super responsive. This context, I think, helps me understand why.

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


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.


PDF reflow is one of the major reasons I am using Koreader. The whole thing is very clever and works extremely fast given the limited nature of these devices.

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.

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.

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).


I used Winterbreak [0] and used the renameotabin extension to block updates.

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


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.

Kual+ had an option to stop auto updates... KT4 here

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.


This can also be fixed by converting books to KEPUB with Calibre, it'll also (for some reason) make page turns faster.

Yes, that's true, but I'd rather keep them as ePub so it will work well with other readers.

I find it easier to do this using kepubify in a script

https://pgaskin.net/kepubify/


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.

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


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.


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.

To sync progress, you can use `https://sync.koreader.rocks/` as a custom sync server. While in a book, top bar, settings, "Progress sync".

I think it works using the file name of the epub. Not sure.


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.


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.)


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.

I think it builds a full text search index by default, have you tried disabling that?

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.


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.

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.

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.

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


Can anyone recommend a site for buying DRM free books so I can read it with KOReader?

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.


Not for buying, but for free: https://standardebooks.org

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.

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.

Note that with Kobo you need to check. I bought one there once thinking it was DRM-free, it was not.


For books in German, Beam is a very good choice: https://www.beam-shop.de/

anyone know the answer for japanese language books?

I looked into building the emulator for KOReader and it requires CMake, Meson, and autotools... Why are 3 different build systems necessary?

It includes a bunch of dependencies as submodules and builds those as well. I haven't verified that's the reason, but I'm willing to bet a decent amount of money it is.

I like KOReader, but gave it up in favor of the default software on my Kobo Clara BW, mainly because of library navigation. I prefer to keep all my books on the device, but the only way to find them (as far as I can tell) is by author. I haven't had the time to go through my whole library to fix the author sort, and it became a real problem to find books I already possess that I want to read.

Fortunately I didn't delete KOReader, so all my setup is still there if I find a reason to go back.


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.


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.

I gave KOReader a go after seeing this thread yesterday. I tried using it a year ago and gave up because the UI was so alien to me. It almost reminds me of Winamp in a sense.

But I gave it a go again and this time I spent time figuring out how to sync between devices. I've yet not synced files but here's what I got so far.

1. Koofr WebDAV for Reading Statistics sync 2. Kobo's built-in sync for progress

Both of these are free. This is a reminder mostly for myself that you need to use the service password for WebDAV access for koofr and not your koofr account's password. And make sure you save your koreader user credentials somewhere.

I'm still not happy with the keyboard situation, the koreader keyboard is ugly but I guess it's optimized for eink so that's something. I don't really type any notes into books. I mostly prefer being able to sync progress and have a centralized view of my reading statistics. And this works.

I copied all my books over manually for now, I'm happy with this. I have the following devices 1. Phone - OnePlus Open 2. eReader - Boox Tab Mini C 3. eReader - Boox Palma 1 4. Samsung Galaxy Tab S9 Ultra

Things I didn't know I needed: 1. The reading statistics. This tracks every eBook I read, and I don't have to use anything else. 2. Book map - Knowing how much time I spent in each chapter is a godsend. This really helps me understand things like this. 3. The speed reading module - perception expander - I'd never heard of this from Tim Ferris so it was new to me. I am giving it a go, and I'm not sure it's improving my reading speed but it feels like it's improving my comprehension!

Thank you to everyone who puts in the work on koreader!


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.

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.


How are you getting the Push-to-Kindle plugin to sync to KOReader?

It's like learning to pilot a plane.... manually. Worth learning though and reading some manuals online. Minimal margins maximizing screen real estate, gesture shortcuts for almost anything, great reflow, and so much visual customization at a default level as well as per PDF... as well as having "profiles" to switch across. It's pretty amazing.

Most major miss is more friendly syncing though. Currently only supports Dropbox (WebDAV FTP seems to have issues, even when I used OneDrive key for it which works everyone else) and doesn't actually bidirectionally sync... only downloads. Why can't there be a simple auto-sync from a specific FTP directory including reading positions and such...?!

Also doesn't support Pocket or more popular sync services (only supports Wallabag).


It is nothing like learning to pilot a plane. Let's stop pretending that reading 3 paragraphs of texts is insurmountable. You can spend 2 minutes to get acquainted to an app you will use for hundreds of hours, and it's not like you need to know every feature to get started. You won't crash into the ground.

I'm sick of the cult of "intuitive". Intuitive only helps you the first time you ever use an app, and its lack of useful features hurts you forever. It obviously makes sense to optimize for the long run.


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?


I think the eink focus is mainly in the UI as it avoids scrolling in favor of pages and tabs.

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.

How high is resolution? The example screenshots look pretty low.

Depends on device, but retina quality I would say. You cannot see individual dots so text appears like high quality print. The example screenshots are high resolution, you have to click them.

I think you're right about the screenshot resolution.

Something is wrong with the layout that makes it awkward for me to read. The word spacing, at least, seems awful. Look at the lines "meaning behind printed words ..." (near top) and "widely believed that ..." (near bottom) compared to the lines above and below them.

Maybe it's the full justification adjustment - the text in the box is much better. Even the dictionary popover has word spacing problems.

That's a big deal for reading long-form.


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.


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.

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.


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.

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.


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.


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.


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


It’s two .tgz files extracted to / … how is that not trivially easy?

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

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


I've used CoolReader in the past, and recently suggested its sucesslr LxReader[0] to my partner, while I like the simplicity in MuPdf[1]. What do you think are the biggest advantages of Book Story? I might give it a try.

[0] https://gitlab.com/coolreader-ng/lxreader

[1] https://f-droid.org/en/packages/com.artifex.mupdf.viewer.app...


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.


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!

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.

Is it not easy enough to just ignore the features you don't need?

Those mean a pretty cluttered UI, in my eyes.

And what's wrong with a UI being "cluttered", especially if the alternative is that it fails to expose the software's full functionality?

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!


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.

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.


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.


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)

Yeah. You need to remove the DRM first ofc, but thats really easy: https://www.youtube.com/watch?v=5CIFbUIKwDY?t=219

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?


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.

On my Paperwhite from 2018, the battery life is better on KOReader than on Amazon’s firmware.

On my Kobo Libra 2 I never noticed a difference.

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.

I installed on a brand new kindle and didn't notice any difference.

Once you get used to it, you cannot go back! I would love for a self hosted web interface.

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.

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.


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).

KOReader is the best ereader.

And it works on Android too. Even for devices that aren't e-ink, I prefer KOReader to anything else.

I prefer Moon Plus Reader because it does not force itself to be full screen.

Good points, especially about the implementation details.

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?


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



Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: