乐于分享
好东西不私藏

KOReader 的"应用商店":装插件、装补丁、查更新

KOReader 的"应用商店":装插件、装补丁、查更新

KOReader 装插件、跟更新一直是手动活。appstore.koplugin 把浏览、安装、更新收进阅读器,这篇讲清它怎么用、四个界面各自干什么,以及镜像下载和 API 限流这些用之前要知道的坑。


KOReader 用户大概都经历过这种循环:GitHub 上看到一个插件,下载 zip、解压、把文件夹复制进 plugins 目录、重启;过几周作者更新了,再来一遍。插件装多了,这活儿就成了定期家务。

上篇写 KOReader 的 AI 插件对比时,两个插件都提到能靠同一个东西安装——appstore.koplugin。这次把它单独讲透。

它干的事只有一件:在 KOReader 里逛插件、装插件、跟更新,不用离开阅读器。它不碰阅读功能本身,也不下载书,只当插件和补丁的"应用商店"。

资料来源先交代清楚:功能细节依据这个仓库的 README、源码和 GitHub 数据整理,查询时间 2026-08-20。appstore.koplugin 和上篇的 KOAssistant,目前在两台实机上装着用着:BOOX NoteX 和 Hisense A7。

它是什么

appstore.koplugin 是 KOReader 的插件,作者 omer-faruq——上篇的 assistant.koplugin 也是他维护的。仓库 2025 年 11 月创建,八个多月发了 20 个版本,最新 v1.12.0,471 星,GPL-3.0 开源。除了作者本人,还有几位外部贡献者持续合入代码,README 里甚至直接写了"本插件和文档由 AI 辅助编写",源码还带了两组自动化测试。

它管理两类东西:

  • • 插件:KOReader 的扩展,一个自包含的 .koplugin 文件夹。
  • • 用户补丁:单个带编号的 .lua 文件,放进 patches 目录,启动时修改 KOReader 自身行为。这类东西平时很难维护——没有统一入口,作者更新了你都不知道。

它找插件的路子是 GitHub 搜索:按 koreader-plugin、koreader-user-patch 两个 topic 搜,再补仓库命名模式(KOReader.patches、[名字].plugins 这类)。一个仓库能不能被搜到,取决于作者有没有打对标签。这也解释了排查方向:某个插件找不到,先看它的仓库有没有对应 topic。

整理资料时我先入为主地以为它只管插件,翻到 README 一半才发现,补丁和插件是同等对待的,补丁也是重点照顾对象。

装它自己

安装方式和普通插件一样:

  1. 1. 到 releases 页下载最新版(或直接 clone 仓库)。
  2. 2. 把 appstore.koplugin 文件夹放进 KOReader 的 plugins 目录:
    • • Kobo / Kindle:koreader/plugins/
    • • Android:/sdcard/koreader/plugins/
    • • Linux 桌面:~/.config/koreader/plugins/
  3. 3. 重启 KOReader,工具(Tools)菜单里就有 App Store。

前提:KOReader 是 nightly 或 2024.12 之后的正式版,设备能联网。解压、校验、SQLite 缓存这些依赖都打包在官方发布版里,不用额外装。

四个界面

App Store 打开后是四个界面,插件和补丁分两条线。

插件浏览器:列出 GitHub 上打 koreader-plugin 标签的仓库,每条带描述、星数、更新时间、作者。支持按搜索词、作者、最低星数过滤,按星数、更新时间、名称排序,分页浏览;已装的插件带对勾。点进条目能直接看 README——插件从 GitHub 抓下来,在阅读器里渲染,还能离线缓存。齿轮菜单里有个"从 URL 安装",知道仓库名就能手动装。

补丁浏览器:同一套过滤排序,列表换成仓库里的编号补丁文件(数字-*.lua)。点安装,插件从默认分支把对应 .lua 拉到 patches 目录,编号保留。

已装插件页:汇总所有已装插件,分"已匹配仓库"和"未匹配"两类。每行显示本地版本、远端版本/SHA、上次检查时间,有差异就出现 Update 或 Reinstall 按钮。能一键 Check all updates,也能只看有过期的。单个插件的操作有禁用/启用、删除、匹配仓库(从列表挑或直接输 URL)、解除匹配。

已装补丁页:逻辑同款,管 patches 目录里的编号文件。补丁的禁用是把文件改名加 .disabled 后缀,插件用的是 KOReader 原生禁用机制,机制不同,界面上都标 [DISABLED],不影响使用。

安装流程本身:下载仓库 zip → 解压到临时目录 → 校验 _meta.lua → 复制到插件目录 → 提示重启生效。更新检测靠缓存 SHA 和本地文件对比,有新提交或新版本就标出来。

几个值得说的设计

先说缓存。浏览列表先读本地 SQLite 缓存,网络再慢页面也顺;缓存超过 7 天会提示刷新,断网时旧结果照样能看。README、下载包、已装 SHA 都有缓存,重复操作不重复下载。

再说过期版本。插件新版本翻车是常事,下载选项里点 Ignore this release,这个版本就从更新提示里消失,等作者发更新的版本再提醒。想手动装回来看一眼也行,入口留着。

还有个改配置的入口:插件和补丁的配置文件能在 KOReader 里直接编辑,不用为改一行配置连电脑。

多目录支持是 v1.12.0 的大头。喜欢把第三方插件单独放目录的人(KOReader 的 extra_plugin_paths)会被照顾到:装新插件时问装哪个目录,可以记住选择;更新永远写回插件当前所在目录;不想让内置插件出现在更新列表里,就在"管理插件路径"里把对应目录藏掉。

非触屏设备也能用。Kindle 4 NT 这类没触摸屏的机器,方向键、五向键、翻页键全流程可操作,README 专门写了按键约定。

电脑上也能逛同一份列表:https://omer-faruq.github.io/appstore.koplugin/ ,或者下载仓库里的 docs/index.html 本地打开。装之前先逛逛,不用动阅读器。

界面语言跟随 KOReader 设置,自带简体中文,另有土耳其语、西班牙语、法语、德语、巴西葡萄牙语、匈牙利语。

用之前要知道的坑

匿名 API 会限流。浏览靠 GitHub 搜索 API,匿名额度大约每分钟 10 次、整机共享。逛得多、翻页勤,就会碰到 Rate limit exceeded。解法是配一个 GitHub Personal Access Token:classic 类型、public_repo 权限就够,填进 appstore_configuration.lua 再重启。注意 fine-grained 类型不行——GitHub 的搜索 API 根本不接受它,v1.12.0 起插件会检测到并直接提示。Token 是凭据:别截图、别发群里、别提交进任何仓库。

镜像下载源有边界。GitHub 慢或连不上时,齿轮菜单里可以切下载源,内置 gh-proxy.com、gh.ddlc.top、ghproxy.net 三个预设,也能填自己搭的前缀。README 把边界写得很清楚:只有下载和 README 抓取走镜像,api.github.com 的请求永远直连 GitHub——API 请求头里带着你的 token,走第三方等于把钥匙交出去。而且镜像没有校验、没有签名,镜像方给什么你就装什么,插件可是会被执行的代码。默认直连,没有明确理由别换。

对 KOReader 版本有要求。2024.12 之前的老版本装不上;个别新功能(新版 README 弹窗)要 2026.07 之后的版本才启用。

生态有上限。能找到什么取决于 GitHub 上有什么、标签打得对不对。它是"逛 GitHub 的窗口",没有审核,也没有评分体系,装之前自己看 README 和星数判断。

值不值得装

只看书、不碰任何插件的 KOReader 用户,可以跳过。只要装过一个插件,或者被"某个补丁更新了"这种消息追着跑过,它就值得装:装一次,后面所有插件的安装、更新都汇到一个入口,还能一键检查全部过期。我手里的 BOOX NoteX 和 Hisense A7,两台都装着它和 KOAssistant,日常的插件安装、更新就靠这一个入口。

最后说个安静的事实:这个项目从 2025 年 11 月发布第一版,到 2026 年 8 月的 v1.12.0,八个多月发了 20 个版本。KOReader 生态里长期维护的工具不多,作者一直在动。

你手里电纸书装过的第一个插件是什么?评论区聊聊。

时效声明:本文信息来自 omer-faruq/appstore.koplugin 的 README、源码与 GitHub 数据,查询时间 2026-08-20;已在 BOOX NoteX 与 Hisense A7 上安装使用。插件迭代较快,功能与数字以仓库当前状态为准。