Crosery/dsh-viewer
Inline file viewer for DeepSeek Harness: renders images, video, audio, PDF, Office documents and local web pages in the conversation.
dsh-viewer replaces the read-then-see gap with one display_file tool that puts images, video, audio, PDF, Office documents and local web pages inline in the DeepSeek Harness conversation on both the web and the desktop app, with real players rather than a filename and byte count. It covers 36 file extensions across 6 render kinds — images with click-to-zoom, seekable <video>, <audio>, an embedded PDF viewer, documents converted to PDF, and sandboxed HTML — and anything else still gets a card with its type, size and an open link. On an image-capable model route a png/jpg/jpeg/webp/gif also enters model context, so one call both shows the file and lets the model see it. Bytes reach the page through a signed HTTP route (the host HMAC-signs the resolved absolute path with a per-harness key and the route never accepts a path from the browser) or the durable attachment store as fallback, and the route streams with createReadStream. Converted PDFs are cached in $DSH_HOME/.dsh-viewer-cache/ with a bounded, LRU-pruned size.
Install
dsh plugin --profile web add github:crosery/dsh-viewerCopied verbatim from the README's 'Install' section, which installs from GitHub. After adding, the README says to add the package name to dsh.profile.bundles in your profile's package.json and restart the profile, because bundle membership changes do not hot-reload. The repository ships its built halves (no build step and no allowBuilds entry needed); a pinned release-tarball install (https://github.com/Crosery/dsh-viewer/releases/latest/download/dsh-viewer.tgz) and a desktop-app install path are also documented. Harness 0.1.7+ (desktop app included) needs 0.2.0 or later, and 0.0.1 / 0.1.0-rc.2–rc.7 need 0.2.1 or later.
Compatibility
DeepSeek Harness, Web and desktop. The README's compatibility table says Web (dsh --profile web) works on every published version 0.0.1-rc.1 through 0.2.1-alpha.1, and the desktop app on 0.1.7-rc.2 (its only channel, nightly). It registers as a standard bundle whose built halves are shipped; the desktop app installs via Plugins → Add plugin with the tarball URL because the dsh CLI refuses the desktop profile. Office conversion uses the harness's bundled converter from 0.1.6-alpha.2 on, or LibreOffice on PATH for older trains and rtf/OpenDocument.
Details
- Repo: Crosery/dsh-viewer
- Category: Web UI Enhancements
- Stars: 7
- Version: GitHub repo Crosery/dsh-viewer; npm package @crosery/dsh-viewer; MIT © Crosery. The README discusses plugin versions 0.1.1, 0.2.0 and 0.2.1 in its compatibility notes but does not state a single current version.
FAQ
- Does the desktop app install the same way as the web profile?
- No. On the desktop app, open Plugins → Add plugin and paste the release tarball URL (https://github.com/Crosery/dsh-viewer/releases/latest/download/dsh-viewer.tgz), because the dsh CLI refuses the desktop profile ('profile "desktop" is managed exclusively by the Electron application'). Upgrading an installed plugin there needs an app restart.
- How is the asset route secured?
- The route never accepts a browser-supplied path: at tool time the host signs the resolved absolute path with a per-harness HMAC key (32 random bytes at $DSH_HOME/.dsh-viewer-asset-key, mode 0600) and the route honours a path only after the MAC verifies. Tampering, key swaps or unsigned URLs all return 404, and 'not signed by us' and 'signed but the file is gone' return the same status so a probe cannot learn whether a file exists.
- Which file kinds can the plugin render?
- 36 extensions across 6 kinds: images (png, jpg, jpeg, webp, gif, svg, avif, bmp, ico, apng), video (mp4, m4v, webm, ogv, mov), audio (mp3, m4a, aac, wav, flac, ogg, oga, opus), PDF, Office documents (docx, doc, rtf, odt, xlsx, xls, ods, pptx, ppt, odp), and HTML pages. Anything else still gets a card with its type, size and an open link.
Alternatives
linkingoscar/dsh-attachment-formats · fayelin12/dsh-office · HuanLinOTO/dsh-plugin-better-sidebar-plugin-office