sharkymew/dsh-utility-tools ↗★ 1
dsh-utility-tools
DSH 对话工具插件:拖拽任意文件附件(发送时暂存系统临时目录)+ 选中文本引用。支持静态挂载与动态加载。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:sharkymew/dsh-utility-tools说明文档
阅读完整 README ↗dsh-utility-tools
DSH(DeepSeek Harness)对话工具插件:拖拽任意文件进入对话 + 选中文本引用。
支持两种加载方式:静态挂载(dsh plugin add 一行命令安装,推荐)与动态加载(cordis_define,零依赖)。
功能
1. 拖拽文件附件(不限于图片)
- 拖入任意文件到对话区域即进入附件列表:输入框上方显示「📎 附件(N)」胶囊;
- 点击胶囊展开管理菜单:查看文件名/大小、逐个移除;
- 发送(Enter 或发送按钮)时随消息一并提交:
- Electron 环境:直接引用
File.path原路径,不复制; - 普通浏览器:字节无损暂存到系统临时目录(macOS/Linux 用
/tmp,Windows 用每用户%TEMP%)下的dsh-drops//,消息引用绝对路径,模型可直接读取;
- Electron 环境:直接引用
- 文件内容不会出现在输入框或消息气泡里(只引用路径与大小),不污染工作目录;
- 图片拖拽仍走系统原生流程;图片与文件混拖时图片自动转交原输入栏。
2. 选中文本引用
- 在对话中鼠标选中文字 → 选区上方弹出「引用」菜单;
- 点击后选中文字显示在输入框上方(引用条),带「✕」取消;
- 发送时引用以
> 引用:块置于消息开头一并提交。
目录结构
dsh-utility-tools/
├── README.md # 本文件(含导入指南)
├── package.json # 包声明:dsh.bundle(自动插入 entry)+ dsh.client(静态 Client 半区)
├── cordis.patch.yml # ★ bundle patch:`- insert:` 插入插件 entry(一行命令生效的关键)
├── LICENSE # MIT
├── .gitignore
├── lib/ # ★ 静态版(一行命令安装用)
│ ├── index.js # Host 入口(ESM,export default 插件,零依赖)
│ └── client.js # Client 半区(__ModuleLoader__.load 格式)
└── dynamic/ # 动态版(cordis_define 粘贴用,已验证)
├── host.body.js # code.host 函数体
└── client.body.js # code.client 函数体
如何导入(给使用者)
方式 B:静态挂载(一行命令,推荐 ✅)
# 安装到 web profile(包自带 dsh.bundle,entry 自动插入插件树)
dsh plugin --profile web add dsh-utility-tools
# 重启 dsh web 生效
- 包通过
dsh.bundle声明(cordis.patch.yml内的- insert:行)自动向插件树插入 entry,无需手动编辑任何 patch 文件; - 安装命令等价于在 profile 目录执行
pnpm add; - 行内
name是模块说明符:loader 经import(name)加载包入口main(Host ESM),client 模块表扫描 entry 的dsh.client声明并 serve./client导出(__ModuleLoader__格式); - Host 半区注册 HTTP 路由
/dsh-utility-tools/save,Client 半区经同源fetch上传附件。
方式 A:动态加载(零依赖,已验证)
git clone
把 与 的全文交给你的 AI: