DeepSeek Harness Plugin

WSL043/dsh-image-viewer

Stars ★ 1 Downloads (30d) 7,780 Category Vision & Multimodal Added 2026-08-30 npm dsh-image-viewer

Upgrades DSH image viewing with pointer-centered zoom, pan, galleries, downloads, keyboard support, and inline region notes.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-image-viewer

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:WSL043/dsh-image-viewer

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

DSH Image Viewer

A lightweight viewer for zooming, browsing, downloading, and annotating images already shown by DSH.

CI

中文 · Install · Privacy

Features

  • Pointer-centered zoom, drag, touch pinch, double-click 100%, fit/original-size controls, keyboard navigation, and multi-image galleries.
  • Shows filenames, dimensions, and scale; large images can reach 100% and stay visible when the window is resized.
  • Original-file downloads show available progress and can be cancelled or retried; switching images or closing the viewer cancels a download.
  • Clear loading and retryable error states; image changes reset gestures and keep annotations separate.
  • Mark image regions and edit notes beside their numbered markers. Enter saves; Shift+Enter adds a line.
  • Closing an annotated native DSH image adds its numbered PNG and notes to the current draft without sending or duplicating them; failures remain retryable.
  • DSH light/dark themes, responsive layout, focus containment, and reduced-motion support.

Install

DSH-Portable ships with this plugin preinstalled. Enable or uninstall it on the Plugins page; other DSH users can install it below.

Plugin page (recommended)

  1. Open Plugins → Add plugin in DSH.
  2. Paste this line into Package name or address, then select Install:
dsh-image-viewer@0.1.9
  1. Follow the result shown on the page; refresh or restart only when requested.

Version 0.1.9 supports DSH cores 0.2.1-alpha.2, 0.2.1-alpha.1, and 0.2.0-rc.2.

Terminal (optional)

For official DSH Desktop, install its bundled command through Manage dsh Command…; after initialization, fully quit the app before using --profile desktop. DSH-Portable 0.x and the Web profile use --profile web.

dsh plugin --profile desktop add dsh-image-viewer@0.1.9
dsh plugin --profile web add dsh-image-viewer@0.1.9

After a terminal operation, restart the corresponding profile as prompted by the host.

Update and uninstall

Update or uninstall from the Plugins page. If no update action is offered, enter the target package@version under Add plugin. To uninstall from a terminal, run dsh plugin --profile web remove dsh-image-viewer; for official Desktop, quit the app and use the desktop profile as described above.

Uninstalling restores DSH's built-in image viewer and does not delete conversations or images.

Privacy

The plugin reads only image URLs already rendered by DSH; it does not call a model or read provider credentials. Annotations use DSH's attachment and draft APIs, leaving the decision to send with the user. Reopening an image in the current page may retain its note; this does not mean it was sent or permanently stored.

Support

Use the bug report form with the plugin/DSH versions, operating system, image location, and failed action. Do not include private images, credentials, or full session logs. Report security issues privately through GitHub Security Advisories.

License and quality

MIT. Each declared core is checked in the live interface.

Developers

When calling nativeImageViewer.open(), download.onInvoke receives { item, src, signal, onProgress }. Pass signal to the download request and report bytes with onProgress({ loaded, total }); omit total when the size is unknown. Custom transfers must honor signal to support cancellation. Download authorization and original-file checks remain the image provider's responsibility.

简体中文 · Awesome DSH listing · Chat Manager

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.