dsh-image-preview
开发工具 活跃维护

dsh-image-preview

leonardoxr/dsh-image-preview

轻量插件支持read_image操作直接内联预览待处理图片,无需跳转页面即可查看图像内容,无多余依赖,安装后自动生效,简化图像类任务的交互流程。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
78 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:leonardoxr/dsh-image-preview
git clone https://github.com/leonardoxr/dsh-image-preview.git
git clone git@github.com:leonardoxr/dsh-image-preview.git
README.md main

dsh-image-preview

English | 简体中文

Inline image previews for the built-in DeepSeek Harness read_image tool.

The plugin uses DSH's public, session-scoped tool.call.toolview slot. Because the official tool tree dispatches nested subcalls through the same slot, one renderer covers both:

  • direct read_image calls; and
  • tools.read_image(...) calls nested inside run_code Code Mode.

Every loaded preview includes Copy image with visible success or failure feedback. PNG bytes are copied directly when supported; other accepted formats are converted to PNG in-browser when necessary.

Security and lifecycle

  • Bytes are fetched only through ctx.sessions.binding(sessionId).session.readAttachment(attachmentId).
  • The model-supplied file path is display/navigation metadata only and is never reread by the browser plugin.
  • Only authenticated PNG, JPEG, WebP, and GIF attachment responses are rendered.
  • Blob URLs are revoked on replacement, retry, unmount, and HMR disposal.
  • Clipboard copies use the same authenticated attachment blob; bounded in-browser conversion never rereads the model-supplied path or adds a network fallback.
  • Malformed/legacy results and attachment RPC failures degrade to a bounded inline error with no filesystem or network fallback.

Settings

The plugin contributes an Image previews card under DSH Settings → Plugins with two live, persisted options:

  • Enable inline previews — disabling it removes the custom renderer and restores DSH's generic tool row.
  • Open previews automatically — when disabled, each image starts collapsed and loads only after Show preview is clicked.

Development

pnpm install
pnpm check

The package follows the official Harness plugin guide: it exports a function-form host plugin, declares a dsh.bundle patch, exposes a Web client entry, declares its injected public packages, and owns explicit cleanup through lifecycle effects.

Install into a profile

A tarball avoids git-build permissions and is robust when the checkout path contains spaces:

pnpm pack --pack-destination "$HOME/.dsh/packages"
dsh plugin --profile web add "$HOME/.dsh/packages/dsh-image-preview-0.3.0.tgz"
dsh --profile web --dump-config

The install command adds the package dependency and appends dsh-image-preview to the profile's ordered bundle list. Refresh the page after the running Web profile has loaded the new bundle; a first-time host mount requires an operator-approved Web restart.