NingYuanLee/dsh-image-viewer-pro ↗★ 0

dsh-image-viewer-pro

提供缩放、旋转和下载功能的图片查看器 适合经常在DSH聊天中查看、保存和浏览多张图片的用户。

包名
dsh-image-viewer-pro
兼容性
待验证
版本
0.1.2
许可证
MIT
最近更新
2026年10月18日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:NingYuanLee/dsh-image-viewer-pro

dsh-image-viewer-pro

给 DeepSeek Harness 换一个真正能用的图片查看器。

官方点击图片后只有一个「关闭」按钮 —— 看不清、不能放大、不能下载。本插件接管聊天里所有内容图片(Markdown 图、附件图、read_image 结果),换成带缩放、平移、旋转、下载、复制和图集浏览的弹窗。

预览

工具条

功能

  • 缩放:滚轮以指针为中心缩放;底部 − [百分比] +,百分比可直接输入(回车生效,Esc 取消);长按 ± 连续调整。
  • 平移:拖动图片平移;双击在「适应窗口 / 原始大小」之间切换。
  • 旋转:每次 90°,用于看竖拍/横拍。
  • 下载原图:带进度提示,完成后保存到系统下载目录。
  • 复制图片:写入剪贴板(自动转 PNG)。
  • 图集浏览:同一会话里的多张图可用左右圆形按钮或 ← / → 切换,显示 当前 / 总数。
  • 用默认应用打开:本站图片交给系统默认应用打开(图片查看器),远程 http(s) 图片交给默认浏览器。
  • 原生观感:遮罩用 DSH 的主题令牌,弹窗跟随亮/暗主题;顶部让出窗口功能按钮,不会被挡。

快捷键

按键作用
Esc关闭(输入框聚焦时先退出输入)
+ / =放大
-缩小
0适应窗口
1原始大小(1:1)
R旋转 90°
← / →上一张 / 下一张
双击适应窗口 ↔ 原始大小

安装

方式一:DSH 插件页

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

方式二:命令行

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

桌面端修改 profile 后需要重启 DSH 才能加载新插件。

卸载

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

或在插件页停用 / 移除。卸载后恢复 DSH 官方预览,不会删除任何会话或图片。

兼容性

  • 已在 DSH 0.2.1-rc.2(Web GUI / 桌面端)实机验证。
  • 实现方式是捕获阶段接管 `` 点击 + 纯 DOM 弹层,不依赖官方 slot 契约,因此对图片位调整不敏感。
  • 需要 remote / remote.session 服务(用于「用默认应用打开」);服务不可用时该按钮退化为提示。

与 DSH 插件规范的对齐

按官方《打包与安装插件》《添加 workspace 包》与社区 awesome-dsh-plugin 收录要求自查:

要求状态
package.json 声明 dsh.bundle(可被 dsh plugin add 安装)✅ dsh.bundle.patch
仓库根提供 cordis.patch.yml,行名与包名一致✅ name: dsh-image-viewer-pro
声明支持的 DSH 版本✅ engines.dsh: >=0.2.1-rc.2 <0.3.0
插件元信息(标题/描述/图标)✅ locale/{zh,en}.json + icon.svg,并导出 ./package.json 与 ./locale/*.json
无构建步骤即可安装(GitHub 源安装不触发 prepare,无需 allowBuilds)✅ 纯 JS,已实测 dsh plugin add github:...
Web 样式规范(语义 token、elevation 与 border 不配对、正圆 corner-shape、减少动效)✅ 见 client.js 的 CSS 常量
真实可用代码✅ 冒烟测试 + 实机验证

开发

git clone https://github.com/NingYuanLee/dsh-image-viewer-pro.git
cd dsh-image-viewer-pro
npm test

本地联调:把本目录以 link: 依赖装进 profile,改完刷新页面即可(首次加载新插件需重启一次)。

目录说明:

文件作用
client.js浏览器侧全部逻辑(图标、弹窗、手势、下载、复制)
index.jsHost 侧占位入口,让包成为可被 Loader 扫描的 bundle
cordis.patch.yml向 profile 插入 Loader 条目
test/smoke.test.cjs纯函数冒烟测试(缩放边界、适配比例、文件名、注入声明)

隐私

  • 不发起任何第三方网络请求,不读取模型凭据。
  • 下载 / 复制只操作当前图片;「用默认应用打开」通过 DSH Host 的本地能力完成。

已知限制

  • 图标为 16px 内联 SVG,1:1 数字在小尺寸下略密。
  • 仅适配 DSH Web GUI 与桌面端(同为 Web 渲染层)。

License

MIT © 2026 NingYuanLee