前言¶
在 DeepSeek Harness(DSH)里用 dsh-better-sidebar 打开长文时,右侧文件编辑器往往一屏只显示一部分。要把全文拷到别的工具里,常见做法是拖选超出视口的内容,或反复滚动让每一页都加载出来,既慢也容易漏段。下面介绍社区插件 dsh-copy-document:在编辑器标题栏 Save 右侧增加一个按钮,一次点击把磁盘上该文件的完整文本写入剪贴板。
这是什么¶
dsh-copy-document(仓库 ionaryu/dsh-copy-document)由维护者 ionaryu 发布,在 SkillHub 目录中归类为客户端插件。它不改变 DSH 核心,只在 dsh-better-sidebar 提供的侧边栏文件编辑器标题栏里挂载控件;读取文件时走该插件已有的 /sidebar/api/fs.read(超过编辑器 5 MB 可编辑阈值时则用 fs.readPage 分页读完),会话范围、浏览器信任边界和编码检测仍由 dsh-better-sidebar 负责。
核心功能¶
- 整文档复制:点击按钮后,插件按当前侧边栏活动会话读取文件全文,再通过异步 Clipboard API 写入剪贴板。
- 按钮状态:空闲时为复制图标;读取与写入进行中按钮禁用;成功约 1.2 秒显示勾选;二进制文件或读写失败时显示警告(失败原因可在浏览器控制台查看)。
- 位置:默认在 Save 右侧;只读大文件(无 Save)时,按钮出现在 Refresh 右侧,与同一组控件对齐。
依赖与运行环境¶
- 必须已安装并挂载
dsh-better-sidebar。没有该插件就没有编辑器标题栏,本插件的按钮不会出现。 - 剪贴板 API 需要安全浏览器上下文;在
localhost上运行的现代 Web GUI 一般满足要求。
安装与启用¶
官方安装方式(资料原文):
dsh plugin --profile web add github:ionaryu/dsh-copy-document
dsh --profile web --dump-config # shows a "# == dsh-copy-document" layer
仓库已提交构建产物 lib/,上述安装无需本地 build,也无需 allowBuilds。未 pin 的 github: 引用跟踪 main;再次 add 较新的提交可更新 profile 中的副本。
手动等价步骤:
- 在 profile 的
package.json的dependencies中加入"dsh-copy-document": "github:ionaryu/dsh-copy-document"。 - 在
dsh.profile.bundles中追加"dsh-copy-document"。 - 在 profile 目录执行
pnpm install,然后重启 Harness。
安装完成后重启 GUI;插件以当前 DSH 进程与浏览器会话的权限运行,安装前建议浏览仓库源码并确认 MIT 许可证(package.json 中版本为 0.1.0)。
典型用法¶
- 确认 web profile 已加载 dsh-better-sidebar 与本插件。
- 在侧边栏打开一篇已保存的文本类文件。
- 在标题栏 Save(或只读视图下的 Refresh)右侧点击复制按钮;等待状态变为「已复制」后,在目标应用中粘贴。
若编辑器里有未保存修改,请先 Ctrl/Cmd+S 保存再复制——剪贴板内容是磁盘上的文件,不是编辑器缓冲区。
适用场景与注意¶
适合:需要把 Harness 侧边栏里打开的 Markdown、代码、日志等长文本,整篇粘贴到外部编辑器、文档或 IM,而不想手动全选滚动。
务必知晓的限制(README 原文):
- 未保存草稿不会被复制;先保存再点复制。
- 图片、PDF、Office 等二进制文件无法复制为文本,按钮会提示非文本文档。
- 按钮通过 DOM 挂到标题栏;dsh-better-sidebar 若未来改标题栏结构,按钮可能消失,插件不修改编辑器其他部分。
- 读取范围限于侧边栏当前活动会话(与当前可见编辑器所属会话一致)。
SkillHub 上的 dsh-copy-document 目录页 与 GitHub 仓库同属社区生态,与 DeepSeek / 幻方无官方从属关系;DSH 侧遵循「一切皆插件」,按需选用即可。
结尾¶
dsh-copy-document 用一个小按钮补上了侧边栏「整文件出剪贴板」的缺口,实现上复用 dsh-better-sidebar 的读文件 API,避免重复实现会话与分页逻辑。需要安装命令与行为细节时,以 GitHub README 为准;浏览与发现插件可访问 SkillHub 目录页。