dsh-chat-image-lightbox

uitested: passnpmMIT

Full-screen lightbox for chat images: click any image to open the full-resolution original with zoom (wheel, buttons, shortcuts), drag panning, prev/next paging, filename caption and download, plus keyboard-arrow and touch-swipe navigation. One "image display control" popover next to the composer co

下载量 / Downloads
1,875
依赖体积 / node_modules
438.66 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-chat-image-lightbox

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

DSH Chat Image Lightbox 🖼

### 🛡 v1.8.9 — 工具行折叠 ≠ 已发送:铁律升级为「必须复述 + 计数自检」 / Collapsed tool row ≠ delivered
实测事故(2026-10-21):插件 20 张图(10 种格式)全部交付成功,但模型把图全留在 display_image 的工具结果里,
正文只写了一张格式对照表 → 用户回「一张没看见啊」。原因是 1.7.8~1.8.8 的铁律只写了「不得只依赖工具行」,
可以被「正文写了字但没写图」绕过。
1.8.9 起铁律升级为 6 条硬约束 + 1 条收尾自检:必须把工具返回的 ![](…) 原样复述进正文、
表格/结论/清单都不算图、发前数一遍正文里 ![ 的数量必须等于声称的张数。
Opt out with config.injectImageLaw: false.
Real incident (2026-10-21): all 20 images were delivered fine, but the model left every one of them inside the
collapsed tool result and only wrote a format table in the body — the user replied "not a single one visible".
Since 1.8.9 the rule demands verbatim echoing of the returned markdown into the reply body, forbids passing a
table off as an image, and requires a pre-send count of ![ occurrences.
### 🛠 v1.7.5 — 发图片失败已修复 / Image-sending bug fixed
如果你在 DSH 里发图片失败(报 prompt rejected + ERR_DLOPEN_FAILED + session/agent-busy,纯文字正常),
那是 1.7.4 及更早的已知问题,1.7.5 已修复。升级 + 重启 DSH 即可:
```sh
pnpm add dsh-chat-image-lightbox@latest
```
原因:本插件旧版把 sharp 精确锁在 0.34.4,与 DSH 内核的 ^0.35.3 冲突,两个版本争抢同名 libvips-42.dll。
详见 Release v1.7.5 · 排查见 [⑥ 发图失败](#发图片时提示-sessionagent-busy-errdlopenfailed175-已修复) 与 [Troubleshooting ⑥](#sending-an-image-fails-with-sessionagent-busy-errdlopenfailed-fixed-in-175)。
If sending an image fails with those errors (plain text works fine), it is a known issue in 1.7.4 and earlier, fixed in 1.7.5. Upgrade and restart DSH. Cause: the old version pinned sharp to 0.34.4, conflicting with the kernel's ^0.35.3 over the same-named libvips-42.dll.

对话里的图,值得被认真看。

Images in chat deserve a proper look.

[English](#english) | [中文](#中文)

📦 npm 包名 / npm package name:dsh-chat-image-lightbox(无 scope / unscoped)
旧包名 @loyalchiiina/dsh-chat-image-lightbox 已被取代,历史版本已标记弃用。
The legacy scoped name @loyalchiiina/dsh-chat-image-lightbox is superseded; its older versions are deprecated.
dsh plugin --profile desktop add dsh-chat-image-lightbox
当前版本 / Current version:1.8.9
适用内核 / Requires:本包声明 engines.dsh: ">=0.1.7-0 <0.3.0" 与 peerDependencies["@deepseek-ai/dsh"]: ">=0.1.7-0 <0.3.0"(带世代上界,因为 peer 是运行时门禁,不匹配会被宿主直接禁用);本版实测验证于 DSH NEXT 2.0.19-next,客户端组件 @deepseek-ai/dsh-client-ui-tool 实测 0.2.1-rc.2。
This package declares engines.dsh: ">=0.1.7-0 <0.3.0" and peerDependencies["@deepseek-ai/dsh"]: ">=0.1.7-0 <0.3.0" (bounded by generation, because peers are a runtime gate: a mismatch makes the host disable the plugin outright); this release was verified end to end on DSH NEXT 2.0.19-next, with @deepseek-ai/dsh-client-ui-tool measured at 0.2.1-rc.2.
⚠️ 升级到 1.7.3 前请注意 / Before upgrading to 1.7.3
1.7.2 起 移除了「跳图」功能(该功能在多次迭代中不够稳定,已整体删除,界面上不再出现 ⌖ 按钮)。
Since 1.7.2 the jump-to-image feature was removed — it proved unreliable across iterations and has been deleted outright; no ⌖ button appears anymore.

效果预览 · Screenshots

灯箱查看 · Full-screen lightbox

点开正文里任意一张图即全屏灯箱:原图按屏幕高度自适应,右下角标注当前是第几张(如「图4」)。
右侧竖排工具栏自下而上依次是:✕ 关闭、⬇ 下载、‹ › 上一张 / 下一张、复制、在文件夹中显示、
缩略图网格、隐藏图片、− + 1×(缩小 / 放大 / 复位比例)、↑ ← ↺ → ↓(上移 / 左旋 / 复位 / 右旋 / 下移),
底部显示当前缩放百分比。

切换图片 · Paging between images in the same message

同一条消息里的多张图可以连续翻页(截图里是 30 张的第 21 张)。红色箭头指的是右侧的 ‹ › 两颗按钮,
也可以用键盘方向键翻页;翻页后计数(如「21 / 30」)与缩放比例同步刷新。

缩略图分列 · Thumbnail grid with adjustable columns

3 列 · 3 columns

4 列 · 4 columns

5 列 · 5 columns

一键把整个会话的图片收成网格;面板里的「缩略图显示列数」可设 1–12 列,输入即生效并保存为默认值。
每格高度统一、object-fit: contain 居中,所以竖图横图混排也不会参差不齐;网格之后的正文从最左侧开始,不会被挤到中间。

隐藏 / 展开 · Hide / restore

一键隐藏所有图片,并把它占的空间完全收掉(不会留下空白带);再点一下原样恢复。
One click hides every image and closes up the space it occupied (no blank band left); another click restores everything.

功能总览 · At a glance(中英对照 / Bilingual)

灯箱查看 · Lightbox viewer

中文 · English

点击任意对话图片进入全屏灯箱 · Click any chat image for a full-screen lightbox

滚轮缩放、拖拽平移 · Wheel zoom, drag to pan

工具栏缩放按钮 ⊕ ⊖ 与 1× 复位 · Toolbar ⊕ / ⊖ zoom buttons with 1× reset

方向键平移视角(按住连续移动) · D-pad moves the view (press-and-hold repeats)

左右翻页:按钮 / 键盘 / 触屏滑动 · Prev/next via toolbar, keyboard or swipe

下载原图(自动识别扩展名) · Download original (extension auto-detected)

复制图片文件绝对路径 · Copy the image's absolute local path

在文件夹中显示(资源管理器定位) · Reveal in folder (file manager locates the file)

会话级图片控制 · Conversation-wide controls

工具行里的 「对话图显控制」 按钮打开面板,面板内含三项:

The "对话图显控制" button in the composer row opens a panel with three controls:

中文 · English

缩略图:一键把整个会话的图片收成网格 · Thumbnail: collapse every image in the conversation into a grid

缩略图显示列数:1–12 可调,改过即存为默认值 · Columns per row: 1–12, and your value is saved as the default

隐藏:一键隐藏 / 再点恢复,不留空白 · Hide: hide / restore all images, leaving no blank space

列数说明:默认 3 列。设置后会记住,下次启动仍用该值;改回其他值即覆盖默认。
Columns: 3 by default. The value is remembered across restarts; changing it again simply replaces the stored default.

格式与清晰度 · Formats & fidelity

中文 · English

TIFF/TIF、HEIC 自动转换显示 · TIFF/TIF, HEIC auto-transcode for display

TIFF/PNG/BMP 无损原像素(逐像素零误差) · TIFF/PNG/BMP lossless, native pixels (bit-exact)

2 亿像素大图流畅显示 · 200-megapixel images display smoothly

11 种格式实测支持(JPG/PNG/WebP/GIF/AVIF/SVG/BMP…) · 11 formats verified (JPG/PNG/WebP/GIF/AVIF/SVG/BMP…)

网图被防盗链拦截时自动转存本地显示 · Hotlink-protected remote images are auto-saved locally

宿主侧工具 · Host-side tool (display_image)

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::8,最后更新 2026-10-24

Links

GitHub · Homepage · npm

Same category