前言¶
DSH 里跑智能体,经常会往对话里贴截图、传图片,或者让模型/工具返回图片。这类内容在界面上是能看见的,但你想把那张图存下来并不容易:官方展示层没有随手可用的「复制」「下载」入口,很多时候只能另开截图工具,图像质量打了折,格式也可能被改掉。
dsh-image-tools 就是针对这个痛点的客户端插件。它属于 dsh-plugins-cn 维护的社区插件,分类为客户端,作用是在不改动消息布局的前提下,给 DSH 对话中的图片补上复制和下载原图的能力。下面介绍它的功能、安装方式和适用边界。
这是个什么插件¶
一句话定位:一个仅接管图片展示层的客户端插件,给对话中的图片提供复制与下载原图两个动作。
它解决的具体问题是:粘贴的截图、上传的图片、助手与工具渲染的图片,都缺少统一的复制/下载入口。
- 复制得到的图片进入系统剪贴板。
- 下载得到的文件保留原始字节与格式,jpg 还是 jpg,不转码、不压缩。
- 插件只接管图片展示层,不改变消息布局;按README 的说法,卸载后官方表现立即恢复。
核心功能¶
插件覆盖三类交互入口:
1、在缩略图上右键,出现「复制图片 / 下载原图」。
2、鼠标悬停缩略图时,右上角浮出两个小圆钮。
3、点开预览后,底部工具条提供同样的两个动作。
实现上,插件接管四个图片插槽:
conversation.chat.user.imagesconversation.chat.message.imagestool.call.imagesconversation.trajectory.images
它以 priority: 10 覆盖官方 priority: 100 的注册,因此能替换官方的图片渲染。预览层、右键菜单与 toast 统一注册在 shell.overlay(list / root)。
原图来源是 props.loadImage(attachment) 返回的 blob URL,与 session.readAttachment 使用的是同一份字节;也就是说复制和下载拿到的是原始数据,而不是重新编解码的结果。
插件不读官方 DOM、不向 document.body 追加节点、不 require 其他 Client 包,只用 --dsw-* 主题 token。
安装与启用¶
README 给出的安装方式是通过仓库里的 install.ps1。先做一次环境检查:
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Profile imagecheck
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Doctor -Profile imagecheck
上面这条 -Doctor 命令用于检查安装环境。确认无误后,装到日常 profile(会写 profile 的 node_modules 与 package.json,需要重启 DSH 生效):
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Profile desktop
需要回滚时:
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Rollback -Profile desktop
安装命令原文来自 README,不要替换成其他包管理器命令;imagecheck / desktop 均按 README 原样保留。
典型用法¶
插件没有独立的运行时命令,装好并重启 DSH 后即可使用。
1、在对话里粘贴一张截图,或让助手/工具产出一张图片。
2、把鼠标悬停在缩略图上,右上角出现两个小圆钮,点击复制或下载。
3、或者右键缩略图,选择复制图片/下载原图。
4、点开大图预览,底部工具条同样能复制、下载。
下载得到的是原始文件;复制得到的图片进入系统剪贴板,可直接粘到编辑器、IM 或文档里。
本地开发与验证:
npm run check
npm test
npm run pack:dry
npm run check 做语法与 manifest 校验,npm test 跑测试,npm run pack:dry 预览打包产物。设计稿与验收记录放在仓库的 docs/ 目录。
适用场景与注意¶
适合这类开发者:需要在 DSH 对话里频繁处理截图、模型生成图,并要求拿到未压缩、未转码的原始图片。它只做展示层的图片操作,不涉及消息收发逻辑。
需要注意的几点:
1、插件以当前 dsh 进程的权限运行,安装前应先检查源码与许可证。本插件许可证为 MIT。
2、只处理消息图片。非图片附件(PDF/Office/zip)仍是官方静态卡片,本插件不覆盖;侧栏预览里的工作区图片也不在范围内。
3、Markdown 外链图片(http/https)保留浏览器默认行为,不受影响也不被接管。
4、GIF 复制到剪贴板会变成静态 PNG(Chromium 剪贴板只接受 PNG),下载仍保留原 GIF。
5、超大图(单边大于 16384,或面积大于 2.68 亿像素)会跳过复制,请改用下载。
结尾¶
dsh-image-tools 把「复制、下载对话图片」这件事补全了,代价很小:只接管图片展示层,不碰消息布局,卸载后即恢复官方表现。对需要在 DSH 里处理大量截图的开发者来说,是一个够用的小插件。
目录页:https://www.skillhub.cn/plugins/dsh-plugins-cn/dsh-image-tools
源码与文档:https://github.com/dsh-plugins-cn/dsh-image-tools