dsh-file-drop
by tianleyitian
文件拖拽:把文件拖到 DSH 窗口,真实路径写入输入框
安装
dsh plugin --profile web add github:tianleyitian/dsh-file-dropGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
把文件/文件夹拖到 DSH 窗口任意位置,真实磁盘路径瞬间写入对话输入框——零内容传输,与文件大小无关。
特性
- 像正常窗口一样拖拽文件:解决 WebUI 无法直接读取文件地址的痛点——拖放体验与桌面应用一致
- 命令菜单选择文件:输入框左下角
+(命令)菜单新增pick-file——点击即弹出系统原生文件选择框(无多余步骤),支持多选,选中后把真实路径填入输入框 - 本地透明拦截窗:浏览器检测到文件拖拽后,一个跟随鼠标的 200×200 透明窗(opacity 2%、纯黑背景、无感)接管 OLE 拖放,从 Windows 拖放系统直接读取真实完整路径(
CF_HDROP) - 文件夹直接给文件夹路径;多文件逐行粘贴;已有草稿自动追加
- 纯图片拖拽保留应用原生的"拖图片到此添加"
- 全链路自愈:点击关闭、8 秒无活动自动隐藏、追加式命令防竞态、DLL 缓存冷启 ~1s、看门狗 20s 自动重启、PowerShell 异常全捕获
- 失败自动回退内容上传(文本 fs 直写 / 二进制 Node 批量写盘到
.dsh-file-drop/)
安装
从 npm 安装(推荐)
插件已发布到 npm,一条命令装齐(需先安装 pnpm:npm install -g pnpm):
dsh plugin --profile web add dsh-file-drop
装完重启 dsh web 即可使用。--profile 换成你的 profile 名(默认 web)。
从 GitHub 仓库安装(开发调试)
插件已在 npm 发布,仓库安装仅供开发调试(需要 Node.js 与 pnpm):
# 1. 克隆仓库
git clone https://github.com/tianleyitian/dsh-file-drop.git
cd dsh-file-drop
# 2. 安装依赖并构建
npm install
bash scripts/build.sh
# 3. 把包链接进 web profile
dsh plugin --profile web add link:$(pwd)
# 4. 重启 dsh web
dsh web
dsh-super-injector(本机开发/热装)
dev_build_plugin {"dir": "D:/.../dsh-file-drop"}
dev_install_package {"dir": "D:/.../dsh-file-drop"} # 写入 profile,重启后自动装配
# 或仅运行时注入:dev_inject_plugin {"dir": "D:/.../dsh-file-drop"}
使用
- 打开任意会话
- 从资源管理器拖文件/文件夹到 DSH 窗口任意位置
- 松开——路径瞬时出现在输入框(提示"已写入 N 个路径")
或通过命令菜单选择文件:点输入框左下角 +,在菜单中选 pick-file,用系统原生文件选择框选取(可多选),路径自动填入输入框:

图片拖拽仍走应用原生附加;未打开会话时拖入会提示先打开会话。
工作原理
拖拽进入浏览器窗口 (dragenter)
→ 显示等待提示层 + 通知宿主显示透明小窗(跟随光标)
→ OLE 拖放命中测试把 drop 交给小窗
→ 从 FileDrop 读出真实路径(CF_HDROP)
→ stdout 上报宿主 → 客户端轮询取回 → 写入输入框
- 宿主通信:
POST /file-drop/api/{arm|take|disarm|ingest}(webServer 路由 + 同源围栏) - helper:常驻 PowerShell WinForms 进程(隐藏、置顶、不抢焦点),命令通道为追加式文件
- 路径直接来自 Windows 拖放系统(CF_HDROP),不读取、不传输、不复制文件内容——因此与文件大小无关,几百 MB 的文件也是瞬时完成
- 失败兜底:内容上传写入
<工作区>/.dsh-file-drop/
构建
bash scripts/build.sh # tsc(host)+ tsdown(client bundle)
# 依赖自动从已安装的 dsh npm 包链接;typescript/tsdown/@types 缺失时自动 npm install
卸载
dev_uninject_plugin dsh-file-drop # 卸载并清理 profile 条目
诊断
- 宿主日志:
<harness 根>/.dsh-file-drop/.helper/diag.log - helper 日志:
<harness 根>/.dsh-file-drop/.helper/helper.log
许可证
BSD-3-Clause
原始 README: https://github.com/tianleyitian/dsh-file-drop/blob/main/README.md ↗
同类插件
查看全部 →
dsh-web-ui-all
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。

dsh-web-ui
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。

dsh-TUI
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

DSH-better-sidebar
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。

working-activity
让 agent 的"工作状态行"活过来——实时工具动态与进度、俏皮文案、模型自述、上下文预警。同一套想法,适配两个平台: pi CLI 与 DeepSeek Harness(DSH) 。

deepseek-idesign
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。