前言¶
在 DeepSeek Harness(DSH)里用右侧文档预览看代码、Markdown 或图片时,若要把磁盘上的那个文件拷到别的目录,常见做法是记住路径、打开资源管理器再复制。预览里能看内容,却不等于能直接把「文件对象」交给 Windows 剪贴板,在目标文件夹里 Ctrl+V 粘贴。
dsh-copy-file 由社区维护者 doudoudouhuahua 发布,分类为客户端插件:在右侧预览头部增加「复制文件」按钮,点击后把当前预览对应的文件写入剪贴板文件列表(CF_HDROP),可在任意文件夹粘贴。DSH 生态强调「一切皆插件」;SkillHub 目录页 为独立社区站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
一句话:给 DSH Desktop 右侧文档预览加「复制文件」按钮,一键把正在预览的文件放进 Windows 剪贴板,直接粘贴到任意文件夹。
维护者:doudoudouhuahua。开源仓库:github.com/doudoudouhuahua/dsh-copy-file。package.json 中版本为 0.1.0,许可证 MIT。
核心功能¶
下面能力均来自项目 README 说明:
- 按钮出现在右侧文档预览头部,与「打开 / 显示文件位置」等图标同一排。
- 点击后写入的是文件本身(非文本内容),资源管理器可直接 Ctrl+V 粘贴。
- 成功时按钮短暂变为对勾;失败时变为警告图标,悬停可查看原因。
- 支持中文文件名与中文路径。
- 仅在本机 DSH 宿主内工作:路径不离开本机,不上传、不读取文件内容。
安装与启用¶
环境要求:Windows + DSH Desktop(0.2.x,自带 PowerShell 5.1)。安装后需完全退出并重新打开 DSH Desktop。
方式一:插件管理器(推荐)¶
在 DSH 会话里执行:
plugin_manager(action: "install_bundle", target: "github:doudoudouhuahua/dsh-copy-file")
方式二:手动 link 到 desktop profile¶
README 还给出手动步骤:克隆仓库、在 profile 的 package.json 增加 link: 依赖并把 bundle 名写入 dsh.profile.bundles、用 junction 链到 node_modules,最后同样完全重启 DSH Desktop。细节见仓库 README「方式二」。
插件以后台 bundle 与客户端脚本协作:cordis.patch.yml 声明挂载;lib/client.js 在 sidebar.right.tab.document.actions 插槽注册按钮并向宿主 POST 绝对路径;lib/index.js 注册 POST /dsh-copy-file,校验路径为存在的普通文件后调用 Set-Clipboard -LiteralPath。宿主路由只接受本机同源、已认证的 POST,不把路径写进日志。
典型用法¶
- 在右侧 Sidebar 打开任意可预览文件的预览(代码、Markdown、图片等)。
- 在预览头部点击「复制文件」图标。
- 在目标文件夹按 Ctrl+V 粘贴。
注意:复制会覆盖剪贴板当前内容;一次只复制一个文件(预览本身是单文件)。
适用场景与注意¶
适合在 Windows 上使用 DSH Desktop、频繁在预览与资源管理器之间搬运实体文件的开发者。若只需复制文本,仍应使用编辑器或预览内的文本复制,本插件针对的是 CF_HDROP 文件粘贴。
兼容性(README):依赖 DSH 0.2.x 的 sidebar.right.tab.document.actions 插槽与 webServer.register 路由 API;Windows PowerShell 5.1 的 Set-Clipboard -LiteralPath,无需管理员权限。DSH 大版本升级后若按钮消失,可能需要对照插槽与路由 API。
安全与权限:插件随当前 DSH 进程权限运行,安装前建议阅读源码与 MIT 许可证,确认行为符合本机策略。
卸载:从 profile 的 package.json 删除依赖与 bundles 项,移除 node_modules 下的链接目录,再完全退出并重开 DSH。步骤见仓库 README「卸载」。
结尾¶
dsh-copy-file 把「预览里看到的文件」和「资源管理器里能粘贴的文件」连成一步,减少回源目录查找的路径成本。目录与源码: