在 DSH 右侧边栏里读论文:PDF 保留原始排版与字体,选中文字即可高亮、写笔记或直接在当前会话提问;标注与论文级笔记以 Markdown 同步到每篇论文自己的目录,与解析正文、关联的开源代码放在一起。附带 `vibe_reading` 工具与阅读 skill,AI 能自己写这份记录。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:jypjypjypjyp/dsh-vibe-reading
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README

右侧边栏里的论文工作台:PDF 原样打开,读到的留下,AI 接着用。
Why use
- AI 伴读:AI 不替你思考,只是阅读伙伴。
- 论文连着实现:关键实现细节,AI 帮你找,帮你验证。
- 嵌入 DSH 生态:选中一段直接问,
@一下把这篇论文交给 agent;它记得你读过什么、判断过什么。
界面

| 选中即用 | 标注与笔记 |
|---|---|
![]() |
![]() |
| 论文级笔记 | 代码:开源 / 本地两套目录 |
![]() |
![]() |
安装
# 从 GitHub 安装
dsh plugin --profile web add github:jypjypjypjyp/dsh-vibe-reading
# 或在本地插件目录里 link 进去(开发调试)
dsh plugin --profile web add link:./projects/dsh-vibe-reading
装完重启一次 dsh web(Host 路由在启动时注册),右侧边栏的 + 里就有「Vibe Reading」。
阅读器的入口挂在 better-sidebar 上,所以插件把 dsh-better-sidebar 声明成依赖:pnpm 装插件时会一并装下来。若目标 profile 里它还没被激活(插件列表里没有 dsh-better-sidebar 这一层),插件页会出现一条「缺少依赖:右侧边栏」的横幅,点「安装依赖」会自动跑 dsh plugin --profile <名字> add dsh-better-sidebar 并把它写进 dsh.profile.bundles,重启后生效;没有侧栏时插件本身照常加载,只是没有入口。
使用
- 打开右侧边栏,点
+,选「Vibe Reading」。 - 点工具栏的上传按钮(或把 PDF 拖进面板)导入论文。导入后静默用 markitdown 转一份 Markdown;「更多 → 解析正文(MinerU)」会中断它、改用 MinerU(要 Token),底部进度条实时走。
- 选中正文文字,使用浮出菜单;工具栏的
</>打开「代码」页,@把/dsh-vibe-reading与论文目录写进输入框,⋯里有「解析正文(MinerU)」与「设置」。 - 面板三栏:标注(挂在某页某段原文上的高亮与批注,第二行显示它的笔记)、笔记(论文级的分块结论,可多条,随时增删改)、代码(再分「开源仓库 / 本地复现仓库」两个页签,各有目录浏览)。
设置(工作目录、MinerU Token、模型、语言)统一放在左侧「插件」→ dsh-vibe-reading 详情页,用 DSH 自带的设置表单渲染(@deepseek-ai/dsh-client-ui-primitives 的 SettingsForm / SettingsValueField / SettingsSecretField,与「网页搜索」等内置设置页同一套控件);阅读器里的「设置」直接跳到那一页。
结构
| 文件 | 作用 |
|---|---|
index.js |
Host:/vibe-reading 路由(库、上传、元数据/标注、设置、双引擎解析、论文文件夹、目录浏览、PDF 字节、pdf.js 静态资源)与 vibe_reading 工具 |
client.js |
Client:向 ctx.betterSidebar 注册 vibe-reading tab(阅读器、标注/代码面板),并向 plugins.detail.section 注册插件页里的「阅读器设置」 |
public/ |
vendored pdf.js 3.11(pdf.min.js、worker、cmaps、standard_fonts),Apache-2.0,许可证见 public/LICENSE-pdfjs.txt |
存储:~/.dsh/vibe-reading/ 是内部库(<uuid>.pdf 原件、<uuid>.json 元数据、settings.json 设置);对外的论文文件夹在 ~/.paper_reading/<论文名>/,按 pdf/ 原件、markdown/ 解析结果(可能带 images/)、remote/ 开源实现、local/ 本地复现分开放,标注与笔记统一写 notes.md、元信息写 meta.md。
批注工具
vibe_reading 面向模型:action=list 不带 docId 列出论文库,带 docId 读该论文的全部标注与笔记;action=create 写一条标注(page + text + note,作者记为 AI);update / delete 按 id 改删;action=note / update_note / delete_note 管论文级笔记;action=code 读或写这篇论文的代码仓库(repo / path),阅读器「AI 查找仓库」按钮就是让 agent 走这条路自动回填。
跨会话记忆 skill
插件在 apply() 里用 ctx.inject(['skills']) + ctx.skills.register() 注册了一个运行时 skill dsh-vibe-reading:工具清单(vibe_reading 的每个 action)、论文目录里有什么、什么时候该写、每条写多短、什么不该写。
它出现在 agent 的 skill 目录里,模型可以自行调用;点阅读器的 @ 时,输入框里写的是 /dsh-vibe-reading 这个手势加论文目录信息,由 DSH 的 skill 机制按需加载正文(dsh-tool-skill 用 /(^|\s)\/([a-z0-9-]+)(?=\s|$)/ 扫描用户消息),而不是把正文粘进对话。
规则很短:标注挂原文、笔记记判断,每条一句话不超过 40 字,只写结论与依据,不写推测与过程。
损坏的 PDF
文件按原样保存,阅读器不会尝试改写。若 PDF 结构损坏(例如缺少 xref / %%EOF,常见于下载中断),打开时会给出说明,并提供「下载原件」和「重试」,方便用其它工具修复后再导入。
License
MIT,见 LICENSE。随包分发的 pdf.js 仍为其 Apache-2.0 许可,副本在 public/LICENSE-pdfjs.txt。
链接
同类插件
tt-a1i/archify#integrations/deepseek-harness★ 92724
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。
dream-num/dsh-univer-office★ 657
为 DeepSeek Harness 打造一个真正的办公环境。Univer Office 插件将电子表格、文档、幻灯片、画布、多维表格等汇聚到同一个运行时——数据互联、修改经过校验、变更按版本管理,并以隔离工作树支持多 Agent 协作。
ECNU/EduWork#dsh-knowledge-studio★ 275
基于工作区资料的 Studio,复用 DSH 模型与共享成果服务,制作报告、演示文稿、表格、思维导图、测验、闪卡及音视频。Office 生成需 Python 3.12+ 及相关依赖,并配置 DSH_OFFICE_PYTHON;媒体渲染需 Chromium;本地语音转写另需 whisper.cpp 和模型。
PerryLink/dsh-industry-research★ 215
面向 DeepSeek Harness 的确定性行业研究报告:公司与行业研究流程基于分阶段证据产出结构化、可核验的报告。
HuanLinOTO/dsh-plugin-mineru★ 51
向模型暴露 MineRU 文档解析工具。
PolinniZhong/dsh-knit★ 48
把会话工作区里已有的 Markdown 文档、源码、图片与视频列进 DSH 侧边栏,按与当前对话的相关性排序。默认的词法模式用最近几条消息在本地与标题、摘要、正文做带 IDF 加权的匹配(BM25)—— 不调用模型、没有网络出口,内容不出本机。列表来自工作区扫描,而不是「最近打开记录」,所以重启 DSH 或新开会话都不会变空。排序结果组织成主要 / 辅助 / 相关三层的阅读顺序,每一条都写明可核验的理由(命中了哪个字段、被哪一篇引用),点一行即可就地预览:Markdown 按渲染后的样子显示、相对路径图片真实渲染、源码走宿主自带的语法高亮、视频走 HTTP Range 流式播放。同一份 Context Pack 也作为 knit_docs 工具交给 agent。后续版本陆续补上读取证据与生命周期(归因在读那一刻冻结)、固定 / 排除(排除先于检索生效,且可恢复)、关系证据(引用 / 导入 / 测试,带行号)与增量索引(重启后复用)。v0.23 起还多一条可选的混合检索:默认关闭,只有你自己配好 Ollama 或 OpenAI 兼容的 embedding 服务才会生效。它生效时,发出去的是你这句查询原话加上每篇候选文件的标题与摘要 —— Markdown 的摘要取自正文首段(不超过 60 字),代码的摘要是它所在的工作区相对目录,图片 / 视频贡献的是文件名;完整正文与绝对路径都不发送,指向本机服务(loopback)时内容不出这台机器。v0.24 起还能做变更关联:用一条只读的 git status(固定 argv、不走 shell、子进程环境白名单),配合同一套引用 / 导入 / 测试 / 提及证据,指出这次改动大概率该一起看哪些文件 —— 默认关闭。语义检索的收益仍待真 provider 实测,因此不承诺召回提升。




社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。