前言¶
在 DeepSeek Harness(DSH)里和模型协作时,经常要把右侧预览里的代码、文档段落,或聊天记录里某条回复,贴进当前输入框。手动复制粘贴容易丢路径和行号,也不容易区分「文件引用」和「会话记录」。DSH 生态按「一切皆插件」扩展能力;社区插件目录在 SkillHub,与 DeepSeek / 幻方无官方从属关系。
下面介绍维护者 xywen97 的客户端插件 dsh-selection-chat:在 Web GUI 里拖选文字后浮出操作条,把片段写入输入框草稿,不会自动发送。
这是什么¶
dsh-selection-chat 是面向 DSH 桌面 Web 客户端的插件(分类:客户端)。在右侧栏文件预览正文或聊天记录里选中一段文字,旁边会出现 加入对话 | 侧边提问 | 评论,动作结果只追加到草稿。
与在输入框里自己粘贴相比,插件会按来源生成结构化引用(代码预览带 文件路径:行号,Markdown/纯文本预览只带路径,聊天记录标注为 会话记录)。
核心功能¶
选中文字后的流程可以概括为:
选中代码/文档 ──▶ [ 加入对话 | 侧边提问 | 评论 ] ──▶ 写进输入框草稿(不自动发送)
三个动作含义如下(资料中对标 Codex / Claude Code 的类似交互):
- 加入对话:把
文件路径:行号(或路径/会话记录)与引用正文追加到当前主对话草稿。 - 侧边提问:打开侧边聊天,并把片段写入侧边输入框草稿;需同时安装同作者的
@xywen97/dsh-sidechat,未安装时点击会提示先装。 - 评论:弹出小输入框,确认后把「引用 + 评论」追加到草稿。
有意不触发浮条的区域:预览 tab 条、路径头部、输入框内草稿、应用自带按钮和标题——避免引用正在编辑的内容或 UI chrome。
写入目标:侧边聊天面板打开时,浮条仍写入主对话草稿,不会占用侧边面板输入框。
失败兜底:会话提交中草稿被锁、或拿不到宿主 inputActions 时,会重试一次;仍失败则复制到剪贴板并提示,不静默丢弃。
插件依赖宿主槽位 conversation.input.dock 提供的 captureInsertion 与 insertText,不调用 submit。
安装与启用¶
已发布到 npm:dsh-selection-chat@0.1.0。宿主要求(见 package.json):Node >=20,DSH >=0.2.1-rc.5 <0.3.0-0。
一条命令安装(npm 或 git 二选一):
# npm(推荐)
dsh plugin --profile desktop add dsh-selection-chat
# 或直接钉 Git 提交(未发布 npm 时可用)
dsh plugin --profile desktop add "git+https://github.com/xywen97/dsh-selection-chat.git"
也可在桌面版 设置 → 插件 → 安装,spec 填 dsh-selection-chat。装完后几秒内热加载生效,必要时 Cmd/Ctrl + R 刷新窗口。
若要用 侧边提问,需额外安装:
dsh plugin --profile desktop add @xywen97/dsh-sidechat
未装 @xywen97/dsh-sidechat 时仍可使用「加入对话」和「评论」。
安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。客户端插件在浏览器侧运行,行为与当前 DSH 进程及页面权限一致,请自行评估是否适合你的环境。
典型用法¶
- 在聊天记录里拖选文字,或在右侧栏预览正文里拖选(可通过
@文件引用芯片或右侧 Files 打开预览)。 - 松手后浮条出现,选择
加入对话 | 侧边提问 | 评论。 - 点 加入对话 后,草稿末尾出现引用块,并 toast 提示「已加入输入框草稿(未发送)」。
- 点 评论 后输入内容,用
⌘/Ctrl + Enter或 插入评论 写入草稿。 Esc或点击空白处收起浮层。
代码预览引用示例(行号来自 Shiki 的 pre > code > span.line):
引用 /private/tmp/dsh-test/ws/demo.py:4-6
> def add(a, b):
> """Return the sum of two numbers."""
> return a + b
评论示例:
评论 /private/tmp/dsh-test/ws/demo.md
> 第二项:给选中的一段话写评论
我的评论:这条可以合并进上一条
拖选时首尾空行会自动去掉,行号相应内收。Markdown / 纯文本预览只给路径,不给行号。
适用场景与注意¶
适合:经常在 DSH 里对照右侧预览或历史消息写 prompt、需要带路径/行号或「会话记录」标注的开发者。
限制(README 已说明):
- 只处理右侧栏预览中的可选中文本;PDF / Office / 表格等预览没有文本锚点,不处理。
- 评论写入聊天草稿,不是钉在文件上的持久批注。
- 行号依赖 Shiki 行结构;宿主换渲染器时可能降级为仅路径。
- 极端窄窗口下浮条位置可能遮挡内容。
插件卸载或热重载时会移除 DOM 监听、样式与浮层;宿主改动 [data-slot="sidebar.right.tab.document"] 等契约标记时可能静默降级(路径/行号缺失或改走剪贴板)。
结尾¶
dsh-selection-chat 把「选中 → 引用进草稿」做成固定交互,并明确不自动发送,适合作为 DSH 桌面工作流里的客户端小插件。