Nagi-ovo/dsh-visualize

Render model-generated interactive cards inside DSH conversations | Render model-generated interactive cards inside DSH conversations

dsh-visualize gives DSH a visualize tool that renders live interactive HTML cards inside your conversation -- inline, beside the model's text reply. Tell the model what you want to explore ("make an adjustable sorting algorithm visualization") and it writes an HTML fragment, then calls visualize() to embed it. Cards follow DSH's light/dark theme and whale-blue palette. Each card runs in a sandboxed iframe with an opaque origin, blocking network requests, nested iframes, and form submissions. Sessions replay correctly because the persistent tool result stores the fragment, not just a file reference.

Web UI Enhancements ★ 191 updated 2026-09-18 ✅ runtime-tested
View on GitHub ↗

Install

dsh plugin --profile web add github:Nagi-ovo/dsh-visualize

Restart DSH web after install; refresh the browser page. Confirm the plugin is loaded: dsh --profile web --dump-config. For local development: git clone and dsh plugin --profile web add . (build artifacts are committed; no separate build step). Community plugin-registry users can install from Settings -> Plugins.

Compatibility

DSH web profile only. Interactive cards render in the Web UI browser -- TUI and headless clients receive the standard tool result instead. No external API key required. Sandboxed iframes cannot reach external hosts.

Details

Recent updates

Cards run in sandboxed iframes with CSP blocking network requests, nested pages, and form submissions. Default fragment limit: 1,000,000 bytes (configurable via maxFragmentBytes). mode="wide" for side-by-side comparison layouts. Inspired by the Codex desktop app /visualize command.

FAQ

What kinds of visualizations can dsh-visualize render?
Anything that can be written as a self-contained HTML fragment: sortable data tables, interactive charts (Chart.js and other CDN-loaded libraries are permitted), simulation panels, comparison layouts, UI mockups, and calculators. The model writes standard HTML/CSS/JavaScript; the plugin renders it in a sandboxed iframe.
Is it safe to render model-generated HTML inside DSH?
Yes -- each card runs in an iframe with an opaque origin and a strict CSP that blocks network requests, nested pages, and form submissions. Only static assets from a fixed CDN allowlist are permitted. The card cannot access the host page or send data outbound.
Does dsh-visualize work in TUI mode?
No -- interactive cards render only in the Web UI. In TUI or headless mode, you see the standard tool call result instead. The plugin is specifically designed for the browser-based web interface.

Alternatives

omdsh-dev/dsh-genui · nexu-io/open-design · liustack/modlens

More plugins in Web UI Enhancements

Browse more in Web UI Enhancements

Guides for Web UI Enhancements plugins