前言¶
在 DeepSeek Harness(DSH)对话中,助手经常通过工具返回文件路径,或在正文中提及文件。这些引用通常以纯文本形式显示,难以快速定位或查看。dsh-file-links 插件旨在解决这一问题,将对话中涉及的文件路径自动渲染为 Codex 风格的可点击标签,点击即可在 DSH 内置预览中打开。
插件介绍¶
dsh-file-links 是 DeepSeek Harness 生态下的一个插件,由开发者 h1-count 维护。它的核心价值在于将对话上下文中的文件引用可视化,提升文件操作的效率。
核心功能¶
-
自动提取
插件会从三类来源确定性累积每轮对话中引用的文件路径:
- 工具结果的locations字段(如 diff、edit 卡片)。
- 工具调用参数中的路径。
- 回复正文中的行内代码提及。 -
Codex 风格 chips
- 渲染为“文件引用”标签 + 圆角小胶囊。
- 根据文件扩展名自动着色图标(如 TS/JS/MD/表格/图片等)。
- 鼠标悬停高亮。
- 当引用超过 8 个时,自动折叠为+N。 -
点击即预览
- 利用 DSH 聊天视图自带的openFile(workspaces.openPath)接口。
- 无需自行搭建预览功能,直接复用原生能力。 -
安全与校验
- 渲染前会经过 Host 端的fs.stat校验。
- 仅保留真实存在的普通文件,自动过滤目录、噪声及不存在的路径。
- 支持绝对路径直开,相对路径按会话cwd解析,避免路径拼接错误。 -
主题适配
- 样式变量遵循 DSH 主题规范(--dsw-alias-*)。
- 确保在浅色和深色主题下均可正常阅读。
安装与启用¶
使用官方提供的命令安装插件:
dsh plugin --profile web add github:<你的账号>/dsh-file-links
安装完成后重启 DSH 即可生效。
工作原理¶
该插件分为客户端和宿主端两部分协同工作:
- 客户端:注册 conversation.chat.turnTail 链,通过 ConversationNodeDefinition(kind 为 file-links)累积路径并渲染 chips。
- 宿主端:注册 /file-links/verify HTTP 路由,利用 fs.stat 校验路径存在性。
- 数据安全:插件仅读取路径元数据,不读取文件内容,不上传任何数据,无业务写入操作。
使用方式¶
在 DSH 对话中,一旦助手使用了工具返回文件路径或在正文中提及文件,这些文件会自动在下方的回复中渲染为可点击的 chips。用户只需点击对应的标签,即可在 DSH 内置预览中打开文件。
适用场景与注意¶
- 适用场景:适合需要在对话中频繁引用和查看本地代码文件的开发者,特别是使用 DSH 进行代码编辑、调试或文档生成时。
- 注意:插件以当前 DSH 进程的权限运行。在安装前,建议检查源码以确认无恶意行为,并确认许可证符合你的需求(MIT 许可证)。
结语¶
dsh-file-links 通过将静态的文件路径转化为交互式标签,降低了文件操作的成本。更多细节和源码,可以访问 GitHub 仓库。