Adds a produced-files card row to the chat and a resizable split-screen preview panel for workspace artifacts (Markdown, source code, CSV, JSON, images, HTML), plus a localhost port preview.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-artifact-preview
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:nirvanaslash/dsh-artifact-preview
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
Codex-style artifact preview for DeepSeek Harness (DSH).
dsh-artifact-preview is a client plugin (dsh.client.platform: "web") that makes produced files visible and inspectable right in the chat:
- Produced-files row in chat — after the agent writes files, the closing message shows a "产物" row with file chips and inline image thumbnails; clicking any of them opens the side preview.
- Split-screen side preview panel — a resizable right-hand panel (real split, conversation stays visible and unobstructed) rendering:
- Markdown → rich text (headings, tables, lists, code fences, links, images; relative local images resolve automatically)
- Source code (
.py .js .ts .sh .css …) → dark syntax highlighting - CSV → HTML table
- JSON → collapsible tree
- Images (
.png .jpg .gif .webp .svg …) → checkerboard-backed centered view - HTML / localhost ports → iframe (with port chips for dev servers, URL bar, back/forward/reload, open-external)
- Global hooks (
window.__dshOpenFilePreview/__dshCanPreviewPath) so other plugins can route "open file" intents into the preview panel.
Install
From GitHub (the package declares dsh.bundle + dsh.client, so dsh plugin add installs the dependency and auto-registers the preview as an active client-plugin layer — no manual profile editing):
dsh plugin --profile web add github:nirvanaslash/dsh-artifact-preview
Restart the dsh web service (or DSH Desktop) and refresh the page.
Once the package is published to npm, dsh plugin --profile web add dsh-artifact-preview and the Marketplace search path work the same way.
Prerequisites
- DSH Desktop (or a
dsh webprofile that has thedsh-file-changescompanion installed) — the preview fetches file content through its/dsh-files/static/<absolute-path>route. On DSH Desktop this route is built in; on a baredsh webinstall add thedsh-file-changescompanion first. - A model that produces files via
write/edit-style tools (that is how a turn's "produced files" are tracked).
Compatibility
- Built for DSH
0.1.0-rc.7(bundled in DSH Desktop 2.0.1) client plugin ABI:window.__ModuleLoader__module format,dsh.clientmetadata,dsh.bundlepatch registration, and theconversation.chat.turnTailchain slot. Chain-slot election relies on lowpriority(-100) to win the produced-files row over the official deliverables row; verify behavior after DSH upgrades.
Known boundaries
- The chat row and preview panel are fully self-contained in this package.
- Two optional behaviors are not bundled because they require patching DSH core files (intentionally left out of a public package): multi-type preview buttons in the file view, and "open → preview" for file-name mentions inside message prose. Without them, file-view preview keeps DSH's original HTML-only behavior and prose mentions open with the system app.
License
MIT
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 7488
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 7488
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 3555
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 2994
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 2274
A fixed-corner whale widget showing DeepSeek balance, today usage, per-turn cost and random talk lines, with sound effects and a menu.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1072
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.