Jiong-w-ang
dsh-preview-panel
A multi-tab preview panel plugin for DeepSeek Harness
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
@deepseek-ai/dsh-client-ui-preview
English | 中文
Preview panel for agent-produced artifacts. The browser half registers one entry into the conversation view ring (conversation.view, id preview): it accumulates the files a turn produced (from the mutation tools' render-intent locations, filtered to a preview whitelist) and renders the selected file in a sandboxed surface — HTML in a sandbox-scoped iframe, images and SVG inline, and JSON/Markdown as read-only code. The package is a pure consumer: composing it out of cordis.yml removes the tab at zero cost.
Usage
Compose the package into the client and the preview tab appears beside the chat view:
plugins:
'@deepseek-ai/dsh-client-ui-preview': true
For each turn the panel accumulates files whose render-intent locations end in a whitelisted extension (.html, .htm, .svg, .png, .jpg, .jpeg, .json, .md), deduplicated by path and newest-turn-first. Selecting a file reads it through the host's session.readFile RPC and renders it by MIME:
text/html— asandbox="allow-scripts"iframe; the page's scripts run against an opaque origin and cannot reach the shellimage/png/image/jpeg/image/svg+xml— an inline<img>over a base64 data URLapplication/json/text/markdown/ anything else — a read-only code block (Markdown renders as formatted text)
The host refuses reads outside the session cwd, outside the extension whitelist, or above 20 MiB (5 MiB returns a truncated preview with a warning).
Model Experience
None, as the preview panel renders session data in the browser; nothing here reaches a model request.
KV Cache effect
None; this package neither assembles nor sends a provider request.
Known Limitations and Deferred Work
- File content read is a new host→client RPC — the panel reads produced-file bytes through a
session.readFileremote limited to the session cwd, a preview extension whitelist, and a size ceiling; rendering falls back to a not-previewable notice when the host refuses.