dsh-image-viewer-pro:DSH 会话内图片查看器

前言

在 DeepSeek Harness(DSH)里和智能体协作时,截图、工具返回的缩略图、正文里的 Markdown 图会不断出现在聊天区。DSH 0.2.1-rc.2 自带的图片预览只提供「关闭」:无法放大看细节、不能在同一会话的多张图之间切换,也不便下载或复制。对需要核对 UI、读小字标注、对比多张截图的开发者来说,这往往要多开外部工具。

下面介绍社区插件 dsh-image-viewer-pro(维护者 NingYuanLee)。它在捕获阶段接管内容图片的点击,用自绘弹层替换官方预览,不依赖官方 slot 契约。插件归类为客户端,当前在 GitHub 上星标为 0;许可证为 MIT,package 版本为 0.1.5。

这是什么

dsh-image-viewer-pro 是面向 DSH 聊天内图片的查看器:缩放、平移、旋转、图集浏览、下载原图、复制到剪贴板、拖动弹窗,以及用本机已安装的应用打开本地文件。它只改善「看得清」,不会让图片凭空出现——图片仍须由智能体内联 Markdown 或经附件通道渲染。

生态上,DSH 强调「一切皆插件」;SkillHub 目录页 是社区收录站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

查看与交互

  • 缩放:滚轮以指针为中心缩放(鼠标一格约 12%);底栏 − [百分比] + 可编辑百分比;键盘 + / - 为 25% 步进;倍率限制在 5%–4000%。
  • 平移:拖动画布;双击在「适应窗口」与「原始大小(1:1)」之间切换。
  • 旋转:左右按钮每次 90°,底栏显示当前角度;快捷键 R / Shift+R。
  • 图集:同一会话内多张图用侧栏圆按钮或 ← / → 切换,显示 当前 / 总数。
  • 顶栏信息:宽 × 高 | 格式 | 文件大小(格式大写,大小自动换算 B/KB/MB)。

导出与打开

  • 下载原图:带进度,保存到系统下载目录。
  • 复制图片:写入剪贴板(非 PNG 会转为 PNG)。
  • 打开:本地文件为分体按钮(默认应用 + 关联应用列表 +「显示文件位置」);远程 http(s) 为新标签打开;blob:、data: 不显示该按钮。

窗口与观感

  • 拖标题栏移动弹窗,位置限制在遮罩内(桌面端避开原生标题栏/菜单栏区域)。
  • 遮罩与弹层使用 DSH 主题令牌,跟随亮/暗主题,并尊重 prefers-reduced-motion。

滚轮、拖动和旋转在合成层上按帧更新;下一张图先解码再显示,减轻切图时比例闪烁。

覆盖哪些图片

场景 是否接管
正文 Markdown 图(![](...),http(s) 或本站文件路由) 是
用户/助手消息附件(blob: URL) 是
read_image 等工具结果图片 是
小于 48px 的图标、头像、状态图 否
插件弹层自身图片 否

接管仅作用于点击:不修改消息内容、不写会话数据,关闭后页面恢复原样。

安装与启用

本插件为纯 JavaScript 的 DSH bundle(package.json 声明 dsh.bundle),无需构建。声明的运行环境为 engines.dsh: >=0.2.1-rc.2 <0.3.0-0、engines.node: >=22.19.0。装完后刷新页面即可;首次加载新插件建议重启一次 DSH。

插件页

  1. 打开 插件 → 添加插件
  2. 填入:
github:NingYuanLee/dsh-image-viewer-pro
  1. 按提示刷新或重启 DSH。

命令行

Web 端(dsh web 使用的 profile):

dsh plugin --profile web add github:NingYuanLee/dsh-image-viewer-pro

桌面端:

dsh plugin --profile desktop add github:NingYuanLee/dsh-image-viewer-pro

将 --profile 换成你实际启动的 profile 名。也可安装 Release 预打包产物:

dsh plugin --profile web add https://github.com/NingYuanLee/dsh-image-viewer-pro/releases/latest/download/dsh-image-viewer-pro.tgz

卸载示例:

dsh plugin --profile web remove dsh-image-viewer-pro

典型用法

验证插件是否生效

对着能打开的页面让智能体「截个图并内联出来」。回复里出现图片后点击,若弹出带缩放底栏的自绘弹层而非仅「关闭」,即表示插件已接管。

让会话里真的有图

查看器不负责生成图片。可在全局或项目 AGENTS.md、自定义指令中加入规则,要求智能体一律内联,例如:

## 图片

- 你产生、找到或提到的图片(包括截图)一律内联:`![说明](<D:/绝对/路径.png>)`。
- 不等用户开口就给图。不要只回一个路径,也不要只放 `present` 文件卡片——图片是回复的一部分。
- 用绝对路径、正斜杠,并用尖括号包住目标地址。
- 网络图片先下载到工作区,再内联本地文件。

DSH 通过 GET /api/file?path=<绝对路径> 提供正文里的本地图;官方文档说明该路由需要 HTTP(S) 页面,桌面 dsh-app: 页面不支持。相对路径仅在当前会话有 workspace root 时才能解析。

常用快捷键

按键 作用
Esc 关闭
+ / =、− 放大 / 缩小
0、1 适应窗口 / 1:1
R、Shift+R 顺/逆时针 90°
← / → 上一张 / 下一张
双击 适应窗口 ↔ 1:1

适用场景与注意

适合谁:经常在 DSH 里看截图、设计稿、工具返回图片的开发者;需要会话内多图对比、下载原图或复制到别处编辑的用户。

权限与安全:与其它 DSH 插件一样,客户端逻辑在 DSH 进程/Web 渲染层内运行。安装前建议阅读仓库源码与 MIT 许可证;README 说明插件不发起第三方网络请求、不读取模型凭据,下载/复制仅针对当前图片。

已知限制(来自官方 README):远程跨域图若未开放 CORS,下载可能改为新标签打开,复制可能退化为复制链接;图集统计当前会话滚动区内已渲染的图片,极端虚拟滚动下只能浏览已挂载项;仅适配 Web GUI 与桌面端(同为 Web 渲染层)。

打开本地文件依赖 Host 的 remote / remote.session;服务不可用时相关操作会提示,其它功能仍可用。

结尾

dsh-image-viewer-pro 用一层完整的查看器替换「只能关闭」的官方预览,并把同会话多图浏览、下载与复制收进同一弹层。若你已在用 DSH 0.2.1-rc.2 及以上(且低于 0.3.0),可按上文命令从 GitHub 源或 Release 包安装。

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

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

小夜