KOReader Plugin
New Features
- Built-in troubleshooting: A new "Troubleshooting" menu walks you through common problems. "Check LocalSend" inspects Wi-Fi, the receiver, your save folder, and network access, then suggests a next step. Additional guided helpers cover "Can't find a device?" and "Transfer failed?" — plus a one-tap support report generator to make filing useful bug reports easier.
- Quick actions and gestures: "Send file" and "Send current book" can now be assigned to KOReader gestures, profiles, and quick-menu actions.
- About menu: A dedicated "About LocalSend" dialog shows the installed version, device architecture, and project link.
- Compound extension routing: Route tagged files such as
document.safari.pdfseparately from ordinary.pdffiles. When no compound rule exists, routing falls back to the normal file extension.
Improvements
- Better update experience: Updates now have a dedicated menu with full release notes, an available-update indicator, optional background checks, and the ability to reinstall the current version when recovering a damaged installation.
- Scan again from the device picker: Refresh nearby devices without leaving the selection dialog or restarting the send flow.
- Graceful server shutdown: The receiver stops more cleanly during KOReader exit and suspend, reducing leftover processes and port conflicts.
- Cleaner uninstall: KOReader's plugin management can now remove LocalSend settings, certificates, routing configuration, and temporary state when deleting the plugin.
CLI Changes
New Features
- Discovery self-test: The new
nettestcommand checks multicast loopback, LocalSend announcements, HTTP registration responses, and visible network interfaces. Human-readable and JSON output are available.
Improvements
- Updated networking stack: Updated Fiber, Pion WebRTC, DTLS, FastHTTP, and other Go dependencies to their latest compatible releases.
Bug Fixes
- Reliable LAN discovery: The
scanandrecvdiscovery backend now listens across all eligible network interfaces, improving discovery on e-readers, constrained hardware, and multi-interface networks. - Stable WebRTC transfers: Hardened the WebRTC send queue, file pipeline, and shutdown synchronization to prevent transfer desynchronization, partial-file handling errors, and shutdown hangs.
Security
- Atomic session admission: Receive-session checks and creation are now performed atomically, preventing concurrent transfers from bypassing the single-session limit.
- Mandatory V3 nonce exchange: V3 HTTP uploads must complete the nonce exchange before preparing a transfer, preventing replay of stale handshake state.
- Hardened WebRTC validation: Incoming file headers, tokens, declared sizes, checksums, control messages, and signaling payloads now receive stricter validation.
- Bounded request handling: File uploads are streamed instead of buffered in memory, while JSON metadata and control messages have explicit size limits to reduce denial-of-service risk.
Installation
-
Download the zip for your device's architecture:
- armv7 — Kindle (all models), Kobo, reMarkable 2, PocketBook
- arm64 — reMarkable Paper Pro
- arm-legacy — Kindle 3, Kindle DX, older 32-bit ARM devices
Not sure? Try armv7 first. Use arm-legacy only if armv7 doesn't work on older hardware.
-
Extract
localsend.kopluginto your KOReader plugins directory:- Kindle:
/mnt/us/koreader/plugins/ - Kobo:
/.adds/koreader/plugins/ - reMarkable:
/home/root/koreader/plugins/
- Kindle:
-
Restart KOReader
See README for usage instructions.