dsh-genui:交互式 UI 组件
omdsh-dev/dsh-genui
助手回复内渲染交互式 UI 组件:布局、图表、表单、测验、mermaid、3D 场景与回传事件循环。
安装
把 dsh-genui 装进 DeepSeek Harness
npm 方式
直接拉已发布的 tarball,不用克隆整个仓库,也不需要额外配置。如果你用的是别的 profile,把 `web` 换成对应的名字。
GitHub 方式 · npm 包
从 GitHub 装会执行项目自己的构建脚本,而 pnpm 默认拦着不让跑——先跑一次这条命令,pnpm 会打印出要加到 ~/.dsh/profiles/web/pnpm-workspace.yaml 里 `allowBuilds` 下面的那个 key。
我们跑过之后
我们跑过,装得上
这里每条命令都在一次性容器里、对着干净 profile 真跑过,结果取自 harness 自己的记录,不是读源码猜的。 最近一次 12 天前.
挂进你的 README
给维护者的:badge 取这条 listing 最近一次 sandbox 实测的结果,重跑之后它自己会变,读者点开就是这页的完整记录。
安装前须知
装 dsh-genui 之前,先看这几条
- 源码在这里: omdsh-dev/dsh-genui——已进入社区精选库,DSH 自带的插件市场就是从这儿装的。
- 开源协议:MIT。
- 自动识别到:需要密钥。授权之前请先读一遍源码。
- 被收录在这里不代表通过了安全审计。插件是带着你 agent 的权限在跑。
AI 锐评
是什么 — 将模型回复转化为内嵌交互 UI 组件,包括布局、图表、表单、测验和 3D 场景。
谁该装 — 在使用 DeepSeek Harness 进行数据监控和分析时,需要交互面板的用户适合安装此 plugin。 如果你使用的是其他非 DSH 平台,则无需此 plugin。
注意 — 沙箱实测已通过:在全新 profile 中安装后被 harness 注册进 profile。需要提供 API key 或 token,未发现明显的坑。
锐评 — 我会安装它,因为它能让模型回复中直接嵌入图表和表单,但前提是使用支持的 DSH 版本。
grok-4.6 写的,只当参考,不当结论。里面说装得上或装不上,是在干净 profile 里真跑过的;其余都是读仓库读出来的。以实际运行为准。
dsh-genui 是做什么的

dsh-genui 是一个 DeepSeek Harness 插件,把模型回复中的交互内容直接渲染成可操作的组件,包括卡片、表格、图表、表单、测验、Mermaid、函数绘图和 3D 场景。用户点击按钮、修改输入或完成测验后,事件可以回传给模型,由模型生成下一步内容;评分、重置、展开折叠等本地可完成的操作则立即在页面处理。
插件启动时会根据宿主能力选择渲染通道:检测到 fence-registry 时接入宿主的流式渲染管线,否则观察会话 DOM,识别 dsh-ui 代码块并挂载自己的渲染树。组件可以在回复尚未结束时出现。render_ui tool 使用同一套 UI 规格,panel: true 可把内容放进会话面板。交互状态按会话和内容指纹保存,最多保留 200 个 block。
它适合需要把答案做成可视化、可填写或可选择内容的 DSH 用户。不需要交互 UI 时,纯文本回复更合适;如果不希望维护 pnpm 依赖,也不应安装。目录将 dsh-genui 标记为需要 credentials,但 README 没有说明具体凭据;插件会接触宿主会话 DOM、本地 UI 状态和模型事件循环。
dsh-genui 的文档
环境要求
README 要求已安装 DSH,并且 pnpm 位于 PATH。插件支持任意开源 DSH build。安装或更新后,需要重启 DSH web 并执行 hard refresh;可在新会话中输入 “use dsh-ui to draw a stats dashboard” 验证。源码开发需先执行 pnpm install;README 特别说明,link: 不会安装 mermaid、three 和 react,因此不能直接用于全新源码目录。
渲染通道
插件启动时检查 fence-registry extension point。宿主提供它时,fence 进入宿主的 streaming render pipeline;否则使用 DOM channel,观察会话 DOM 并自行挂载 render tree。DOM channel 支持 md-code-block、.code-block、.code-block-small,也支持带有 dsh-ui 标识和 <pre> 内容的结构性 fallback。组件可在模型输出过程中逐步出现。
命令与交互
render_ui tool 会把相同的 UI spec 渲染到 tool row 中;回复内的 UI 通过 fence 传递,工具式 UI 通过 render_ui 传递。panel: true 会将内容放入 composer 上方的持久会话面板。
按钮、switch、input、dropdown、checkbox、radio、textarea 和 quiz 可以携带 action。事件回传模型;同名 action 使用 300 ms trailing debounce,快速操作会合并。input 按 Enter 提交,textarea 按 Ctrl+Enter 提交,前提是设置 submit:true。带 id 的字段会收集到 submit action 的 fields 中。
状态与限制
答案、提交锁和输入值按会话及 content fingerprint 保存,LRU 上限为 200 个 block;相同内容重新渲染时保留状态,新内容重新开始。quiz 的评分、重置、展开折叠和选择等本地操作不需要模型往返。不得请求密码、API key、access token、recovery code 或其他 secrets;密码输入会保持遮罩、不持久化,也不会进入表单收集。README 未说明其他配置 key 或环境变量。
根据项目自己的文档整理,会跟着上游更新。两边对不上时以源码仓库为准—— 去 GitHub 看原始 README
同一分类
dsh-genui 的同类插件
dsh-web-all
zhu1090093659
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
我们跑过,装得上
dsh-web-ui-all
zhu1090093659
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
没有一行式安装命令——这个插件在一个大仓库的子目录里,也没发 npm 包。