前言¶
在 DeepSeek Harness(DSH)里发带图消息时,图片通常走附件轨、文字在气泡里分开排。若你希望「文字里直接点名某张图」(例如「第 2 步见 pic-2.png」),又要保证模型侧 handle 行与附件一一对应,就需要在 Web GUI 层做粘贴拦截、内联引用与序列化配合。下面介绍社区客户端插件 dsh-inline-pastes(维护者 qgynisc):粘贴图片时在光标处插入内联胶囊,悬浮名字预览缩略图,并按规则自动编号;DSH Desktop 与 dsh web 浏览器端均可使用。
这是什么¶
dsh-inline-pastes(npm 包名 @qgynisc/dsh-inline-pastes,当前版本 0.6.0)是给 DeepSeek Harness Desktop 内置 Web GUI 用的客户端插件,分类为客户端。它只依赖 Web 客户端 API(conversation / sessions / uiSession / inputTriggers)和 DOM,不依赖桌面专属桥,因此在 DSH Desktop 与 dsh web 下行为一致。
插件解决的核心问题:把「粘贴图片」从「只进附件」扩展为「光标处插入可读的引用胶囊 + 附件照常随消息发出」,并在界面侧提供悬浮预览与发送前自检,降低文字与图片对不齐的风险。
核心功能¶
文字中插图¶
粘贴图片时,在光标处插入内联胶囊(默认显示短名如 pic-1)。图片仍按 DSH 官方管线作为附件随本条消息发出,模型照样收到图。
悬浮预览¶
鼠标停在胶囊名字上(输入框内胶囊或已发送气泡里的同名文字)会弹出缩略图预览卡,可显示尺寸与体积;移开收起,按 Esc 也可收起。
自动编号¶
名字按媒体大类分前缀、扩展名跟真实 MIME 走,例如 PNG 为 pic-1.png、pic-2.png;WebP / JPEG / GIF 等为 pic-1.webp / pic-1.jpg / pic-1.gif。v1 仅接管图片粘贴(image/png|jpeg|webp|gif);音频、PDF 等命名规则在代码里已预留,设置页当前主要开放图片相关前缀。
每条消息内从 pic-1 重新计数(判据为当前草稿里还没有本插件的胶囊);同一条消息内粘贴顺序与编号、附件顺序一致。发送后草稿清空,下一条消息再从 1 开始。
设置页:设置 → 混合排版¶
装好后重启 DSH,设置里会出现 混合排版(英文界面为 Mixed layout)。主要项包括:界面语言(跟随 DSH / 中文 / English)、命名前缀(默认 pic,可选 image 或自定义)、胶囊显示短名或完整文件名、缩略图角标四档、以及启用插件、接管图片粘贴、名字悬浮预览、发送前自检等行为开关。设置按设备存在 localStorage(dsh-inline-pastes:settings:v1),改完立刻生效。
「胶囊显示」为短名时,输入框里看到 pic-1,发送后文本与模型侧 handle 仍为完整名 pic-1.png;若要两处一致,可在设置里改为完整文件名。
与模型侧的一一对应¶
DSH 发图时会在每张图前紧挨插入 handle 文字(含文件名与 sha256 等),模型读文字里的 pic-1.png 时,同条消息里对应图片 handle 行同名,不靠纯顺序猜图。插件在同一条消息内保证粘贴顺序、编号与附件顺序一致;若从 dock 删掉某张缩略图却未删文字胶囊,编号可能与图片个数错开,发送前宜扫一眼或一并删除胶囊。
codec 注册¶
发送时官方会按「胶囊 source → codec」重新序列化。本插件通过 inputTriggers.registerSource 注册 inline-paste 的 codec,避免 slash: no serializer for reference source "inline-paste" 导致发送失败;若拿不到 inputTriggers,会退回纯文本插入。
安装与启用¶
推荐用 DSH 自带插件安装命令(desktop profile):
dsh plugin --profile desktop add git@github.com:qgynisc/dsh-inline-pastes.git
装完重启 DeepSeek Harness,客户端 bundle 重新加载后生效。
卸载可从 profile 的 dsh.profile.bundles 与 dependencies 中移除 @qgynisc/dsh-inline-pastes,或使用仓库提供的 npm run uninstall:desktop(需已有本地克隆时)。
验证:重启后在浏览器控制台执行,__dshInlinePastes.version 应等于已安装插件版本号(如 0.6.0)。
典型用法¶
- 在输入框需要引用图片的位置粘贴截图或剪贴板图片。
- 光标处出现类似
[🖼 pic-1]的胶囊,附件轨出现对应缩略图。 - 在文字中继续写说明,例如:
1、功能1 [🖼 pic-1]
2、功能2 [🖼 pic-2]
3、修改 bug 如图:[🖼 pic-3],把它变成可自动定位。
- 发送前可将鼠标悬停在
pic-1或pic-1.png上查看预览;若开启发送前自检,名字与图片不一致时会在输入框上方提示,默认第一次回车会拦截,再按一次可放行。 - 缩略图左下角可显示序号角标(大小可在设置里调节),便于对照「第几张图」。
控制台也可临时改设置,例如:
__dshInlinePastes.setSettings({ badgeSize: 'lg' })
__dshInlinePastes.resetSettings()
适用场景与注意¶
适合谁:经常在 DSH 里写步骤说明、Bug 复现、多图对照的开发者;需要在正文里用稳定文件名指代附件、又希望 hover 快速预览的用户。
权限与安全:插件以当前 DSH 进程与 Web 客户端权限运行,会拦截粘贴、读写 localStorage、注入 DOM 与注册 inputTriggers。安装前应阅读 GitHub 仓库 源码与 MIT 许可证,仅从可信来源安装。
生态说明:DSH 社区插件目录(如 SkillHub 目录页)由社区维护,与 DeepSeek / 幻方无官方从属关系;安装与升级以仓库 README 与发布为准。
其他注意:编号默认按消息重开,不同消息可能出现同名 pic-1.png;跨消息引用时需自行区分。若需要整个会话连续编号,需改 src/client.js 中 DEFAULTS.counterScope 为 'session' 后重新构建(设置页暂未开放此项)。极旧或非 Web 客户端可能看不到设置页,但粘贴、胶囊、预览等仍可能工作。
结尾¶
dsh-inline-pastes 把 DSH 的图片粘贴收成「正文胶囊 + 官方附件」双轨:写消息时点名清晰,发出去后模型侧文件名与 handle 仍对齐,并附带悬浮预览与发送前自检。需要时可从目录页了解概况,从 GitHub 查看完整文档与 issue。
- 目录页:https://www.skillhub.cn/plugins/qgynisc/dsh-inline-pastes
- GitHub:https://github.com/qgynisc/dsh-inline-pastes