前言¶
在 DeepSeek Harness 中,从操作系统的文件系统拖拽文件到消息编辑器已经可以工作。但 Files 侧边栏中的文件行并没有被标记为拖拽源,编辑器也只接受来自操作系统的 Files 类型 payload,因此侧边栏文件无法直接拖入。dsh-file-drag 通过在侧边栏文件行上启用原生拖拽,并绕过编辑器的 payload 检查,将文件路径传递给编辑器,从而补全这一能力。
是什么¶
dsh-file-drag 是一个 DeepSeek Harness 插件,由 JiayuREN1127 维护。它的作用是:在 Files 侧边栏中,把文件和文件夹行变成可拖拽源,让你可以直接把文件拖到消息编辑器的任意位置。
默认情况下,拖入的文件会变成一个内联的圆角芯片,与编辑器自己的 @ 选择器产生的 token 一致,可以跟随文本移动、换行和删除。你可以在设置中切换三种模式:内联芯片、上传附件、纯 @ 路径。
核心功能¶
- 侧边栏文件拖拽:Files 侧边栏中的文件和文件夹行现在可以被拖拽到消息编辑器。
- 三种投放模式:
- 内联芯片(默认):在光标位置插入一个圆角芯片,显示文件图标和名称,与编辑器原生行为一致。
- 附件:读取文件内容并上传,在编辑器上方的附件栏显示。
- @ 路径:直接插入相对路径文本,如
@src/client/index.ts。 - Alt 拖拽:按住 Alt(⌥)拖拽时,无论当前设置如何,都会以
@路径形式投放一次。 - 设置项:在 Settings → General → File drag 中配置默认投放模式,配置存储在
localStorage的dsh-file-drag:mode键下。 - 错误回退:如果芯片无法投放,会自动降级为
@路径,不会丢失文件。
安装与启用¶
插件需要 DeepSeek Harness 0.2.1-rc.2 或更高版本,并且使用 desktop 配置文件(~/.dsh/profiles/desktop)。
使用安装脚本¶
git clone https://github.com/JiayuREN1127/dsh-file-drag.git
cd dsh-file-drag
./install.sh
install.sh 会把插件复制到 ~/.dsh/profiles/desktop/node_modules/dsh-file-drag,并在 ~/.dsh/profiles/desktop/cordis.patch.yml 中追加一行 Loader 配置,安装前会自动备份原配置文件。
手动安装¶
- 将插件目录复制到
~/.dsh/profiles/desktop/node_modules/dsh-file-drag。 - 在
~/.dsh/profiles/desktop/cordis.patch.yml中追加:
- insert:
- id: file-drag
name: dsh-file-drag
- 完全退出应用(
Cmd-Q),然后重新打开。Loader 树在启动时构建,页面刷新不足以完成首次安装。
通过市场索引安装¶
插件仓库发布了格式-1 市场索引,添加以下 URL 到 Settings → Plugins → Discover → Index sources:
https://raw.githubusercontent.com/JiayuREN1127/dsh-file-drag/main/market/index.json
之后可以通过索引安装和更新插件。
典型用法¶
- 打开右侧的 Files 选项卡。
- 按住文件或文件夹,拖拽到消息编辑器。
- 释放鼠标。
拖拽过程中,编辑器会显示虚线边框,提示可以投放。
投放行为示例¶
| 源行 | 内联芯片 | 附件 | @ 路径 |
|---|---|---|---|
src/client/index.ts |
标签为 index.ts 的芯片 |
已上传的附件卡片 | @src/client/index.ts |
文件夹 packages |
标签为 packages/ 的芯片 |
降级为芯片 | @packages/ |
my notes.md |
标签为 my notes.md 的芯片 |
已上传的附件卡片 | @"my notes.md" |
路径遵循编辑器自己的 formatFileMention 语法:文件夹以 / 结尾,包含空格的路径会被引用。
适用场景与注意¶
这个插件只做一件事:让 Files 侧边栏中的文件变成可拖拽源。
- 你在编辑消息时需要频繁引用工作区中的文件,并且习惯通过路径来引用 → 这个插件会很有用。
- 你主要在消息中粘贴代码,或者很少打开 Files 选项卡 → 这个插件对你没有额外价值,不需要安装。
插件以当前 DSH 进程的权限运行,安装前应查看源码与许可证(MIT)。
短结尾¶
dsh-file-drag 通过在侧边栏文件行上启用原生拖拽,将文件路径传递给编辑器,补全了从 Files 侧边栏拖拽文件的能力。它提供内联芯片、附件和 @ 路径三种投放模式,并带有错误回退机制。
- 目录页:https://www.skillhub.cn/plugins/JiayuREN1127/dsh-file-drag
- GitHub:https://github.com/JiayuREN1127/dsh-file-drag