前言¶
在 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。
插件页¶
- 打开 插件 → 添加插件
- 填入:
github:NingYuanLee/dsh-image-viewer-pro
- 按提示刷新或重启 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、自定义指令中加入规则,要求智能体一律内联,例如:
## 图片
- 你产生、找到或提到的图片(包括截图)一律内联:``。
- 不等用户开口就给图。不要只回一个路径,也不要只放 `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 包安装。