A desktop application for automatic installation of plugins and patches to your KOReader device.
Please report all issues under the ‘Issues’ tab!
koreader_store/
├── main.py # Main entry point
├── ui/ # User interface components
│ ├── main_window.py # Main application window
│ ├── plugin_card.py # Plugin card widget
│ ├── themes.py # UI themes and design tokens
│ ├── loading_overlay.py # Loading screen overlay
│ ├── patch_selection_dialog.py # Patch selection dialog
│ ├── readme_text_edit.py # README text editor widget
│ └── ssh_dialog.py # SSH connection dialog
├── workers/ # Background workers
│ ├── __init__.py # Worker package initialization
│ └── download_worker.py # Download and installation worker
├── services/ # Business logic services
│ ├── device_detection.py # KOReader device detection
│ ├── plugin_installer.py # Plugin installation service
│ ├── cache.py # Caching service
│ ├── appstore_service.py # App store service for fetching data
│ ├── ssh_connection.py # SSH connection service
│ └── update_service.py # Update checking service
└── utils/ # Utility functions
├── __init__.py # Utils package initialization
├── markdown.py # Markdown to HTML conversion
└── versioning.py # Version comparison utilities
Many buttons and actions may take some time to respond. Please be patient — even if it says “Not Responding,” just click “Wait.”
- Plugin Management: Browse, install, and update KOReader plugins
- Patch Management: Download and install KOReader patches with selection dialog
- Device Detection: Automatically detect KOReader devices
- SSH Support: Connect to remote KOReader devices via SSH
- Caching: Local caching for faster loading
- Theme Support: Light and dark themes
- Search & Filter: Advanced search and filtering options
- Update Checking: Automatic checking for application updates
- Go to the releases tab
- Download the right zip for you system
- Extract the zip and run the File
(4.) Make sure the file has Read and Write permissions.
If that failed:
-
Make sure python is installed(https://www.python.org/downloads/)
-
Clone or download the zip
-
Extract the zip and open it(until you see a lot of folders and files)
-
Right click and press open a terminal here
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python main.py
Tip: Inital start can take some time as it fetches all plugins!
-
Device Connection: The app will automatically detect KOReader devices, or you can manually select the path
-
SSH Connection: Use SSH to connect to remote KOReader devices by configuring connection details
-
Browse Plugins: Use the search and filter options to find plugins
-
Install: Click the install button on any plugin card
-
Updates: The app will show available updates for installed plugins
-
Patch Management: Use the patch selection dialog to choose and install specific patches
-
Manual path: Use this option if your device or path isn't automatically detected. Select the main KOReader folder — the one that contains the plugins (and patches) folders.
-
Tip: The Check for Updates can take some time be patient!
- main_window.py: Contains the main application window with all UI logic
- plugin_card.py: Individual plugin card widget for displaying plugin information
- themes.py: Design tokens and theme definitions (light/dark mode)
- loading_overlay.py: Loading screen overlay for better UX
- patch_selection_dialog.py: Dialog for selecting and managing patches
- readme_text_edit.py: Custom text editor widget for displaying README content
- ssh_dialog.py: Dialog for SSH connection configuration
- download_worker.py: Background thread for downloading and installing plugins
- device_detection.py: Cross-platform KOReader device detection
- plugin_installer.py: Plugin installation and management logic
- cache.py: Local caching service for offline functionality
- appstore_service.py: Service for fetching and managing app store data
- ssh_connection.py: SSH connection management service
- update_service.py: Service for checking application updates
- markdown.py: Markdown to HTML conversion for README display
- versioning.py: Version comparison utilities
- Cache Duration: 4 weeks (configurable in
services/cache.py) - GitHub Token: Optional but recommended for higher API rate limits
- Log File:
koreader_store.login the application directory
The application follows a modular architecture with clear separation of concerns:
- UI Layer: Pure presentation logic
- Service Layer: Business logic and data management
- Worker Layer: Background operations
- Utils Layer: Reusable utilities
This project is licensed under the MIT License.
You are free to:
- Use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software
- Permit persons to whom the software is furnished to do so
Attribution (Shoutout) Appreciated! While not required, I would love to get a shoutout if you find this project useful. You can:
- Star the repository on GitHub
- Mention it in your project's credits
- Link back to this project
- Just let me know you're using it!
The full license text is below:
MIT License
Copyright (c) 2026 KOReader Store
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.