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.
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)
- Open Plugins → Add plugin in DSH.
- Paste this line into Package name or address, then select Install:
dsh-image-viewer@0.1.9
- 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.
Links
More in this category
liustack/modlens★ 4239
Vision bridge for text-only models: paste an image, get structured JSON evidence (OCR, layout, semantics).
ysr666/dsh-vision-router★ 1148
Free vision for text-only agents: built-in keyless vision chain plus pixel tools (Q&A, grounding, crop, pixel diff, colors, OCR, SVG trace, cutout, screenshots); paste an image to use it.
Anionex/dsh-vision-toolkit★ 889
Vision for text-only models: paste an image and the model switches to a Vision Toolkit variant for image Q&A, multi-image comparison, long-screenshot OCR, screenshot-to-UI reproduction, element grounding, and pixel diff. No API key by default — images are processed by the author-hosted free service, 100 per machine per day; configurable to your own provider.
dickpy/dsh-imagegen★ 113
AI image generation for the DSH Web GUI: text-to-image and image-to-image through a configurable OpenAI-compatible endpoint (gpt-image-2 / gpt-image-1 / dall-e-3), with an api_url/api_key settings card and a sidebar split-pane generation studio.
fandc520/dsh-comfyui★ 110
Drive a local or remote ComfyUI server from DeepSeek Harness: comfyui_run / comfyui_object_info / comfyui_workflow tools generate and edit images and videos, with a workflow library (graph extraction: per component / main flow / all), a load area with resolution auto-match, a live queue, SDXL and Wan 2.1 templates, a companion skill, and a same-origin media proxy.
sunxin-ai/dsh-design-qa★ 44
Design-fidelity QA for text-only models: a `deepseek_vision` tool borrows an eye from any OpenAI-compatible vision route, so the model can judge whether an implementation matches its mock — shipped with the benchmark behind that judgement (four fixtures, 23 injected defects, raw transcripts) and the questioning discipline it depends on.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.