Code-first React + TypeScript 任务应用,支持 Inline、Canvas、全屏与 localhost;交互状态可供 Agent 后续轮次读取,MCP 和 API 访问在用户授权后执行。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-plugin-genui
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:pengyue-polaron/deepseek-harness-genui
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 简体中文
DeepSeek Harness GenUI 让 Agent 在文字不够好用时,为当前任务生成一个聚焦界面。Coding Agent 编写普通的 React + TypeScript,而不是组件树 DSL;界面可以把用户选择保存给下一轮 Agent。
它适合讲清复杂关系、收集相互关联的选择,或在工具工作流中继续处理,而不必让用户重复输入。
相关研究:《EvoGenUI-Bench: Evaluating LLMs as Multi-Turn Generative UI Assistants》。
安装
需要 Node.js ^22.19.0 || ^24.0.0 和受支持的 DeepSeek Harness Web profile。
dsh plugin --profile web add dsh-plugin-genui
dsh --profile web
v0.15 在发布说明所列 Harness 版本中支持 Inline、Canvas、全屏和 localhost;不支持 TUI/headless。本地编译器使用 WebAssembly,无需批准安装脚本;插件用户不需要安装 Chrome 或 Chromium。
适用场景
当用户需要看清复杂关系,或同时处理几项相互影响的选择时,界面比文字更合适。普通问答、改写、摘要和简单列表仍应只返回文字。
核心闭环
- Agent 为当前任务编写并构建 React + TypeScript 页面。
- 用户保存选择、表单答案、草稿或进度等有意义的结果。
- 下一轮 Agent 读取这些值并继续任务。
- 页面必须声明要使用的工具和公开 HTTPS 接口。Harness 负责按任务授权,未声明调用会被拒绝。
后续修改会更新同一个页面。构建或源码检查失败的候选不会替换最后一个可用版本;启动崩溃的版本会被隔离,并在可能时回滚。
Inline 与 Canvas
| Inline | Canvas |
|---|---|
| 适合紧凑的控制项或聚焦选择。 | 提供更大空间,同时保留对话。 |
Inline、Canvas、全屏和 localhost 是同一份任务状态的不同入口。
试一下
新建一个 Web 会话,复制一段提示词:
帮我规划一个周六行程,包含美术馆、滨江花园和晚餐。做成可以直接调整时间的界面,
并让我能把花园设为下雨时跳过。
做一个可交互的双缝干涉实验,让我调整波长、缝间距和屏幕距离,并实时观察条纹变化。
在界面中保存以后,再问:
我刚才在界面里选了什么?请按保存结果继续。
真正要验证的不只是“页面出现了”,而是下一轮 Agent 能不能接着刚才的操作继续做。
为什么选择 Code-first
组件协议通常更适合可预测的卡片、表格、图表和表单。这个插件面向结构事先无法确定的场景,例如模拟器、空间工具、源码浏览器,以及保存结果需要继续进入同一个 Harness 任务的多步骤应用。
它的取舍很明确:生成代码比固定组件目录更自由,但项目也有意只服务 DeepSeek Harness,而不是跨客户端 UI 协议。相关路线可参考 dsh-genui、dsh-visualize、A2UI 和 MCP Apps。
DESIGN.md
打开 设置 → 插件 → 插件配置,可以自动选择设计,使用 material-3、apple-human-interface 或 shadcn-ui,也可以导入自定义 DESIGN.md。它只控制视觉语言,不限制 React 为任务实现所需的页面结构和交互。
安全
生成代码在 opaque-origin 沙箱中运行。可信父页面保管真实的任务 capability token,只代理已保存状态、已声明工具和已声明的无凭据公开 HTTPS 接口。MCP 凭据不会进入生成代码。临时链接和授权 7 天后过期;任务状态也会在最后一次更新 7 天后过期。
这条边界能保护宿主凭据与能力,但不能让恶意代码安全地读取已经授权给它的数据。不要把秘密写进生成页面状态,也不要授权页面读取不应展示的数据。精确威胁模型见 Security。
开发
从源码构建需要 pnpm 11:
pnpm install
pnpm run typecheck
pnpm run build
pnpm test
pnpm run package:plugin
已收录:dsh-market · dsh.so · awesome-dsh-plugin · dsh.plus
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 8178
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 8178
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
omdsh-dev/DSH-better-sidebar★ 3903
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
ccch1mneyyy/dsh-TUI★ 3815
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 3514
右下角常驻的小鲸鱼挂件:余额、今日已用与每轮对话消耗(含峰谷价),余额预警与今日预算的泡泡内容都可编辑;泡泡点击序列模块化自定义,支持并列加权 A/B、随机台词与随机图片;内置 30+ 厂商模板(OpenAI / OpenRouter / Kimi / 硅基流动 / 方舟 / 智谱 / MiniMax 等),按模型查余额与订阅额度;另有任务结束音效、导入音频、自定义角色与资源管理。数据全在本机,无遥测。
Devin-AXIS/deepseek-design#deepseek-idesign★ 1711
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。