dsh-image-tools:让 DSH 对话里的图片能复制、能下载原图

前言

DSH 里跑智能体,经常会往对话里贴截图、传图片,或者让模型/工具返回图片。这类内容在界面上是能看见的,但你想把那张图存下来并不容易:官方展示层没有随手可用的「复制」「下载」入口,很多时候只能另开截图工具,图像质量打了折,格式也可能被改掉。

dsh-image-tools 就是针对这个痛点的客户端插件。它属于 dsh-plugins-cn 维护的社区插件,分类为客户端,作用是在不改动消息布局的前提下,给 DSH 对话中的图片补上复制和下载原图的能力。下面介绍它的功能、安装方式和适用边界。

这是个什么插件

一句话定位:一个仅接管图片展示层的客户端插件,给对话中的图片提供复制与下载原图两个动作。

它解决的具体问题是:粘贴的截图、上传的图片、助手与工具渲染的图片,都缺少统一的复制/下载入口。

  • 复制得到的图片进入系统剪贴板。
  • 下载得到的文件保留原始字节与格式,jpg 还是 jpg,不转码、不压缩。
  • 插件只接管图片展示层,不改变消息布局;按README 的说法,卸载后官方表现立即恢复。

核心功能

插件覆盖三类交互入口:

1、在缩略图上右键,出现「复制图片 / 下载原图」。
2、鼠标悬停缩略图时,右上角浮出两个小圆钮。
3、点开预览后,底部工具条提供同样的两个动作。

实现上,插件接管四个图片插槽:

  • conversation.chat.user.images
  • conversation.chat.message.images
  • tool.call.images
  • conversation.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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜