前言¶
在 DSH(DeepSeek Harness)对话中,常见诉求是把外部文件交给模型,或者把选中的文本作为上下文加入消息。dsh-utility-tools 提供了一个 DSH 对话工具插件:拖拽任意文件进入对话区域,选中文本后在消息开头生成引用块。
这是什么¶
dsh-utility-tools 是 DSH 对话工具插件,由 sharkymew 维护,许可证为 MIT。
它解决两个输入侧问题:
- 拖拽任意文件进入对话区域,并在发送前查看文件名、大小、逐个移除。
- 选中文本后,将选中内容以引用块形式加入即将发送的消息。
插件支持两种导入方式:静态挂载(一行命令安装)与动态加载(cordis_define,零依赖)。静态版通过 HTTP 路由 /dsh-utility-tools/save 上传附件字节。
核心功能¶
拖拽文件附件¶
把文件拖入对话区域后,文件会进入附件列表。发送前可以查看文件名和大小,也可以逐个移除。
发送消息时,附件随消息一并提交:
- Electron 环境直接引用原路径。
- 普通浏览器把文件暂存到系统临时目录。
选中文本引用¶
在对话中选中文字后,输入框上方会显示引用条。发送时,引用内容以 > 引用: 块置于消息开头。
导入方式¶
静态挂载适合一行命令安装,目标 profile 为 web。
动态加载使用 cordis_define 创建插件并运行,零依赖。
安装与启用¶
静态挂载¶
先安装到 web profile:
dsh plugin --profile web add dsh-utility-tools
安装后重启 dsh web 生效。
动态加载¶
先克隆仓库:
git clone https://github.com/sharkymew/dsh-utility-tools
然后把 dynamic/host.body.js 与 dynamic/client.body.js 的全文用于 cordis_define 创建插件,并执行 cordis_run 运行。动态插件是进程内加载,卸载即清理;运行时需要在 UI 中批准运行请求。
典型用法¶
1、静态安装后重启。执行安装命令:
dsh plugin --profile web add dsh-utility-tools
然后重启 dsh web。
2、拖入文件。将任意文件拖入对话区域。发送前,展开附件胶囊管理菜单,查看文件名和大小,并移除不需要的文件。发送时,附件随消息提交。
3、引用文本。在对话中选中要引用的文字,点击选区上方引用菜单。发送时,引用块会置于消息开头。
4、动态加载。克隆仓库,并将 dynamic/host.body.js 与 dynamic/client.body.js 的全文用于 cordis_define 创建插件,再执行 cordis_run 运行。
适用场景与注意¶
适合在 DSH web profile 对话中附带文件、引用上下文,或在 Electron 环境中引用原文件路径。
使用前需要注意:
- 普通浏览器无法获取拖入文件的真实磁盘路径,只能按名称引用或暂存到系统临时目录;Electron 环境可直引原路径。
- 单文件上限
8MB,超出仅提示不暂存。 - 暂存目录在系统重启后可能被清空。
- 纯文本引用上限
2000字符。 - 静态版 HTTP 路由
/dsh-utility-tools/save仅监听回环地址,且只写系统临时目录。 - 动态插件是进程内加载,卸载即清理,且需要在 UI 中批准运行请求。
- 插件会以当前 dsh 进程权限运行。安装前建议检查源码、许可证和来源仓库。
结尾¶
dsh-utility-tools 将文件拖拽和文本引用合入 DSH 对话输入流程,适合在对话中临时补充文件附件或上下文引用。
目录页:https://www.skillhub.cn/plugins/sharkymew/dsh-utility-tools
GitHub:https://github.com/sharkymew/dsh-utility-tools