New Features
Self-Update from Settings
Update the plugin directly from KOReader without manual file management.
- Tap Check for updates in the LocalSend settings menu
- Automatically detects your device architecture (armv7/arm64)
- Downloads and installs the matching release package
- Just restart KOReader after updating
Extension-Based File Routing
Route files to different directories based on their extension. For example, send EPUBs to your Books folder and PDFs to Documents.
- Configure via KOReader GUI: Menu → File type routing
- Or via CLI:
--ext-routing config.json - Supports a "default" fallback for unrouted file types
- Directories are auto-created on first save
V3 Protocol Support
Added comprehensive support for LocalSend V3 protocol, improving compatibility with newer LocalSend clients.
WebRTC Token Refresh
Long-running receiver sessions now automatically refresh WebRTC tokens every 30 minutes, preventing disconnections during extended use.
Improvements
- Session timeout: Idle sessions now expire after 1 minute of inactivity, preventing stale sessions from blocking new uploads
- Activity tracking: Large file transfers keep sessions alive indefinitely (activity updates rate-limited to every 10 seconds)
- Apostrophe support: Device names like "Kai's Kindle" now work correctly
- Idempotent firewall rules: Lua firewall rules no longer create duplicates when called multiple times
- Port validation: Firewall commands now validate port numbers before execution
Bug Fixes
- Fix slice append mutation in sender nonce concatenation
- Bound FindUniquePath loop to prevent infinite iteration (max 10,000 attempts)
- Return copy from FileTokens() to prevent external map modification
- Fix race condition in AcceptFile() by moving atomic increment inside lock
- Properly start/stop session cleanup goroutine in receiver lifecycle
- Add graceful shutdown with 5-second timeout for web server
- Fix 50+ error handling issues (unchecked return values)
- Sanitize filenames in transfer logs to prevent log injection
Installation
- Download the zip for your device's architecture:
- armv7 — Kindle, Kobo (all models), reMarkable 2, PocketBook
- arm64 — reMarkable Paper Pro
- 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.