Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices

Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star half bd79095782ee4930099175e5ce7f4c89fa3ddabcd56fffcc7c74f6f2a2d46b27 (1 ratings)
Rated 4.5 out of 5
Subscribe to updates I use koreader

Statistics on koreader

Number of watchers on Github 6621
Number of open issues 362
Average time to close an issue 6 days
Main language Lua
Average time to merge a PR 1 day
Open pull requests 39+
Closed pull requests 15+
Last commit 16 days ago
Repo Created over 7 years ago
Repo Last Updated 15 days ago
Size 42.9 MB
Homepage http://koreader.r...
Organization / Authorkoreader
Latest Releasev2020.07
Page Updated
Do you use koreader? Leave a review!
View open issues (362)
View koreader activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating koreader for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)
What people are saying about koreader Leave a review
The ability to turn off embedded styles, landscape mode, calibre integration, pdf file support


KOReader is a document viewer primarily aimed at e-ink readers.

AGPL Licence Latest release Gitter Mobileread Build Status Coverage Status Weblate Status

Download Wiki Developer docs

Main features

  • portable: runs on embedded devices (Cervantes, Kindle, Kobo, PocketBook, reMarkable), Android and Linux computers. Developers can run a KOReader emulator in Linux and MacOS.

  • multi-format documents: supports fixed page formats (PDF, DjVu, CBT, CBZ) and reflowable e-book formats (EPUB, FB2, Mobi, DOC, CHM, TXT). Scanned PDF/DjVu documents can also be reflowed with the built-in K2pdfopt library.

  • full-featured reading: multi-lingual user interface with a highly customizable reader view and many typesetting options. You can set arbitrary page margins, override line spacing and choose external fonts and styles. It has multi-lingual hyphenation dictionaries bundled into the application.

  • integrated with calibre (search metadata, receive ebooks wirelessly, browse library via OPDS), Evernote (export hightlights), Wallabag, Wikipedia, Google Translate and other content providers.

  • optimized for e-ink devices: custom UI without animation, with paginated menus, adjustable text contrast, and easy zoom to fit content or page in paged media.

  • extensible: via plugins

  • and much more: look up words with StarDict dictionaries / Wikipedia, add your own online OPDS catalogs and RSS feeds, share ebooks with other KOReader devices wirelessly, online over-the-air software updates, an FTP client, an SSH server,

Please check the wiki to discover more features and to help us document them.



Please follow the model specific steps for your device:

Android Cervantes Kindle Kobo Linux Pocketbook reMarkable


Setting a build environment Collaborating with Git Building targets Porting Developer docs


KOReader is developed and supported by volunteers all around the world. There are many ways you can help:

Right now we only support liberapay donations, but you can also create a bounty to motivate others to work on a specific bug or feature request.

Also if you have and old Pocketbook device you don't want, we might find it useful to tinker a bit with that platform. Please contact us through the forum or GitHub.


Last commit Commit activity

0 1 2 3 4 5 6 7

koreader open issues Ask a question     (View All Issues)
  • over 3 years Wikipedia .zim files
  • over 3 years Error while logging in to Evernote
  • over 3 years absolute font-size values have no effect
  • over 3 years Add multitouch gesture for going up in the directory tree
  • over 3 years Make the "powered off" state customizable
  • over 3 years The file manager forgets the current page
  • over 3 years Koreader integration with GoodReads
  • over 3 years clock displays without prompting when reading pdf files in top right corner
  • over 3 years KA1 frontlight not working
  • almost 4 years Smalls .mobi images, and not working footnotes
  • almost 4 years FR - Custom suspended message
  • almost 4 years ./kodev build error: Makefile:819: recipe for target 'zdir.lo' failed
  • almost 4 years Android KR crashing
  • almost 4 years FR: Support for natural light on KA1
  • almost 4 years Unhighlight is not clickable in dictionary view
  • almost 4 years Crash on PocketBook Touch HD with Firmware U5.16.136
  • almost 4 years A screen size adjustment bug on e-ink Onyx Boox i86ml
  • almost 4 years Automatic Wi-Fi resume sometimes does not resume properly
  • almost 4 years Koreader crashes when I attempt to enable wi-fi network
  • almost 4 years Cannot use custom css with android version.
  • almost 4 years FR - full progress bar (upper) adjustments
  • almost 4 years FR - Quick top menu commands (icons) for shutting off of reader and toggling light
  • almost 4 years FR - Ability to setup clock within koreader
  • almost 4 years Dialog when reopening book at start
  • almost 4 years Save history file when highlighting
  • almost 4 years Footer hides text
  • almost 4 years Protect opening ebook with password
  • almost 4 years Translate page - enhancement
  • almost 4 years Can't make a screenshot while dictionary window is open
  • almost 4 years Kobo Aura HD - frontlight is on after sleep, but only in theory
koreader open pull requests (View All Pulls)
  • refactor readerfooter
  • fix tests
  • Add cursor functionality for inputtext widget
  • Restart Koreader if last instance crashed
  • update koreader-base
  • defaults(refactor): remove global hack in filemanagersetdefaults
  • russian keyboard layout improvement from mergen3107
  • Update kosync plugin
  • Automatically connect WIFI after Kobo has been resumed
  • fixed script to support OSX bash 3.x
  • Patch for wikipedia language
  • Support handling usb hotplug event in kobo
  • update new OTA server & fix plugin check errors
  • Frontlight progress bar
  • StorageStat: Improve Output (#2486)
  • Ask for connection when clicking on Wikipedia
  • Prefix format with "Download " in prompt
  • Remove run twice onPageUpdate() when document is opening
  • Changes to calibre companion
  • Add restart koreader function and ensure FlushSettings event can be delivered to all widgets
  • News downloader atom support
  • Statistics plugin v2 (SQLite)
  • [w.i.p] NewsDownloader externalize download engine
  • [WIP] Pocketbook-suspend plugin
  • Add Android clipboard definition
  • [WIP] Add dictionary download option
  • WIP: Use background runner to restore wifi and check network state
  • [i18n, fix] KoboLight plugin: fix up text issues
  • Speed up page turning on big cre documents
  • set FULL_REFRESH_COUNT to a sane value if no pref is set and toggleNi…
  • remarkable: add more detail to README about launcher
  • desktop/emulator changes
  • some mac app fixes
  • Fix issues #6362 - ftp corruption of binary files
  • wip: add support for android TV
  • wip: FontDownloader plugin
  • [wip] "move to archive" as option in after read book
  • [wip] Remove article from Wallabag server right after download
  • WIP: [Android] Boox NovaPro sys natural backlight support
koreader list of languages used
koreader latest release notes
v2020.07 KOReader 2020.07 "Tumbleweed"

It's been a busy month, so I'll get right to some of the highlights.

Ruby (furigana)

Ruby characters (also known as furigani) are now supported in the form of the <ruby> element, small typographic annotations to aid pronunciation (#6305).

Rotation handling

Usually I tend to emphasize user-visible changes, and in a way this one's both. Rotation was refactored (#6309), which immediately and easily allowed for better Android TV support (#6327).

The following screenshots showcase the new rotation handling on Chrome OS (running Android apps) and Android TV: chromeOS-overlay tv


The calibre metadata search and calibre wireless connections were merged into a single plugin (#6177).

search metadata changes:

  • search directly into calibre metadata files.
  • search can be performed on more than one library (configurable from a menu)
  • device scans now find all calibre libraries under a given root
  • search options can be configured from a menu. (case sensitive, find by title, author and path)
  • removed legacy global variables.
  • option to search from the reader
  • option to generate a cache of books for faster searches.

calibre wireless connection changes:

  • keep track of books in a library (includes prunning books from calibre metadata if the file was deleted locally)
  • remove files on device from calibre
  • support password protected connections
  • FM integration: if we're in the inbox dir it will be updated each time a book is added or deleted.
  • disconnect when requested by calibre, available on newer calibre versions (+4.17)
  • remove unused opcodes.
  • better report of client name, version and device id
  • free disk space checks for all calibre versions
  • bump supported extensions to match what KOReader can handle. Users can override this with their own list of extensions (or from calibre, by configuring the wireless device).

Hebrew translation

A big thank you to all of our translators. This month a good chunk of KOReader was localized in Hebrew. Please head over to https://hosted.weblate.org/engage/koreader/ if you want to help.

We'd like to thank all contributors for their efforts. Some highlights since the previous release include:

  • Fix bottom menu item titles truncation (#6273) @poire-z
  • Add chapter title when exporting notes in Evernote (JSON/HTML, remote) (#6146) @Galunid
  • [chore] Rename 'More plugins' to 'More tools' (#6279) @Frenzie
  • [chore] Device abstraction (#6280) @pazos
  • Unified calibre plugin (#6177) @pazos
  • [chore, UX] Move some 'permanent' settings inside more_tools (#6282) @pazos
  • [Android] Add support for custom startup scripts (#6275) @zwim This is only available on the rocks flavor of Android, which is provided here on GitHub. In the fdroid flavor it's been disabled. See the wiki for more information.
  • [plugin] Dispatcher: for profiles & gestures (#6106) @yparitcher
  • Don't rotate BookStatus & ReadingProgress in screensavers. (#6286) @NiLuJe
  • Translator: Add definition of the word to the translation (#6295) @Galunid
  • bump crengine: add support for <ruby> elements (#6305) @poire-z
  • Add the possibility run shell scripts from filemanager on android (#6288) @zwim
  • Add PocketBook 614W (Basic 3) definition (#6312) @roshavagarga
  • [feat] FocusManager: wrap around horizontally (#6315) @Frenzie
  • [UX] Add left to close to ConfigDialog for hasFewKeys (#6318) @Frenzie
  • [plugin] Wallabag: Make remove from history consistent with deletion (#6320) @Frenzie
  • [UX] Move double tap to gesture manager (#6322) @Frenzie
  • [i18n] Add support for fledgling Hebrew translation (#6333) @Frenzie
  • [feat] Add text/html to OPDSBrowser (#6335) @Frenzie
  • Landscape FM / Refactor rotation (#6309) @yparitcher
  • bump crengine: memory fixes, speedup, bg image enhancements (#6350) @poire-z
  • android: support for native surface rotation (#6359) @pazos
  • Allow locking the gyro to the current screen mode (#6347) @NiLuJe
  • Add macOS target (#6361) @JasonInOttawa
  • ReaderGesture: cleanup (#6292) @yparitcher
  • Dispatcher: use sections (#6364) @yparitcher
  • Perception expander: disable margin increase when set to 0 (#6377) @yparitcher
  • Initial handling of the upcoming Kobo Nia (#6380) @NiLuJe NB This may not work properly on a real Nia once it's released.
  • [UX] German keyboard layout qwertz (#6385) @zwim
  • SetNightMode event & Night Mode refresh rate (#6386) @yparitcher
  • Implement numeric collator (natural sorting) in file manager (#6378) @Galunid
  • Remarkable button-listen when resuming from suspendsuspend fix (#6396) @tcrs

Full changelog closed milestone issues

v2020.06 KOReader 2020.06 "Mosaic"

This month we've seen quite a number of small improvements in various areas, such as support for book-specific style tweaks (#6244), support for ::before/after (#6236), an offline add link to Wallabag queue (#6170), as well as some Android fixes. Enjoy!

We'd like to thank all contributors for their efforts. Some highlights since the previous release include:

  • Add Wallabag queue (#6170) @mwoz123
  • [PocketBook] Add 515 and PB616W definition (#6182, #6184) @Frenzie @lenormf
  • [PocketBook] Add PocketBook 613 Basic definition (#6192) @Frenzie
  • [PocketBook] Map d-pad key events (#6183) @lenormf
  • [feat] Add Device:hasFewKeys() (#6193) @Frenzie
  • [UX] Implement hasFewKeys prototype (#6195) @Frenzie
  • [fix] GestureDetector: prevent hold timers overlap (#6186)
  • bump_crengine: various fixes, tweaks and cleanups (#6188) @poire-z
  • [Kindle] Don't resize the titlebar on FW >= 5.12.4 (#6204) @NiLuJe
  • Statistics: some fixes, reordering and rewording (#6194) @poire-z
  • Footer: fix items possibly missing (#6212) @poire-z
  • Disable the RTC alarm on shutdown (#6211) @NiLuJe
  • SkimToWidget: fix next/prev bookmark not updating it (#6216) @poire-z
  • [Desktop] Fix missing glyphs by packaging freefonts again (#6218) @pazos
  • Footer: skip tap lock when needed (#6225) @poire-z
  • [NewsDownloader] Added an HTML filter through a CSS selector (#6228) @lich-tex
  • Don't exit KUAL on the Voyage (#6233) @NiLuJe
  • crengine: support for pseudo elements ::before/after (#6236) @poire-z
  • CRE: use same marks in top and bottom progress bars (#6236) @poire-z
  • [feat] Allow message to be overlaid on other screensavers (#6238) @sladflob
  • Ensure feature-parity in ScreenSaver handling on Kindle (#6240) @NiLuJe
  • Style tweaks: adds Book-specific tweak menu item (#6244) @poire-z
  • handle newlines in exported pdf highlights (#6247) @pazos @sr1920 @Frenzie
  • [fix, plugin] Wallabag: add quiet option to callAPI() (#6252) @Frenzie
  • Fix missing glyphs and in keyboard popup (#6254) @smartscripts-nl
  • Allow automatically marking the book as read on end of doc (#6256) @NiLuJe
  • android: replace default footer margins by values that work with rounded corner devices (#6260) @pazos
  • A few footer tweaks (allow setting height through UI) (#6257) @NiLuJe
  • [plugin, UX] Wallabag: aid with setting up missing information (#6262) @Frenzie
  • Floor dimension computations (mul/div). (#6264) @NiLuJe
  • fix ANRs (not responding notification) in Kosync plugin login/register (#6266) @pazos
  • android: add a toggle to ignore back button events (#6269) @pazos

Full changelog closed milestone issues

v2020.05 KOReader 2020.05 "May Storm"

Good news for Kobo users! There's a new launcher for apps and scripts called NickelMenu, and it's supported starting with this version of KOReader.

We'd like to thank all contributors for their efforts. Some highlights since the previous release include:

  • crengine: text typography by language (#6069, #6072) @poire-z
  • Screenshot: use month number instead of name (#6062) @Frenzie
  • Add support for physical button for page crop (#6091) @robert00s
  • crengine: multiple fallback fonts (#6090, #6095) @poire-z
  • Text widgets, crengine: fix wrong vertical positioning (#6093) @poire-z
  • Option to prevent tap on status bar (#6083) @poire-z
  • Add support for exporting highlights in JSON format (#6067) @RCoeurjoly
  • Add move to archive plugin (#6101) @mwoz123
  • ReaderStatus: close file before deleting (#6108) @yparitcher
  • [Gesture] Add go to first and last page (#6096) @robert00s
  • [Gesture] Add progress sync gesture (#6103) @robert00s
  • Enable Highlight action on single word selection (#6114) @poire-z
  • Adds Word Expansion: use of letter spacing for justification (#6112) @poire-z
  • android: add a toggle to force haptic feedback in spite of system settings (#6123) @pazos
  • Reorganize bottom menu config panels (#6131) @poire-z
  • [Android] add eudic dictionary support (#6154) @pazos
  • desktop: add support for 3rd party dictionary apps (#6167) @pazos

Full changelog closed milestone issues

Other projects in Lua