前言¶
DeepSeek Harness(DSH)的主界面是对话窗口。若你想在熟悉的聊天布局里看本地的 .txt 小说,常见做法是另开阅读器或把大段文本贴进会话——既不省事,也不利于摸鱼时把界面伪装成正常 AI 对话。dsh-novel-reader 走另一条路:在输入框旁选一本书,每条用户消息对应输出一章(或按字数切段),进度落在本地目录,正文可走 DSH 的「思考」折叠块与翻页阅读器,可见回复则是一段结构化的固定总结,外观接近真实模型答复。
下面介绍插件定位、能力与从安装到日常阅读的步骤。
这是什么¶
dsh-novel-reader(仓库 ukkyo1/dsh-novel-reader)由 ukkyo1 维护,在 SkillHub 上归类为客户端插件。它是标准 DSH bundle:package.json 中声明 dsh.bundle.patch 与 dsh.client,无需构建、无第三方运行时依赖;当前包版本为 0.9.4(MIT 许可证)。
核心思路:把本地 txt 放进指定目录,在会话工具栏进入「阅读模式」选书,之后内容全部来自本地文件,不联网、不调用模型;渲染仍走 DSH 正常的助手消息管线。
核心功能¶
书库与选书¶
- 默认小说目录为 DSH 主目录下的
novels(即<DSH_HOME>\novels,Windows 上常见为C:\Users\<你的用户名>\.dsh\novels)。目录不存在时插件首次加载会自动创建;也可在 设置 → 小说阅读 中修改(手动路径或「选择文件夹…」)。 - 仅扫描目录下的
.txt,不扫描子目录。建议 UTF-8 编码。 - 输入框底部工具栏、模型选择器左侧有「阅读模式」按钮:点开后列出书名与进度(有章节时显示「第 3/120 章」),选中后会话绑定该书;按钮上会显示「书名 · 第 x/y 章」。
- 换目录等于换书库:进度与显示名按目录保存在该目录下的
.reader-state.json;设置页所选目录记在<DSH_HOME>\novel-reader.settings.json。
一条消息一章¶
- 阅读模式下随便发一句(如「继续」),助手会流式输出下一章正文。
- 章节自动识别:扫描 txt 中单独成行的标题,支持
第一章 …、第1章 …、第 12 节、第 3 回、Chapter 1,以及楔子/序章/引子/番外/尾声/后记等。第一个标题之前的内容并入第 1 章。若无任何章节标题,退回按chunkChars(默认 420)切段。 - 数字跳章:发纯数字
1、2、3… 跳到对应序号章节并立刻读出(楔子/序章为 1 号);超出范围会提示总章数。可通过配置numberedJump: false关闭。
展示与翻页¶
- 默认
display: thinking:正文在「思考」折叠块内,展开后为左右点击翻页的阅读器(无滚动条),页脚显示章节与「第 x/y 页」;同一正文翻页位置会记住。本章最后一页可点「下一章 ›」在同页载入下一章;全书读完显示「全书完」。 - 可见助手回复为内置较长的结构化总结(处理范围、进度等),可自定义
summaryTemplate。若希望正文直接作为可见回复,将display改为answer。 - 设置 → 小说阅读 → 阅读样式 可调字号、行距、字间距、段间距、页高、页边距、最大宽度、字体与翻页动画;生成速度 支持瞬间生成、整段固定秒数、按字/秒。
进度记忆¶
- 进度按书保存,最小单位为全书字符偏移;与会话无关,多会话读同一本书共享进度。
- 数据写在小说目录
.reader-state.json;每读完一段写盘,停止时已显示部分也算读过。设置页可「重置进度」。
安装与启用¶
本插件以当前 DSH 进程权限访问本地文件,安装前请自行查看仓库源码与 MIT 许可证。
方式一:离线包(Release tgz)
在插件管理器中选择本地包安装(是否支持 tgz 取决于管理器版本),使用 Release 中的包:
https://github.com/ukkyo1/dsh-novel-reader/releases/download/v0.9.4/dsh-novel-reader-0.9.4.tgz
方式二:本地目录
若你已有插件源码目录,在 设置 → 插件 → 添加插件 中选择「从本地目录安装」,目录指向仓库根目录,安装并启用。插件管理器若支持 Git 地址,也可直接填仓库地址 https://github.com/ukkyo1/dsh-novel-reader(以管理器实际能力为准)。
方式三:自行打包
在仓库根目录执行:
pnpm pack
将生成的 tgz 按本地包流程安装。
启用后刷新 Web GUI(Ctrl+R),输入框旁会出现「阅读模式」按钮。升级时在插件管理器中禁用再启用(或重启 DSH)并刷新页面。
典型用法¶
- 确认或创建小说目录(默认
<DSH_HOME>\novels),把.txt放入该目录。 - 打开任意会话,点「阅读模式」,在列表中选一本书。
- 发一条消息继续阅读;在思考块内左右翻页,末页可点「下一章 ›」。
- 需要跳章时,在阅读模式下直接发送章节序号数字。
- 再点「阅读模式」按钮,面板底部选「退出阅读模式」恢复普通对话。
目录为空时,面板会提示无 txt,并可点「创建示例小说」将插件自带的 samples/sample-story-1.txt、samples/sample-story-2.txt 写入目录(同名已存在则跳过)。
高级配置¶
在 DSH 配置目录的 cordis.patch.yml 中,novel-reader 一行可调整目录、切段字数、出字方式、正文展示位置、章节与跳章开关、阅读样式默认值等。修改后需重新加载插件(禁用/启用或重启 DSH)。常用字段示例:
- id: novel-reader
name: dsh-novel-reader
config:
directory: "" # 留空 = <DSH_HOME>/novels,设置页可改
chunkChars: 420
display: thinking # thinking | answer
chapters: true
numberedJump: true
若在 cordis.patch.yml 中显式写了 directory,设置页目录不可编辑。思考块折叠时机受 DSH 全局 ui-chat.collapseTiming 影响;默认多为「下次输入时」才收起。
适用场景与注意¶
- 适合:已在用 DSH Web 界面、希望用对话形态读本地 txt、需要章节识别、跳章与跨会话进度的人。
- 不适合:需要扫描子目录书库、非 txt 格式、或依赖在线书源的场景。
- 权限:插件读写你配置的小说目录与状态文件;勿将不可信 txt 路径指向敏感系统目录。
- 依赖:
package.json要求 Node>=22(主要影响开发与测试脚本;bundle 安装以 DSH 运行时为准)。
结尾¶
dsh-novel-reader 把本地小说嵌进 DSH 会话:选书、发消息读章、数字跳章、进度与样式可配置,默认还把正文藏在思考里的翻页阅读器中。更多说明见仓库 README。