bill9109/dsh-drag-and-drop ↗★ 1
@bill9109/dsh-drag-and-drop
Drag local files into DSH Web UI and insert their original filesystem paths without uploading or copying them
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:bill9109/dsh-drag-and-drop说明文档
阅读完整 README ↗dsh-drag-and-drop — 文件拖拽路径插件
English | 中文
DeepSeek Harness Web UI 插件:把文件拖入页面任意位置,将文件原始绝对路径插入当前会话输入框。
插件不会上传、移动或复制文件,不会破坏文件所在目录与相邻依赖文件之间的关系。
许可证 BSD-3-Clause · GitHub
实现能力
- 将文件拖入 Web UI 任意位置即可插入原始绝对路径
- 拖拽过程中显示全页面压暗和模糊提示
- 支持文件和文件夹,也支持一次拖入多个项目,每个路径占一行
- 支持 macOS、Linux 和 Windows 原生路径
- 支持 POSIX 路径、Windows 盘符路径和 UNC 网络路径
- 不上传、不移动、不复制文件
- 优先在当前 Workspace 和已注册 Workspace 中定位文件
- 浏览器隐藏原始路径时,使用本地文件索引和受控目录搜索
- 仅在存在多个候选文件时计算内容指纹
- 多个完全相同的文件副本无法自动区分时,由用户选择路径
- 定位失败使用插件 toast 提示,可手动关闭,8 秒后自动消失,悬停时暂停计时
- 通过 DSH 的输入状态服务写入草稿,不直接修改输入框 DOM
安装
本插件是 DSH bundle(package.json 声明 dsh.bundle + dsh.client),通过
标准的 dsh plugin 机制安装到 profile,无需修改 DSH 源码、无需 config.yaml。
旧版 README 的
pnpm --filter @deepseek-ai/dsh add ...+config.yaml方式已过时:官方 profile/bundle 模型下不再读取config.yaml。
1. 安装到 profile(标准做法)
装进官方 web profile(自带 dsh-base + dsh-web-app 两层,插件需要
webServer 由 web-app 提供):
dsh plugin --profile web add github:bill9109/dsh-drag-and-drop
# 或本地 checkout:
dsh plugin --profile web add /path/to/dsh-drag-and-drop
仓库包含构建产物(lib/ 已提交),安装后无需另外构建。
2. 重启 Web UI
使用你当前启动 DSH Web UI 的方式重新启动服务,然后刷新浏览器页面。插件会出现在
浏览器引导图(__DSH_BOOT__)中,其 client bundle 自动加载。
使用
把文件或文件夹从 Finder、Linux 文件管理器或 Windows 文件资源管理器拖入 DSH Web UI 的任意位置。
出现全页面拖拽提示后松开鼠标,插件会将定位到的原始绝对路径写入当前会话输入框。
一次拖入多个项目时,每个路径占一行。
路径定位
如果浏览器提供本地文件 URI,插件会直接转换为当前操作系统的原生路径。
如果浏览器出于安全原因隐藏原始路径,插件按以下顺序定位文件:
- 当前 Workspace
- 其他已注册 Workspace
- Desktop、Documents 和 Downloads
- 操作系统文件索引
- 有边界限制的平台目录搜索
不同平台使用的系统索引:
- macOS:Spotlight
- Linux:优先使用
plocate,其次使用locate - Windows:优先使用 Everything CLI,其次使用 PowerShell