DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Visualize — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-visualize

Visualize

visualize_html tool + sandboxed HTML preview card for the dsh Web UI (Codex /vizualize analogue)

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-visualize@0.2.1
READMECompatibilityVersions

Compatibility and provenance

Visualize is published as dsh-visualize and currently resolves to version 0.2.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
9/20/2026

Versions

0.2.1stable
8/17/2026
0.1.0stable
8/17/2026

Related plugins

Loading related plugins…

Latest
0.2.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
21.7 kB
Files
6
Surface
web
License
MIT
Source
npm
GitHub
★ 1
Weekly downloads
91
Last push
9/20/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Remote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Client Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundlePet@linxin666/dsh-petMulti-pet companion plugin for the dsh web GUI: a registry-driven floating pet that reacts to model activity, with per-pet naming, petting/feeding interactions and an affinity score

README

dsh-visualize

Out-of-tree DSH (DeepSeek Harness) plugin: the visualize_html tool plus a sandboxed HTML preview card in the Web chat — a Codex /vizualize analogue rendered inside the conversation.

What it does

  • Node half (src/index.ts, mounts in the host loader tree): registers the visualize_html(path) tool and the human-facing /visualize [path] command. It resolves the path against the session workspace, reads the file through ctx.fs (the profile's sandbox policy applies), shows the model only a short summary, and embeds the capped HTML in the durable presentationMeta (tool/result.meta → ToolResultNode.meta). The HTML never enters model context; the canonical value is execution-local.
  • Browser half (src/client.tsx, a dsh.client dual-face package): registers the visualize_html keyed view in the tool.call.toolview slot. The settled card renders meta.html in an iframe with sandbox="allow-scripts" (no allow-same-origin → opaque origin: scripts run but cannot reach the page, cookies, storage, or same-origin resources), plus Open in browser (existing host.openPath) and Copy HTML.

User-facing surface

  • /visualize <path> — slash command (discovered by the Web command menu): steers a user turn that calls visualize_html, so the preview card appears in the chat.
  • Bare /visualize (no path) — a request to the model to create a visualization: it thinks about what would be useful in the current context, builds it as a self-contained HTML file, and renders it with visualize_html.
  • The model also sees the tool:visualize_html prompt section and the tool schema itself — that guidance is what makes the command work end to end.

Install

Published to npm: dsh-visualize.

# the profile is a pnpm workspace root, so -w is required
dsh plugin --profile <name> add -w dsh-visualize

The package is a bundle — it declares dsh.bundle.patch and ships its own cordis.patch.yml, so dsh plugin add registers it as a profile layer automatically (no manual patch rows). Then restart the profile (the shipped web surface disables HMR, so profile layers are not watched live):

dsh --profile <name> --port 3081

Local development checkout (live link, rebuilds picked up on page refresh):

dsh plugin --profile <name> add -w link:/path/to/dsh-plugins/visualize

Runtime config (row visualize):

config:
  maxPreviewBytes: 262144   # cap on the HTML embedded in the durable result

Development

pnpm install            # from the repo root (pnpm workspace)
pnpm --filter dsh-visualize build      # tsdown → lib/index.mjs + lib/client.js
pnpm --filter dsh-visualize typecheck  # tsc --noEmit
pnpm --filter dsh-visualize test       # node --test (node half unit tests)

After a rebuild, refresh the browser page — the client bundle is served no-cache; a server restart is only needed when the loader tree changes.

Limitations

  • Sibling assets do not load — srcdoc has no base URL, so relative CSS/images next to the file are not fetched inside the preview; self-contained HTML renders fully. (Deferred: a host RPC to serve sibling assets.)
  • Preview truncation is a hard byte cap; the full file opens via the browser.
  • The card is Web-only (keyed tool view); headless surfaces see the summary text.