在英文阅读中直接查词,把词条交给 Spaced Repetition 复习。 Read English, look up words in place, and review them with Spaced Repetition.
这是基于 Qiaomu Reader 的独立定制版,插件 ID 为 dashell-reader。它保留 Qiaomu Reader 的阅读器、排版、划线、笔记和 AI 能力,并加入 Language Learner 风格的英文悬浮查词、点击查词、选区查词和 Spaced Repetition 卡片写入。
产品名称和插件 ID 已改为 Dashell Reader(dashell-reader)。首次安装新 ID 时会从旧 qiaomu-reader-english 插件目录复制设置与阅读数据;原文件保留,目标目录中已有的数据优先。旧、新插件不要同时启用。
本项目与官方 qiaomu-reader 插件可以同时安装。它通过 GitHub Release 分发,尚未进入 Obsidian 社区插件目录;安装请使用 BRAT 或手动安装。当前版本为 4.4.6。定制版不修改 Language Learner 的数据文件,也不会接管官方插件的协议链接。
Dashell Reader负责书籍与文章阅读、查词和生词收录;Dashell Player负责音视频、字幕与听写,并可把选中的单词交给 Reader 查词;Dashell RSS负责订阅、预览和保存学习材料到本地。三个插件可以分别安装,也可以组合使用。
安装后,书架里就有六本书。 从《道德经》《唐诗三百首》《世说新语》或三本英文经典开始,直接体验阅读、划线和做笔记,无需先找书或配置 AI。
Dashell Reader 是中文优先的 Obsidian EPUB、PDF、FB2、MOBI、AZW3 和 CBZ 阅读器。它把舒适阅读 → 就地提问 → 保存笔记 → 返回原文放在同一个工作流里,减少在阅读器、聊天窗口和笔记应用之间来回复制。
阅读本身完全离线,每本书关联一篇 Markdown 阅读笔记;AI 是可选能力,由你选择服务并主动启用。
安装与快速开始 · 英文学习流程 · 构建验证 · GPL-3.0 许可
截图版本:4.2.4。 以下五张截图均来自安装正式 Release 文件的 Obsidian 1.13.7,展示内置书架、选文操作、划线笔记、AI 伴读和 PDF 原页。使用隔离演示仓库、公版示例书与原创 PDF;AI 对话明确标注为界面演示,未调用模型。详见截图与版本核验。
| 能力 | 实际效果 |
|---|---|
| 内置阅读器 | EPUB 可重排;PDF 保留原页,独立缩放,图表不被拆散;FB2、MOBI、AZW3、CBZ 由同一引擎渲染 |
| 中文排版 | 仅内置朱雀仿宋常用字子集;支持选择本机字体、导入字体文件,缺字使用系统字体回退 |
| 阅读主题 | 纸白、暖纸、青瓷、月白和夜间;只改变书页,工具栏跟随 Obsidian |
| 就近批注 | 选中文字后完成三色划线、复制、评论和创建摘录笔记 |
| 专用阅读笔记 | 每本书自动关联一篇 Markdown 笔记,汇总划线与评论 |
| 精确返回原文 | 笔记中的 ↩ 可跳回原书对应段落 |
| 阅读连续性 | 自动保存位置、可命名位置标记;搜索后能返回原阅读点 |
| 就地 AI 对话 | 阅读和聊天并排;按书管理对话,选文、当前页或文本 PDF 全文作为上下文 |
| 流式 Markdown | 回答边输出边渲染;表格、任务列表、引用、代码块等交给 Obsidian Markdown 渲染器 |
| 回答成为笔记 | 保存完整 AI 回答,本地提取可修改标题;独立保存或追加到本书笔记 |
| 少打断的交互 | 快捷问题直接可见;草稿按书落盘;专注阅读保留右侧 AI,不带回左侧文件树 |
| 自选 AI 服务 | 保留自定义提示词;支持 CLI / ACP、国产模型、OpenAI 兼容接口及本地模型 |
| 起点页接续 | 装了乔木Home时,主页显示在读的书(封面、进度),点击回到上次位置;主页搜索框也能搜书名 |
- 在 EPUB、FB2、MOBI、AZW/AZW3、带文本层 PDF 或 Markdown 中阅读英文内容。
- 悬浮单词使用移植的 Language Learner 词窗;点击单词或选中短语按设置在弹窗或左侧词典面板查词。
- 在右侧“学习新单词”面板编辑词形、释义、状态、标签、笔记和例句,再主动保存到定制版词汇库。
- 词汇和复习文件默认保存在
Qiaomu Reader/下;Spaced Repetition 的评分、状态与排程按原版机制同步。 - 在 Spaced Repetition 原有入口进行复习。定制版不实现自己的间隔算法,也不新增重复的“开始复习”入口。
收录的词条会在其他支持的阅读内容中显示为生词标记;关闭阅读器或切换文件后,标记仍由本地词库提供。
查词与学习设置保留 Language Learner 1.2.16 的词典、MDict、词汇和复习选项。AI 词典与例句 AI 翻译共用 Qiaomu「AI 与翻译」中配置的服务;两项学习提示词收在该页的「英语学习提示词」折叠区,划词修饰键仍在「英语学习 → 通用」,不再有第二套 AI 标签或 API Key。桌面宿主已验证 MDict、复习同步和本机模拟接口的 AI 共享调用;真实服务商、其余词典来源、全部格式及实体移动端仍需逐项验收。本轮不做 OCR,扫描 PDF 和纯图片页面只提供阅读。
首页主图展示插件内置的六本中英文公版书,每本都有封面。书库提供继续阅读、搜索、阅读状态和“有划线”筛选;书名下方直接显示划线数量与阅读笔记入口。也可以添加自己的 EPUB、PDF、MOBI 等图书。
书库顶部的 找书 可输入书名或作者。点击 搜索 会在浏览器分别打开 Anna’s Archive 与 Z-Library 的搜索页,同时在插件内搜索 Project Gutenberg 公版书。也可以单独点击各站链接。选择 Gutenberg 结果后,点击 下载并加入书库 才会下载 EPUB 并导入当前仓库。Standard Ebooks 和维基文库提供可下载的 EPUB 书籍,也作为浏览器中的补充入口。下载有权使用的 EPUB、PDF 或 MOBI 后,可通过 添加书籍 导入。外部站点地址可能变化;插件不会抓取或下载外部站点内容。
4.2.7 更新: AI 助读更名为 AI 伴读;宽屏桌面首次打开书时展示侧栏,并记住主动关闭状态。未配置服务可直接在侧栏完成配置。翻译结果可保存到本书笔记、当前打开的笔记、新笔记或今日笔记,同时保留原文和位置链接。
4.2.6 更新: 选文工具栏默认仅显示图标,启用翻译后显示翻译按钮。在「设置 → 翻页操作 → 选文工具栏」可调整按钮显示与顺序、开启文字标签;隐藏功能仍在“更多”和右键菜单中。AI 回复的“查看原文”支持跨章节与重新打开原书定位。
选中文字,常用操作出现在选文旁边;右键也能使用这些功能。划线颜色通过下拉菜单切换,三种颜色使用统一样式。朱雀仿宋随插件离线提供,也可选择本机字体或导入字体文件;主题、字号、行距与单/双页布局可在阅读设置中调整。书页背景覆盖阅读区域,工具栏跟随 Obsidian。
点击阅读工具栏的“朗读”,可从当前阅读位置开始;选中文字或打开已保存划线的菜单,也可朗读指定内容。朗读组件使用 Qiaomu Reader 的播放器、音色选择、试听和语音设置,支持暂停/继续、上一句/下一句、调速、跟随正文和接续朗读。提供 Edge、系统语音、Mac 本地语音、本地模型、OpenAI、兼容 OpenAI、通义千问、豆包、MiniMax、硅基流动、ElevenLabs 和 Azure;可用服务随设备而异。桌面默认使用无需密钥的 Edge 在线朗读,文字会发送至微软;选择其他在线服务时,文字发送至对应服务。本地语音与本地模型在设备上合成;本地模型首次设置需联网下载。旧 Aloud 组件已移除,共同支持的服务会保留原音色、区域和密钥引用,旧设置仅保留作回退记录。
每本书关联一篇 Markdown 阅读笔记。划线与批注自动汇总,引文右侧的 ↩ 链接用于返回书中对应位置。原文、自己的理解和来源留在一起,后续可以继续在 Obsidian 中整理与连接。
已打开 AI 伴读时,新选文自动更新待提问上下文;选中本身不会发送请求。快捷问题保持可见,非中文选文增加翻译入口。每条已发送问题保留当时的来源,之后翻页或切换选文不会改写旧问题。
回答可以复制,或完整保存为独立 Markdown 笔记、追加到本书笔记;保存前可修改自动提取的标题。AI 是可选功能,配置服务后由你主动发送问题。图中固定示例仅展示交互,不代表模型效果或响应速度。
PDF 保留原始版式,支持独立缩放。有可靠文字层时,可选择、复制、搜索、划线、批注和向 AI 提问;扫描页仍能阅读和保存进度,但不提供没有文字层支撑的搜索或文字问答。
目录、书内搜索和位置跳转集中在底栏。搜索支持结果高亮、Enter 下一处、Shift+Enter 上一处、Esc 关闭,并保留返回原阅读位置的入口。
从 4.2.5 起,首次打开书库会自动加入六本 EPUB 示例书,即使仓库已有书籍或 PDF 附件。此前被旧版自动跳过的安装也会在打开书库时补齐;不会覆盖同名文件,已经成功导入后主动删除的示例书不会再次自动添加。也可在设置 → 存储与同步 → 添加示例书中手动恢复。
六本示例书的正文均无插图,配有封面:道德经、唐诗三百首、世说新语、Jekyll and Hyde、Alice in Wonderland 和 Meditations。英语作品保留英语版本,无现代中文译本。文件随插件打包,运行时不从古腾堡下载;这些版本在美国属于公版,其他地区需按当地版权规则判断。书籍保留 Project Gutenberg 的完整许可,与插件 GPL 许可分开,详见版本、来源与许可。
当前版本尚未进入 Obsidian 社区插件目录,推荐使用 BRAT 安装 GitHub Release:
- 在 Obsidian 第三方插件市场安装并启用 BRAT。
- 打开 BRAT → Add beta plugin。
- 输入
dashell7/dashell-reader。 - 安装并启用 Dashell Reader。
也可以从 GitHub Releases 下载 main.js、manifest.json 和 styles.css,放入库目录 .obsidian/plugins/dashell-reader/,然后在 Obsidian 中重新加载并启用插件。首次从旧版升级时,如果 Obsidian 将插件放入新目录,插件会复制旧目录中的设置和阅读数据,原文件会保留;启用新插件后可检查旧插件是否已停用。
阅读、划线和笔记无需配置 AI;首次打开书库即可体验内置公版书,也可以添加自己的图书。需要 AI 时,再进入插件设置选择服务并测试连接。
**更新插件:**使用 BRAT 检查 GitHub Release,或手动替换上述三个文件。定制版与官方 qiaomu-reader 的更新通道相互独立。
与官方 Qiaomu Reader 并存
官方插件 ID 是 qiaomu-reader,定制版 ID 是 dashell-reader,两者可以同时启用。仅启用定制版时,单击 EPUB、MOBI 等电子书文件会直接进入英文阅读器;Obsidian 自带的 PDF 视图仍接管 PDF 单击,PDF 可从文件右键菜单或书库进入英文阅读器。Markdown 仍通过命令或文件菜单显式打开。两版同时启用时,官方版保留电子书的默认文件关联,定制版可从文件右键菜单或自己的书库打开。
定制版使用独立的插件设置、阅读进度、高亮和英文复习文件;不会读取或覆盖 Language Learner 的数据。升级到 dashell-reader 时,如果 Obsidian 为新 ID 使用了独立目录,插件会复制旧目录中的设置、阅读进度、高亮、恢复文件、封面缓存和 AI 草稿;迁移不删除旧文件,已存在的新目录数据优先保留。旧的阅读笔记回跳链接仍可打开。
手动安装
从 最新版本 下载 main.js、manifest.json 和 styles.css,放入:
<你的仓库>/.obsidian/plugins/dashell-reader/
重新加载 Obsidian 后启用插件。插件 ID 为 dashell-reader。
朱雀仿宋常用字子集内置于 styles.css,随三个插件文件安装;新增安装默认使用该字体,已有字体偏好保留。子集来自 v0.212 预览测试版,覆盖 7,554 个码点,未包含的字符使用系统字体回退。选择“自定义字体”后,可浏览本机已安装字体,或导入 TTF、OTF、WOFF、WOFF2 文件。导入字体随仓库同步;手机不能枚举本机字体时可使用文件导入。
其他字体的官方下载入口与安装方法见字体说明。
“保存 AI 回复”把完整 Markdown 回答作为笔记正文,原文放在后面的来源区。标题在本地根据回答的主题标题、重点短语或内容句自动提取,过滤“总结”“关键概念”等通用小标题;保存前可修改,不额外调用模型。保存成功后按钮变为“已保存 · 打开笔记”,不会关闭对话,也不会自动抢走阅读焦点。
未发送草稿按书保存在独立本地文件中(最多 30 本、每本最多 20,000 字符),关闭面板或重启后可恢复;生成中输入的新问题不会被上一轮完成动作清掉。插件不主动同步草稿,但第三方同步如果包含整个插件目录,仍可能复制它。新建对话保留当前草稿;已发送的来源固定在对应问题下。单条删除与批量清空都需要确认,删除当前对话后不会在关闭面板时重新写回。
AI 默认关闭。启用后,文本型 PDF 会把整份可提取文字作为新对话的默认上下文;如果选中了原文,则本轮改用选文上下文做精读。常规 PDF 发送全文,超过 180,000 字符时按页均匀精简并明确标注,避免只截掉后半本。你可以通俗解释、举例、提炼要点、联系实际、换角度分析或生成测试题,并继续自由追问。书内“阅读设置”新增“AI 伴读”标签,可就近开关 AI、查看当前服务与模型、调节思考模式/强度和回答语言;API 密钥、接口地址等低频敏感配置仍留在插件系统设置。DeepSeek V4 可单独开关思考模式;模型提供思考过程时会单独显示,回答完成后自动折叠,不与正式回答混在一起。
- 本机账号:Codex CLI、Claude Code CLI、Grok CLI、Kimi Code CLI、ZCode CLI。安装并登录一次后,插件可直接复用账号,无需再填 API 密钥。每个 CLI 分别记住自己的模型和思考强度;Grok 的常驻 ACP 会关闭后台自动更新,避免更新进程阻塞首字输出。
- 国产模型:DeepSeek、Kimi、通义千问、智谱 GLM、MiniMax。
- 聚合服务:硅基流动、豆包/火山方舟、OpenRouter。
- 国际服务:OpenAI。
- 本地模型:Ollama、LM Studio。
- 高级配置:任意 OpenAI 兼容接口,可直接新建或选择 Obsidian 密钥;密钥、模型和接口地址按服务分别保存。
API 密钥保存在 Obsidian 的密钥库中,不会写入插件 data.json。设置页可发送一条不含书籍内容的最短消息测试连接。
CLI 模式会自动检测可执行文件和登录状态,在独立临时目录中运行,并拒绝工具、文件和终端权限。Grok 与 Kimi 使用 CLI 自带的 ACP;Codex 使用 codex-acp,Claude 使用 claude-agent-acp,ZCode 目前使用社区 zcode-acp。同一阅读对话复用常驻进程与 ACP session,首轮发送阅读上下文,后续只发送新问题;切换或清空对话会使用新的 session。会话过期或 ACP 进程意外退出且尚未产生回答时,插件会自动重建并安全重试一次;登录、模型、会话和进程故障会分别提示。设置页会区分“原生 ACP”和“需单独安装适配器”,提供手动安装指引,并可分别检测 CLI 与适配器路径。插件不会自行安装或更新 CLI、适配器或其他依赖。CLI 模式仅支持桌面版 Obsidian。
桌面 CLI 模式会检测仓库外的已安装可执行程序,并在独立临时目录运行;CLI 的登录与配置由对应工具管理。字体文件只在用户选择导入后读取并复制到仓库;本机字体枚举仅由点击字体选择按钮触发。
支持简体中文、English、Русский、日本語、Español、Français、Deutsch、한국어 和 Português (Brasil)。在插件设置顶部选择语言;语言包随插件提供,切换和使用均不联网,日期按所选语言显示。默认仍为简体中文。
设置页即时切换;已打开的书页和 AI 对话重新打开后使用新语言,原文、笔记和回答内容不会被翻译或改写。新增语言覆盖界面文案,翻译仍欢迎母语使用者反馈;俄语中的部分新增功能继续使用英语回退。
插件设置的“外观”页和书内“阅读设置”使用同一组数据。书内弹窗按任务分为“阅读”和“AI 伴读”两个标签;主题、正文字体、字号和行距直接展示,分设备外观、电子墨水屏、对齐、插图和沉浸阅读等低频选项收在“更多阅读设置”中。弹窗只在竖向滚动,并为滚动条预留空间,不再遮住控件。
首次打开一本书时,插件会创建或关联一份带有 type: reading-note 标记的专用 Markdown 笔记。之后的新划线和评论自动汇总到“划线与批注”章节;插件不会仅凭书名误把人物、项目或模板笔记当成阅读笔记。
评论以普通正文显示在引文下方,不使用引用样式。每条引文末尾的 ↩ 是返回原书位置的链接。
书籍、进度、划线、评论和笔记均在本地工作,无需账号,没有遥测、分析或广告。
| 可选功能 | 发送内容 | 目标服务 |
|---|---|---|
| 找书与下载 | 主动搜索时发送书名或作者关键词;仅在点击下载时请求所选书籍目录和 EPUB | Project Gutenberg |
| 外部书源搜索 | 主动搜索时在浏览器打开带有关键词的搜索页;插件不向这些网站发送仓库内容 | Anna’s Archive、Z-Library |
| 外部书源链接 | 点击后在浏览器打开网站;插件不向这些网站发送仓库内容 | Standard Ebooks、维基文库 |
| 翻译所选文字 | 当前选中的段落 | Google Translate |
| AI 辅助阅读 | 你主动附加的 PDF 全文、当前页或选中文本、书名和问题 | 你明确选择并配置的模型服务 |
| 本机 CLI 账号 | 你主动附加的 PDF 全文、当前页或选中文本、书名和问题 | Codex、Claude、Grok、Kimi 或 ZCode 的云端服务 |
| 本地 AI | 本轮附加的 PDF 全文、当前页或选文、书名与问题,以及必要的对话历史 | 你配置的 Ollama 或 LM Studio 地址;仅在本机地址且服务不转发时留在设备内 |
联网功能均默认关闭。只有在你主动向 AI 提问时,文本型 PDF 才会在该对话首轮发送整书文字上下文;扫描 PDF 不发送页面图片或伪造 OCR 文本。
本机 CLI 模式还会运行你选择的本地 CLI 程序,并使用其库外安装目录、账号登录状态与配置;不会把这些凭据复制到插件配置。CLI 是否联网取决于所选服务。
默认构建和社区验证构建均不包含依赖自动安装器。npm run build:community 输出到 dist/community/,不包含 ACP 自动安装器,保留手动安装指引、检测和常驻对话能力。定制版通过 GitHub Release、BRAT 或手动安装,不宣称已进入 Obsidian 社区插件目录。
npm ci
npm test
npm run check:i18n
npx eslint src/
npm run build
npm run verify:release
npm run build:community构建产物是仓库根目录的 main.js、styles.css 和 manifest.json;可编辑样式位于 src/styles.css。发布文件大小由构建与发布校验脚本中的项目预算检查。唯一内置字体的来源、版本与许可见 fonts/README.md 和 fonts/OFL.txt。
- 当前工作流改造有模块/控制器测试、国际化检查、ESLint、标准及社区候选构建校验;真实桌面 Obsidian 验证覆盖阅读、搜索、回答保存和 PDF 缩放。详见开发与验收记录。
- CLI / ACP 仅限桌面;移动真机触控与软键盘仍待专项验证,桌面窄窗口不等于移动端验收。
- 不内置 OCR,不承诺扫描 PDF 可以文字问答;不提供跨书语义检索,也不授予阅读 Agent 文件/终端工具权限。
- 持久 ACP 会话减少重复启动开销,但首字速度仍受 CLI、模型、网络和上下文长度影响,目前没有可公开比较的性能基准。
- 当前定制版仍是 GitHub 开源候选版;正式安装请使用本仓库的 GitHub Release,并按本 README 的安装说明操作。
Dashell Reader 由 dashell 维护,源码仓库为 dashell7/dashell-reader。
原项目 Qiaomu Reader 由 向阳乔木 维护:
- X:@vista8
- GitHub:@joeseesun
- 乔木推荐:tuijian.qiaomu.ai
项目含有改编自 Elton Reader 的代码,感谢 Elton Labs 的工作;这些部分保留 MIT 许可。来源、第三方开源软件和版权声明见 NOTICE.md 与 LICENSE;内置字体的来源与许可见 fonts/README.md 与 fonts/OFL.txt。
语音朗读组件来自 Qiaomu Reader。此前版本包含的 Aloud 朗读组件已移除,其历史来源及 MIT 许可仍保留。
This fork is not in the Obsidian Community Plugins directory yet. Install it with BRAT:
- Install and enable BRAT from Obsidian Community Plugins.
- Open BRAT → Add beta plugin.
- Enter
dashell7/dashell-reader. - Install and enable Dashell Reader.
For a manual install, download main.js, manifest.json and styles.css from the GitHub Releases page and place them in .obsidian/plugins/dashell-reader/. Reload Obsidian and enable the plugin. The plugin ID is dashell-reader. On the first install after the ID change, settings and reading data are copied from .obsidian/plugins/qiaomu-reader-english/; source files are retained, and existing data in the new folder takes precedence. Disable the old plugin before enabling this one.
Dashell Reader handles books and articles, dictionary lookup, and vocabulary capture. Dashell Player handles audio, video, subtitles, and dictation, and can send selected words to Reader. Dashell RSS handles feed subscriptions, previews, and saving learning materials locally. Each plugin works on its own; install the combination that fits your workflow.
The custom plugin can run beside the official qiaomu-reader plugin. Its settings, reading progress, highlights and English review file are separate. It does not read or overwrite Language Learner data and does not take over the official protocol links.
For updates, use BRAT or replace the three release files from GitHub. This repository is not an official Obsidian directory listing.
On desktop, Add from Calibre copies selected books from a local Calibre library into the vault. Search uses metadata.db (Python 3) and falls back to calibredb. The whole Calibre library is not mounted into Obsidian. This entry is hidden on mobile.
Dashell Reader is a Chinese-first reader for Obsidian supporting EPUB, PDF, FB2, MOBI, AZW3 and CBZ. PDF files retain their original fixed page layout; pages with a reliable text layer support selection, search, highlights, annotations and full-document or selected-text AI context, while scan-only pages provide original-page reading, progress and one book-level note without pretending OCR is available. The plugin keeps one dedicated Markdown reading note per book inside your vault.
When reading English text, hover over a word for the ported Language Learner popup. Click a word or select a phrase to use its dictionary popup or left panel. The separate Learn new words panel retains the original fields, vocabulary states, notes, examples, and Spaced Repetition synchronization. Its dictionary and learning settings are also included; vocabulary files belong to this custom plugin.
Words saved to the vocabulary file can also appear marked in other supported reading content. The reader keeps each supplied RSS article version's progress separately, and selected text or saved highlights can be read aloud with the configured speech provider.
Use Read aloud in the reading toolbar to start at the current position, or read selected text and saved highlights from their menus. Speech now uses Qiaomu Reader's player, voice picker, previews and settings, with pause/resume, previous/next sentence, speed control, text following and saved speech progress. Available providers include Edge, system voices, Mac local speech, local models, OpenAI, OpenAI-compatible services, Qwen, Doubao, MiniMax, SiliconFlow, ElevenLabs and Azure, subject to platform availability. The desktop default is key-free Edge online speech, which sends text to Microsoft; other online providers receive the text you ask them to read. Local voices and models synthesize on-device; local models need an initial runtime/model download. The previous Aloud component has been removed. Shared providers retain existing voice, region and secret references; old settings remain only as an inert rollback record.
Dictionary AI and AI sentence translation now use the service configured in Qiaomu's AI & Translation settings while retaining their learning-specific prompts; no second API key is needed. MDict lookup and Spaced Repetition synchronization have been verified in desktop Obsidian. The shared AI call, other dictionary sources, all supported formats, and physical mobile devices still need individual validation. OCR and image-only lookup are outside this build.
The five screenshots above show the published 4.2.4 release running in Obsidian 1.13.7: the six-book starter library, selection actions, linked highlighting notes, optional AI assistance, and original PDF pages. New users can start with Tao Te Ching, Three Hundred Tang Poems, Shishuo Xinyu, Alice in Wonderland, Jekyll and Hyde, or Meditations without finding a book or configuring AI first. The library includes covers, reading progress, highlight counts and note links.
Since 4.2.5, the first library visit adds all six starter books even when the vault already contains ebooks or PDF attachments. Upgrades also repair installations previously skipped by older versions. Existing same-name files are preserved, and books deliberately deleted after a successful import are not recreated automatically. Use Settings → Storage & sync → Add starter books to restore them manually.
Captures use an isolated demo vault, bundled public-domain books and an original sample PDF. The AI conversation is a visibly labeled fixture with no model call; it demonstrates the interface, not model quality or latency. See capture and release evidence.
- Streamed answers render as Markdown while arriving, including tables, task lists, blockquotes and code blocks through Obsidian's renderer.
- Built-in quick prompts sit above the input, with translation for non-Chinese selections. An open AI panel follows new selections; selection alone does not send a request.
- Named reading bookmarks, bottom navigation, Chinese single-character search and a return point support continuity.
- Focused reading keeps an already-open AI sidebar without reopening the file tree.
- Chats are associated with books, with searchable/renameable history and immutable source context on sent questions.
New installations default to a bundled Zhuque Fangsong reading subset (7,554 codepoints); missing glyphs fall back to system fonts. Select Custom font to browse installed fonts or import TTF, OTF, WOFF or WOFF2 files. Imported files sync with the vault; mobile platforms without font enumeration can use file import. The font is embedded in styles.css and installed with the plugin. Other fonts are user-installed; see font downloads.
The interface supports Simplified Chinese, English, Russian, Japanese, Spanish, French, German, Korean, and Brazilian Portuguese. Select a language at the top of plugin settings; all language packs are bundled for offline use. Reopen existing book tabs and chats to apply the new language there. Book text, notes, and AI responses are not translated by this setting. Some newer Russian UI strings still fall back to English.
BRAT and manual installation remain available as alternative installation methods.
User-selected font files are read only on import and copied into the vault. Enumerating system fonts happens only after pressing the font picker button. Desktop CLI mode detects user-installed executables and runs them in an isolated temporary directory outside the vault; CLI configuration and login are managed by the installed tool.
Reading works fully offline. In-reader settings are split into Reading and AI Assistance tabs, keeping frequent AI controls close to the book while API keys and endpoint URLs remain in Obsidian plugin settings. Optional AI reading assistance includes built-in quick prompts and supports signed-in Codex CLI, Claude Code CLI, Grok CLI, Kimi Code CLI, and ZCode CLI accounts without additional API-key setup, plus DeepSeek, Kimi, Qwen, GLM, MiniMax, SiliconFlow, Doubao, OpenRouter, OpenAI, Ollama, LM Studio, and custom OpenAI-compatible endpoints. Custom endpoints can create or select an Obsidian secret directly, and each provider keeps its own secret, model, and endpoint override. CLI chats use persistent ACP sessions: Grok and Kimi provide ACP natively, while Codex, Claude, and ZCode use separately installed adapters. If an ACP session expires or its process exits before returning any content, the plugin rebuilds it and retries once; authentication, model, session, and process failures are reported separately. Grok ACP is launched with background auto-update disabled so an updater cannot delay the first streamed token. CLI providers are desktop-only and still send the page or selection you explicitly attach to their cloud service. AI is off by default and keys are stored with Obsidian SecretStorage.
New in 4.2.7: The AI companion appears on the first book open on wide desktop windows and remembers when you close it. Configure a service directly in the sidebar. Save translations with their original passage and location link to the book note, an open note, a new note or today’s Daily Note.
New in 4.2.6: Selection actions use icons by default, with translation shown when enabled. Configure labels, visibility and order under Settings → Page turning → Selection toolbar. Hidden actions remain in More and the context menu. AI source links can reopen the correct book and navigate across chapters.
Saving an AI reply preserves its complete Markdown body with the source below it, either in a separate note or appended to the book's reading note. An editable title is extracted locally from the reply's topic, emphasis or content, with no extra model request. Saving keeps the chat open, and the saved action opens the existing note. Unsent drafts are persisted locally for up to 30 books (20,000 characters each) and survive sidebar closure/restarts; third-party syncing of the plugin folder may also copy them. Deleting conversations requires confirmation. The screenshots above are inherited Qiaomu Reader reference captures from the upstream project; they are not evidence of this fork's release or mobile support.
Dashell RSS can save an article to the vault and call openLearningMaterial(file).
Reader resumes the most recently read supplied version using its own per-file
progress. A dashell_reader_versions frontmatter object with schema version: 1,
a shared id, optional title, and an original Markdown filename may also include
translation and rewrite filenames. RSS uses the article title, adding - 译文
or - 改写 for supplied variants. Only safe filenames in the same folder are
accepted; legacy fixed names remain readable. Automatic reading notes use the
article title as well. The toolbar offers the versions present on disk; ordinary
books and Markdown notes do not gain a version menu. Switching versions saves the
current reading location and preserves each version's progress. These files are
provided by RSS; this integration does not generate a translation or rewrite.
Use npm ci, npm test, npm run check:i18n, npx eslint src/, npm run build, npm run verify:release, and npm run build:community to reproduce the automated gates. See screenshot evidence and workflow checks. Physical mobile-device validation is pending. There is no built-in OCR or cross-book semantic search. CLI providers are desktop-only; model costs and terms belong to the selected provider. Local-model requests stay on-device only when the configured endpoint is local and does not forward them. Persistent ACP reduces repeated startup work, but no comparative latency benchmark is claimed.
Both the default build and the community build exclude dependency installation code. CLI adapters must be installed by the user. A separate community-candidate build is available with npm run build:community in dist/community/. It excludes the ACP dependency installer while retaining manual setup guidance, detection, and persistent chat.
Dashell Reader is maintained by dashell, with source at dashell7/dashell-reader. Upstream Qiaomu Reader is maintained by Qiaomu. Third-party notices and copyright information are preserved in LICENSE; bundled font provenance and license live in fonts/README.md and fonts/OFL.txt.
Copyright (c) 2026 向阳乔木.
本项目整体采用 GNU GPL v3.0 only(GPL-3.0-only),完整条款见 LICENSE。除另有明确声明的第三方部分外,自有代码可按 GPL v3.0 使用、修改和分发,不提供任何担保。第三方代码、字体及素材保留各自许可证与版权声明。
GPL 允许免费商业使用;分发时须遵守相应源码、版权和许可证义务。需要 GPL 之外的授权,可联系作者协商商业授权。本次变更不撤销此前已授予的许可证。
The project as a whole is licensed under GNU GPL version 3 only, with no warranty. Third-party components retain their own licenses. Commercial use is permitted under GPL; a separate commercial agreement may be negotiated for rights the author can grant. Previously granted licenses remain valid.




