前言¶
在 DSH(DeepSeek Harness)的 Web 对话界面里摘取内容,常见做法是逐行拖选复制。碰到代码块里的列、表格里的整段数据时,一次拖选只能带走一行,反复操作很费时间。mi-chuan/box-select-copy 是一个客户端插件,用矩形选框解决这个问题:按住 Alt 拖一个框,松手就把框内所有文本一次性复制出来。下面介绍这个插件的能力、安装方式和实际用法。
这是什么¶
box-select-copy 是一个 DSH Web 客户端插件,维护者是 Mi-Chuan,目前星标为 0。它的目标场景是从对话正文、代码块或表格中按块摘取内容,而不是逐行选择。插件在客户端侧运行,不修改对话的 DOM。
核心功能¶
- Alt + 左键拖拽:在对话正文区域画出矩形选框,覆盖任意字符范围。
- 松开即复制:松开左键后提取选框覆盖的文本,写入系统剪贴板。
- 轻量提示:成功时显示
✅ 已复制;空选或失败也有对应提示。 - 保留横向间隔:同一行内跨度较大的列之间自动补
\t,便于粘贴到表格里。 - 主题适配:选框与提示使用 DSH 主题 token,自动适配明暗主题。
- 可取消:拖拽中按
Esc或窗口失焦即取消本次框选。
安装与启用¶
先决条件是 DSH Web 客户端支持客户端 bundle 插件(dsh.client)。插件提供了四种安装方式,按环境选一种即可;npm 包名、插件 ID 和 GitHub 仓库名都是 box-select-copy。
方式一,从 GitHub 安装,在插件管理页选择安装外部 bundle,安装目标填:
github:Mi-Chuan/box-select-copy
也可以直接对 Agent 说:
请用 plugin_manager 的 install_bundle 安装 github:Mi-Chuan/box-select-copy
这种方式由 pnpm 通过 Git 读取仓库。如果本机 Git 访问 GitHub 失败(例如 Windows 上出现 CRYPT_E_NO_REVOCATION_CHECK),改用方式二或方式三。
方式二,从 npm 安装,包名是:
box-select-copy
安装完成后刷新 DSH 页面。
方式三,下载 Release 压缩包,直接填下载地址:
https://github.com/Mi-Chuan/box-select-copy/releases/download/v1.1.1/box-select-copy-1.1.1.tgz
当前 Release 包为 box-select-copy-1.1.1.tgz,也可以先下载到本地再填绝对路径。
方式四,克隆到本地安装,面向开发场景:
git clone https://github.com/Mi-Chuan/box-select-copy.git
克隆后在 DSH 中把安装目标指向包含 package.json 的 box-select-copy 目录,启用插件并刷新页面。
从旧版 @local/column-select-copy 或 @local/box-select-copy 升级时,先卸载旧插件再安装新版本。
典型用法¶
- 在对话正文中按住
Alt。 - 用鼠标左键拖拽出矩形选框。
- 松开左键。
成功后底部出现 ✅ 已复制,直接 Ctrl+V 粘贴即可。若要取消,拖拽中按 Esc 或让窗口失焦。
实现与限制¶
插件只包含客户端代码,注册到 shell.overlay 浮层,不修改对话 DOM。它在 window 捕获阶段监听 pointerdown/move/up,仅当 altKey + 左键 + 对话滚动区 同时满足时启动。文本提取通过 Range.getBoundingClientRect() 逐字符判断与选框是否相交,再按 top 分行、left 排序,行间用 \n 连接。剪贴板优先使用 navigator.clipboard.writeText,失败时回退到隐藏 textarea 加 execCommand('copy')。
使用时注意以下几点:
- 只在对话正文区域生效,输入框和侧边栏不会触发。
- 伪元素(如部分列表符号)和 Shadow DOM 内的文本不会被提取。
- 浏览器或 Electron 拒绝剪贴板权限时先走回退方案,仍失败会提示“复制失败”。
运行时插件以当前 DSH 进程的权限执行。安装前先读一遍 client.js 和 cordis.patch.yml,确认源码与许可证(MIT)符合预期再启用。
结尾¶
对于经常在 DSH 对话里按块摘代码或表格内容的场景,box-select-copy 把拖选复制换成了一次框选,省去逐行操作。插件目录页在 https://www.skillhub.cn/plugins/Mi-Chuan/box-select-copy ,源码与安装说明在 https://github.com/Mi-Chuan/box-select-copy 。