Panels+
Read manga and comics panel by panel, without losing the page and other panel zooming utilities with no setup required!
demo_revamped.mp4Core feature: Panel by panel smooth travelling. Battle-tested for performance on low-specs e-readers and old KOReader versions support. (Starting from 2025 versions) |
comics-showcase.mp4Comics showcase: Reading comic books panel by panel with custom panel flow and navigation. |
Panels+ is a KOReader plugin that improves manga and comic reading by replacing the default KOReader single-panel zoom flow with a custom direction-aware panel reader with in-live panel scanning. No complex pre-mangas-scanning setup required, install Panels+ and it just works.
- Zoom-friendly screenshot support while reading panels.
- Panels finding on dark-background pages.
- Animated panel transitions (or even pages transition, optional)
- Comics & Mangas support
- Customizable and performant in low-end e-ink devices.
- And much more.
Currently we're looking for translators. If you'd like to help us translate this plugin to your native language, go to the translators section.
This plugin is compatible with KOReader across the following version range:
| Environment | Supported Version |
|---|---|
| Oldest Tested Version | KOReader v2025.04 "Full Moon" |
| Newest Tested Version | KOReader v2026.03 "SnowFlake" & Newer |
This could work with even older versions, but not personally tested. If any issues with versions outside the previous range, open a github issue in this repo.
|
This plugin works well with:
Tested against 0.4.1 version thanks to users feedback.If any problems, create a github issue in this repo. |
Panels+ is structured for installation via KOReader package and plugin managers:
| Package Manager | Search / Package Name | Installation Method |
|---|---|---|
Plugin Appstore (appstore.koplugin) |
Panels+ (panelsplus.koplugin) |
Search and install directly inside the KOReader Plugin Appstore (or view on the Appstore Web Catalog) |
ZEN Package Manager (zen_ui.koplugin or zenos.koplugin) |
(panelsplus) |
Available directly in the ZEN package manager catalog. |
- Download
panels_plus.koplugin.zipfrom the releases page and unzip it. - You should now have this folder:
panelsplus.koplugin
Note
GUI zip extractors note: Some desktop GUI archive managers (such as GNOME Archive Manager, Ark, or Windows Explorer "Extract All") may create an extra parent folder level matching the zip filename (e.g. panels_plus.koplugin/panelsplus.koplugin/). Take this into account when extracting: make sure you copy the actual panelsplus.koplugin folder (the one directly containing _meta.lua and main.lua) into your KOReader plugins/ directory.
- Copy the whole
panelsplus.kopluginfolder into your KOReaderpluginsdirectory. (Do not copy only the files inside it).
Common plugin paths:
| Device / OS | KOReader plugins directory |
|---|---|
| Kindle | /mnt/us/koreader/plugins/ |
| Kobo | .adds/koreader/plugins/ |
| Android | /sdcard/koreader/plugins/ |
| Linux (Native / Arch / AppImage) | ~/.config/koreader/plugins/ |
| Linux Flatpak | ~/.var/app/rocks.koreader.KOReader/config/koreader/plugins/ |
The final path should look like this:
<koreader plugins directory>/panelsplus.koplugin
- Restart KOReader after copying the folder.
Configuration is as easy as just using the plugin itself!
config_overlay.mp4All your important config, straight in the zooming view!. No more looking over many hidden config screens. |
additional_config.mp4If you still need more advanced config, you can find it here |
- You can customize:
- The swipe direction
- Cropped panel? No cropped? Margin?, already got in.
- Smooth animations (Recommended in no ink-devices)
For a more fluent and immersive navigation, my personal recommendation is to set KOReader to landscape (horizontal) rotation and enable strict-crop mode in Panels+ with classic navigation for e-ink based devices and smooth navigation for android and non-e-ink devices.
While playing and testing this pluging from months of usage I found this setup the most convenient way to experience your manga (and probably the way it was intended).
recommendation_horizontal_personal.mp4
Here is a quick look at how it runs on an actual Kindle
Of course if you prefer vertical, with margin, loose cropped or even animated, then use it that way!. I've made all this config fully customizable to make this plugin `adapt to you`, not you to the plugin. Your manga, your rules.
Panels+ introduces experimental OCR support, allowing you to touch & hold text inside a zoomed-in panel to look up words in the dictionaryβeven in comics/manga! Works across .CBZ, .CBR, and .PDF.
IMPORTANT: To use this feature, you'll need to set up a couple of things first:
- Install an OCR engine in KOReader by following the official KOReader guide.
- Install at least one dictionary. You can do this by following this tutorial for manual installation, or by using KOReader's built-in online dictionary installer.
(Note: Word detection is tricky on hand-lettered or stylized comic text and might not always get it exactly right. As a workaround, I recommend binding a comfortable multi-swipe gesture to "Open dictionary lookup" as a fallback!)
I'm a manga fan and I read a lot in my e-reader and found out some panels are too small to read comfortably on the full page, then I tried using ko-reader native zoom, but then I need to zoom out, change panel, zoom-in, read the panel, zoom-out, zoom-in, read, and so on... (ugh!).
KOReader can detect panels, but the native flow often means zooming into one panel, leaving zoom, moving to the next panel, and repeating that cycle.
I wanted to create Panels+ so (we manga-comic readers) could have the panel navigation we deserve with a normal reading flow!.
This supports screenshots while zoomed into panels, so you can capture the exact panel view instead of only taking full-page screenshots, and use them as screen savers, book covers, anything you want.
Starting from version v1.4.0, Panels+ includes localization support, and we'd love to translate the plugin into as many languages as possible!
Rather than relying on machine or AI translation slop, we are looking for community collaborators to help craft authentic, high-quality human translations.
If you're interested in contributing:
- Check out our Translations Quick Guide to get started.
Currently there is only: English and Spanish support.
- Introduction β a first read: what the plugin replaces, how a page turns into a panel sequence, and the module map.
- Architecture β how the plugin is put together, and what happens between a long hold and a panel on screen.
- Panel detection β how Deep mode turns pixels into panels, including heuristics, fallbacks, and tuning.
- Deep mode β the single panel-detection mode and how it differs from reading, crop, and navigation modes.
- Embedded EPUB/KEPUB/MOBI images β how panel reading works inside reflowable books, including the detector and smooth-navigation limits.
- Word lookup β touch-and-hold text selection, dictionary lookup, and the OCR debug review mode.
- Performance β what each step costs, the memory budget, and how to measure it on your own device.
- Known Limitations β current edge cases and known-behaviour (a todo-list to fix at the same time).
- Testing β running the dependency-free test suite.
When developing on Panels+, it is recommended to clone the koreader base codebase and kobo.koplugin repository directly into your local project root folder:
git clone https://github.com/koreader/koreader.git
git clone https://github.com/koreader/kobo.koplugin.gitThese folders are ignored via .gitignore and are not committed into this repository. Keeping them locally is purely for documentation and remaining KOReader internals aware during development; they are not involved in the plugin's final release code.
This project enforces a standard code style to maintain consistency across developers. We use:
- StyLua: For automatic code formatting (
.stylua.toml). - Luacheck: For static analysis and linting (
.luacheckrc). - lua_ls: We also include a
.luarc.jsonfor developers using the Lua Language Server in their editors so that KOReader global variables are recognized properly.
If you don't have these tools integrated directly into your editor, you can run the provided check scripts to automatically format your code and run the linter:
Linux/macOS:
./check.shWindows (PowerShell):
.\check.ps1Note: CI workflows will automatically run these checks when you open a Pull Request.
Clone or download this repository, then run:
./build.shOn Windows PowerShell, run:
.\build.ps1The script creates dist/panels_plus.koplugin. Copy that generated folder into your KOReader plugins directory, then restart KOReader.
Project is actually stable, and personally tested in:
- Kindle 12th Gen
I don't see any more options to include, but contributions are welcome for:
- edge-cases bugs fixes
- performance improvements
- device-specific bugs fixes (this would help a lot)
Thanks for using the plugin or at least, taking a look into this repo.
MIT License, check "LICENSE" file in this repository.

