ReadAny
本地优先 AI 电子书阅读器,支持 RAG 对话、语义搜索、TTS 朗读与 WebDAV 跨设备同步,覆盖桌面 + 移动端
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
本地优先 AI 电子书阅读器,支持 RAG 对话、语义搜索、TTS 朗读与 WebDAV 跨设备同步,覆盖桌面 + 移动端
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有过这样的经历?读完一本书,过了一周,连主角名字都记不清了。零散的笔记散落在各种笔记软件里,书里画的高亮再也找不回来,搜索只能靠关键词,可明明记得某个观点,就是想不起用了什么词。
这就是 ReadAny 想要解决的问题——一个把 AI 和本地优先理念深度融入阅读体验的跨平台电子书阅读器,2026 年 2 月开源,GitHub 已斩获 2,169 颗星。开发者 codedogQBY 用一套自研的 RAG 工作流,让「向书提问」「语义搜观点」「本地知识库」从黑科技变成了普通用户随手可用的功能。
传统电子书管理工具(如 Calibre)解决的是「书从哪里来」的问题——格式转换、元数据刮削、书库整理。但在 AI 时代,用户的需求已经升级:不只是存书,更是要从书中提炼知识、建立自己的第二大脑。
ReadAny 的核心思路是本地优先 + AI 原生。所有书籍内容、高亮、笔记都存储在本地 SQLite 数据库中,向量嵌入(embeddings)同样可以完全离线运行。这意味着你的阅读数据不会上传到任何云端服务器——隐私完全自主掌控。
项目采用 monorepo 结构,由四个核心包组成:
这种架构让核心逻辑(core)和具体平台(桌面/移动/CLI)完全解耦,代码复用率极高。
ReadAny 最亮眼的功能是基于 RAG 的 AI 智能阅读。当你在读《人类简史》时,可以直接问:「作者为什么认为农业革命是人类史上最大的骗局?」AI 会结合你的当前阅读位置、选中的文字、已有的高亮笔记,给出基于书中内容的精确回答,并跳转到相关段落。
这套 RAG 系统的工作流程如下:
第一步,向量化(Vectorize):对 EPUB/PDF 内容进行分块(Chunking),使用 BM25 倒排索引 + 向量嵌入的双轨检索。支持的嵌入模型包括 OpenAI text-embedding-3-small、Claude(通过 Anthropic API),以及完全本地的 Ollama 模型。
第二步,语义搜索(Hybrid Search):用户提问时,系统先用向量检索找到语义相近的片段,同时用 BM25 关键词召回,两路结果合并排序——这比单纯用向量检索或纯关键词搜索都更准确。
第三步,对话生成(Chat):将检索到的上下文片段注入 LLM 的 system prompt,结合用户的阅读位置(当前章节、页码)和选中的文字,构建完整的阅读上下文。LLM 会引用具体段落作答,用户点击引用即可跳转到原文。
开发者还可以通过技能系统(Skills) 自定义 AI 行为。内置技能包括摘要生成、概念解释、角色追踪、时间线整理等,用户也可以编写自定义技能。README 透露,团队正在设计一套完整的技能框架。
TTS(Text-to-Speech)功能在 ReadAny 中同样被深度集成。项目同时支持三条 TTS 路径:
TTS 不仅仅是「读出声」,它还支持后台播放、语速调节、跨章节连续播放。这意味着通勤、跑步、做家务时,你都可以用耳机「读」完一本书——这是传统电子书阅读器的稀缺能力。

ReadAny 主界面:书库概览 + 阅读进度
ReadAny 的标注系统设计得相当完善。5 种高亮颜色(黄/绿/蓝/粉/紫)对应不同的语义——「重要观点」「新概念」「存疑」「案例」「个人感想」,悬停即可预览高亮附带的笔记。
笔记编辑器采用所见即所得的富文本模式,提供工具栏操作,支持 Markdown 语法。导出版本多达 5 种:Markdown、HTML、JSON、Obsidian 格式、Notion 格式。
其中 Obsidian 导出尤其值得称道——导出的 .md 文件包含完整的 frontmatter 元数据(书名、作者、ISBN、阅读时间、高亮颜色),可以直接拖入 Obsidian 笔记库,配合 Dataview 插件做二次分析。这意味着 ReadAny 不只是一个阅读工具,更是 Obsidian 知识管理生态的优质前端。
本地优先不代表只能单机使用。ReadAny 通过 WebDAV 协议实现书库、高亮、笔记的跨设备同步。支持的 WebDAV 服务包括:
同步机制支持冲突智能合并——两个设备同时编辑时,系统会保留双方修改,标记冲突条目由用户手动确认。
从代码组织来看,ReadAny 的技术选型非常务实:
核心语言:TypeScript(core + 桌面 + 移动端统一),仅桌面端后端使用 Rust。大量使用 workspace:* pnpm monorepo 协议实现包间引用。
PDF 渲染:使用 pdfjs-dist(Mozilla PDF.js 的官方构建),版本锁定在 v5.5.207,支持现代浏览器环境。
本地数据库:使用 better-sqlite3 作为 CLI 和桌面端的存储引擎,数据库 schema 包含完整的迁移脚本,涉及 book-queries、highlight-queries、note-queries、message-queries、thread-queries、skill-queries 等多个模块。
EPUB 解析:项目自研 EPUB 解析层,支持章节结构分析、草稿模式、检查工具,不依赖第三方 EPUB 库。
多模型支持:LLM 提供商通过统一的抽象层接入,支持 OpenAI、Claude、Gemini、Ollama、DeepSeek 以及任意兼容 OpenAI 接口的模型。
测试覆盖:使用 Vitest 作为测试框架,AI 模块和 RAG 模块均有单元测试覆盖。
License 问题:仓库 License 声明为 "NOASSERTION",而非明确的开源协议。这对于一个开源项目来说有些反常,用户在使用和分发前需要确认法律状态。
性能考量:本地向量化和 embedding 计算在处理大型书库(>500 本)时可能消耗可观的 CPU/内存。项目虽然支持本地 Ollama 模型,但对于没有 GPU 的用户,语义搜索的响应延迟会明显高于云端 API。
移动端成熟度:移动端(Expo/React Native)目前仍在快速迭代中,移动端体验可能不如桌面端稳定。
ReadAny 的出现代表了一个趋势:AI Native 的生产力工具正在从云端向本地迁移。过去一年的主流 LLM 应用大多是「把数据送给 API,换回答案」,隐私换效率。但 ReadAny 证明了在阅读这个场景下,本地 embedding + 本地向量库 + 可选云端 LLM 的组合,既能保护隐私,又能享受 AI 能力。
从开源生态角度看,ReadAny 填补了「AI + 电子书阅读」这一细分领域的空白——Calibre 偏管理、Foliate 偏 Linux 桌面、Readwise/Hepty 偏闭源服务。开发者社区终于有了一个功能完整、可深度定制的开源选择。

AI 智能对话:结合阅读上下文,AI 精准回答关于书中内容的问题

标注与笔记:五色高亮 + Markdown 笔记,支持 Obsidian 多格式导出

阅读热力图:类似 GitHub 贡献图,直观呈现阅读习惯