DSH Marketplace

dsh-visualize

Nagi-ovo/dsh-visualize

In-conversation generative UI: the model renders interactive HTML cards into the chat stream, with streaming preview and sandboxed rendering.

1583TypeScriptBSD-3-ClauseSource

Install

Add dsh-visualize to DeepSeek Harness

via GitHub · GitHub source

Installing from GitHub runs the project's build script, which pnpm blocks until you allowlist it — run the command once and pnpm prints the exact key to add under `allowBuilds` in ~/.dsh/profiles/web/pnpm-workspace.yaml.

Due diligence

Before you install dsh-visualize

  • Source of record: Nagi-ovo/dsh-visualize — present in the community registry that DSH's own plugin market installs from.
  • Licensed under BSD-3-Clause.
  • A listing here is not a security review. Plugins run with your agent's permissions.

What dsh-visualize does

Abstract diagram of fragments flowing into a protected frame and forming an interactive card.

dsh-visualize is a DeepSeek Harness plugin that renders interactive HTML cards directly in the Web UI conversation stream. It is intended for generated simulators, charts, comparison panels and interface mock-ups rather than text-only answers.

When the model needs a visual output, it writes an HTML fragment and calls visualize(path, title?, mode?). The plugin reads the fragment from the supplied path and hands the result to the Web UI for rendering. mode: "wide" is available for content that benefits from a wider card. Rendering uses a sandboxed iframe with an opaque origin; the card follows DSH’s light or dark theme and colour scheme. Tool results are persisted, so replay can restore a card without the original fragment file remaining present.

This is suited to agents whose work benefits from an interactive visual explanation and that run with the web profile. dsh-visualize is the wrong choice when the client is TUI or headless, because those clients show an ordinary tool result instead of an interactive card. It is also not suitable for cards that need network access, embedded pages, form submission, or buttons that send follow-up messages to the main conversation. A fragment is limited to 1000000 bytes by default; maxFragmentBytes can change that limit.

dsh-visualize documentation

How it works

The model produces an HTML fragment, then calls visualize(path, title?, mode?). The path identifies the fragment to render; title is optional. For layouts that need more horizontal space, pass mode: "wide". The resulting card is rendered in the DSH Web UI conversation stream.

Configuration

The fragment size limit is configurable:

Configuration Default Purpose
maxFragmentBytes 1000000 bytes Maximum size of one HTML fragment

The card follows DSH’s light or dark theme and whale-blue colour scheme. The README does not document other configuration keys.

Rendering and replay

Each card runs in a sandboxed iframe with an opaque origin and cannot access the host page. Its CSP blocks network requests, nested pages and form submission. Static resources may be loaded only from a fixed CDN. When a conversation is replayed, the card is restored from the persisted tool result rather than from the original fragment file, so that file does not need to remain available.

Verification

For a web profile, dsh --profile web --dump-config can be used to check that the plugin is present in the final configuration. If DSH Web is already running after a plugin change, restart it and refresh the page. The repository’s committed build output means no additional build step is required when installing from a local clone.

Known limits

Interactive cards are currently rendered only by the Web UI. TUI and headless clients display a normal tool result. Buttons inside a card cannot yet send follow-up messages to the main conversation.

Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub

Same category

Alternatives to dsh-visualize

dsh-web-ui-all

zhu1090093659

3.3k

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.

No one-line install — this plugin lives inside a larger repository and publishes no npm package.

GitHub sourceTypeScripttoday
1.6k

Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.

npm packageTypeScripttoday

dsh-TUI

ccch1mneyyy

1.5k

Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.

npm packageTypeScripttoday

dsh-at-file

omdsh-dev

261

Codex-style `@file` mentions: search workspace files in the composer and attach their contents to prompts.

npm packageJavaScripttoday
190

A terminal UI (TUI) for DeepSeek Harness.

npm packageTypeScripttoday

dsh-genui

omdsh-dev

137

Interactive UI components rendered inline in replies: layout, charts, forms, quizzes, mermaid, 3D scenes, and an action event loop back to the model.

npm packageTypeScripttoday