DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

StarsHarryZhu /

StarsHarryZhu/dsh-intelligent-UI

Verified

This plugin has no description yet.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@8fe3d20a

dsh-intelligent-ui

Interactive cards in DeepSeek Harness chats. The model writes a small interface program, the chat draws it as a native card, and every control recomputes in your browser without another model call. A button sends its text as your next message.

中文

Requires DeepSeek Harness >= 0.2.1-rc.1 (below 0.3.0)
Platforms Web UI, macOS desktop app, and Windows desktop app — one bundle, because both desktop apps load the same web client
Verified Web UI 0.2.1-alpha.4; macOS and Windows desktop apps 0.2.1-rc.2
Install Settings → Plugins → Add plugin → https://github.com/StarsHarryZhu/dsh-intelligent-UI (needs git on PATH), then restart the harness and reload the page

How it works

  • The plugin registers one tool, ui_render, and one skill, dsh-intelligent-ui, which teaches the model when a card beats prose. The skill is its own part of the plugin: the Plugin Manager lists it with its own switch, and installing the plugin installs it. The model never writes HTML or JavaScript: its program is checked against the 32-component catalog and stored with the tool result.
  • A card draws in the tool row while the reply streams, and under the reply once it finishes. Moving a control recomputes every figure locally.
  • A player animates a card: code traced line by line, an algorithm's passes, a point moving along a curve. Playback runs in the browser and sends nothing to the model.
  • Cards compute integrals (including infinite bounds), derivatives, limits, sums and products, roots, and Taylor polynomials. A value that cannot be computed reliably shows "—", never a guess.
  • Uninstalling leaves every session opening as before; earlier calls show as ordinary tool rows.

Development

node scripts/link-dev.mjs   # link the toolchain from the sibling harness checkout
node build.js               # type-check, build, and self-check the bundle
node node_modules/vitest/vitest.mjs run

AGENTS.md holds the rules of the tree; docs/VERIFY.md is the live checklist.

The 32 components

One card per component, drawn by this plugin in the host's light theme. The program behind each card is in docs/SAMPLES.md.

card — Layout

card

The framed root: optional title, padding, and gap.

col — Layout

col

A vertical stack in reading order.

row — Layout

row

Equal-width cells side by side; they wrap on a narrow screen.

grid — Layout

grid

An even grid of one to four columns.

tabs — Layout

tabs

Pages the reader switches between, by click or arrow key; only the open page is drawn.

tab — Layout

tab

One page of tabs, labelled by its title; pages share the card's state.

title — Text

title

A headline line in five sizes.

text — Text

text

A sentence, with {…} live values.

badge — Text

badge

A one-word status label in five tones.

callout — Text

callout

One emphasized remark: an assumption, a caveat, a next step.

divider — Text

divider

A hairline separator.

link — Text

link

A citation link, opened only when clicked.

image — Text

image

An inline data: image with alt text and a caption.

code — Text

code

Code or other preformatted text, kept exactly as written, with syntax colours in the host's palette, line numbers, a copy button, and current= highlighting the running line.

metric — Data

metric

One prominent number that recomputes as controls move.

progress — Data

progress

A proportion bar.

table — Data

table

A comparison table; current= highlights a row, and sortable=true lets the reader sort by any column.

keys — Data

keys

Label and value pairs for exact figures.

list — Data

list

A bulleted list; current= highlights an item.

steps — Data

steps

A numbered procedure; with mono=true and current=, a code listing with the running line highlighted.

chart — Data

chart

A bar or line chart.

diagram — Data

diagram

A flowchart laid out in layers; loops return along the side, and current= highlights a box.

plot — Math

plot

Curves of y = f(x) with a marked point, its tangent, and a shaded integral.

formula — Math

formula

A typeset expression with its live value.

slider — Controls

slider

A range slider bound to a number.

numberInput — Controls

numberInput

Exact number entry.

textInput — Controls

textInput

A one-line text field.

select — Controls

select

A dropdown choice.

checkbox — Controls

checkbox

An on/off switch.

checklist — Controls

checklist

Items to tick off with a done count; bind= hands the count to the rest of the card.

button — Action

button

Sends its text as your next message, then locks the card.

player — Animation

player

A control bar at the bottom of the card: plays, pauses, steps, and scrubs a number at 0.5× to 2×; everything that reads it follows.

License

MIT License © 2026 Starfield.

—/ 5

No ratings yet

Verified DSH bundle

Commit 8fe3d20a8edc

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout