Kindle 高亮笔记被截断?Claude Code 这个 skill 能逐字恢复 815 条被封锁的笔记

工具精选·第5期

你花钱买的书,做的笔记,亚马逊却只还给你一半。

从亚马逊笔记本页面导出一本重度标注的书,部分高亮只回来半句话,另一些干脆只剩一个位置编号,下面挂着一行提示:"Some highlights have been hidden or truncated due to export limits."这些是你自己的笔记,存在你自己的账户里,却被一个亚马逊不公开、也无法调高的预算卡住了。

开源项目 l3a0/claude-plugins 里的 kindle-highlights skill 就是针对这个问题的。它把一本书的全部高亮从 Kindle notebook(read.amazon.com/notebook)提取到一个合并的、逐字保留、带位置引用的 Markdown 文件里——包括那些被导出限制截断或完全隐藏的高亮。

作者在四个真实书目上验证过:2432 条高亮被提取,其中 815 条被导出封锁(454 条截断 + 361 条完全隐藏),每一条都恢复了。恢复文本与 Kindle 应用自身位置标尺的偏差中位数在 0 到 1 个字符之间。

一句话结论:这个 skill 不破解任何东西,它只是把亚马逊网页端没完整返回的笔记,通过 Kindle 应用本地数据库和本地 OCR 补齐——恢复的是你自己的数据,OCR 在本地跑,零 token 消耗。

什么人适合用,什么人不适合

先说清楚适用范围,避免装到一半发现白忙。

这个 skill 的定位很明确:导出你自己的 Kindle 高亮,从你自己的亚马逊账户,驱动你自己已登录的浏览器会话,读取 Mac 上 Kindle 应用存储的文件。输出用于个人笔记——书的内容受版权保护,提取出来的笔记应当保持私密。

适合的人:重度 Kindle 标注者,尤其是做读书笔记、知识管理(PKM)的人;被导出截断问题困扰、想要完整逐字笔记的人;已经在用 Claude Code、不排斥命令行和 macOS 系统配置的人。

不适合的人:Windows 或 Linux 用户——这个 skill 的整条流水线是 macOS 专属的,而且不止一处依赖 macOS。浏览器控制走 AppleScript,OCR 用苹果的 Vision 框架,高亮位置来自 Mac 版 Kindle 应用的数据文件。三重 macOS 依赖,没有跨平台方案。另外,如果只是偶尔导出一两条高亮,手动复制可能比配置这一整套环境更快。

前置条件:五个缺一不可

这是最容易翻车的地方。skill 本身安装就两条命令,但它的前置条件有五个,缺一个都会在运行时报错。按官方 README 列出的清单逐项核对:

第一,Claude Desktop 需要安装 "Control Chrome" 扩展。这是 Anthropic 的浏览器控制 MCP(Model Context Protocol,模型上下文协议,让 Claude 能操作外部工具的接口),在 Claude Desktop 的 Settings → Extensions 里安装。它是这个 skill 验证过的、在真实 Chrome 里执行 JavaScript 的路径。

第二,Chrome 需要开一个设置。菜单栏 View → Developer → Allow JavaScript from Apple Events,勾选后退出并重启 Chrome。这个设置不打开,AppleScript 无法驱动浏览器执行脚本。

第三,Google Chrome 要登录你的亚马逊账户,因为 skill 要驱动 read.amazon.com。

第四,当前版本的 Mac Kindle 应用(App Store 版,bundle id 是 com.amazon.Lassen,不是老版的 Kindle.app),登录同一个亚马逊账户,并且把目标书下载下来。它的同步标注数据库提供精确的高亮范围,不受导出限制影响。

第五,Xcode Command Line Tools(xcode-select --install)和 python3。批量恢复路径会编译一个小的 Swift OCR 助手(用 swiftc),调用 Apple Vision;python3 负责构建最终 Markdown 并运行一个 localhost 接收器(127.0.0.1:8931),读者页面会把捕获内容 POST 到这个端口。

最容易漏的是 Chrome 的 "Allow JavaScript from Apple Events" 设置。它藏在 View → Developer 菜单里,不显眼,但不开它整个浏览器驱动环节直接失效。

最容易踩的坑:装错 Kindle 应用版本

判断标准就一条:bundle id 是不是 com.amazon.Lassen。

Mac 上有两个 Kindle 应用:老版的 Kindle.app 和当前 App Store 版。这个 skill 明确要求的是后者。老版应用的标注数据文件结构不同,读不到精确的高亮位置。如果两个都装了,确保登录的是 App Store 版,并且目标书已经下载到本地。

验证方法:在终端里查一下应用 bundle id,或者直接看应用来源。App Store 版的图标和启动界面与老版有明显区别。装错版本的表现通常是:skill 能跑起来,但恢复出来的高亮位置对不上,或者干脆读不到数据库。

恢复机制:它做了什么,没做什么

这个 skill 的恢复逻辑值得说清楚,因为它决定了你能期待什么结果。

它做的事情分四步:

从 notebook 页面 DOM 抓取所有高亮到 JSON(保留逐字排版);从 Kindle 应用的 SQLite 数据库读取字符级精确的高亮位置——包括网页导出完全隐藏的那些;对被封锁的文本,通过 canvas 捕获 Cloud Reader 的渲染页面(不需要系统截图),用 Apple Vision 在本地 OCR(零 token 消耗),再按已知位置切出文本;最后输出一个 Markdown 文件,用 ### Location N 分节,逐字引用文本放在 blockquote 里,并标记哪些是恢复的、哪些是近似的,然后跑一遍 QA。

关键点:它没有绕过任何 DRM(数字版权管理),也没有访问任何你不该访问的数据。它只是把亚马逊自己网页端没完整返回的内容,通过 Kindle 应用本地数据库和 Cloud Reader 渲染页面补齐。恢复的文本落在 Kindle 应用自身位置标尺的几个字符之内,中位数残差 0 到 1 个字符——这意味着恢复质量很高,但不是逐字节完美。

理解恢复机制很重要:它读的是你自己账户里的数据,OCR 在本地跑,零 token 消耗。不要期待它"破解"任何东西,它只是把亚马逊没给你的那部分还给你。

输出隐私边界

输出文件里是书的逐字内容。书受版权保护,所以官方 README 明确提醒:提取出来的笔记保持私密。

不要把这些 Markdown 文件公开分享、上传到公共仓库或社交媒体。它适合放进你的个人笔记系统,不适合当作"免费书摘"分发。

这一点和前面说的"没有绕过 DRM"是一体的:工具帮你拿回自己的笔记,但笔记里引用的原文仍然受版权约束。合理使用边界取决于你的用途和地区法律,但最稳妥的做法就是私密保存。

安装步骤与最佳实践

安装本身很简单,两条命令:

claude plugin marketplace add l3a0/claude-plugins

claude plugin install l3a0@l3a0

skill 以 /l3a0:kindle-highlights 的方式调用,当请求匹配 skill 描述时 Claude 也会自动触发。

最佳实践总结成四条:

第一,按前置条件清单逐项核对,尤其是 Chrome 的 Apple Events 设置和 Kindle 应用版本;第二,先拿一本高亮数量适中的书测试,确认整条流水线跑通再处理重度标注的书;第三,输出文件放进本地笔记系统,保持私密;第四,如果遇到恢复位置偏差,检查 Kindle 应用是否已同步、目标书是否已下载到本地。

这个 skill 的许可证是 MIT,作者在 Substack 上写了完整的构建故事——为什么导出限制存在、三个解锁它的关键点、以及一个导出库能变成什么。如果对 Kindle 数据所有权和笔记工作流感兴趣,那篇《How to Take Back Your Kindle Highlights》值得一读。

转给正在做读书笔记的同事:Kindle 导出高亮被截断不是你的问题,是亚马逊的导出限制。这个开源 skill 能把被封锁的笔记逐字找回来,前提是你用 Mac。

你遇到过 Kindle 导出高亮被截断的情况吗?是怎么处理的?

#Claude Code #Kindle高亮恢复 #开源skill #读书笔记工具 #macOS教程