DeepSeek Harness Plugin

nirvanaslash/dsh-artifact-preview

Stars ★ 1 Downloads (30d) 697 Category UI Enhancements Added 2026-09-13 npm dsh-artifact-preview

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

English · 中文

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 web profile that has the dsh-file-changes companion installed) — the preview fetches file content through its /dsh-files/static/<absolute-path> route. On DSH Desktop this route is built in; on a bare dsh web install add the dsh-file-changes companion 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.client metadata, dsh.bundle patch registration, and the conversation.chat.turnTail chain slot. Chain-slot election relies on low priority (-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

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.