在会话里发布可交互卡片并等待用户提交结果
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MjxUpUp/dsh-visual该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/10/31(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/dsh-typert-protocol给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 的交互式可视化卡片:模型内联发布 HTML 或流程图,工具会阻塞等待用户提交,评论、字段和状态作为工具结果返回。
README
由 DeepSeek 最新模型翻译生成dsh-visual
在 DeepSeek Harness 会话里放交互卡片。模型发布一张自包含的 HTML 卡片(或一张可拖拽的流程图),工具会一直阻塞,直到用户提交,用户的点击、评论、表单字段和卡片状态都会作为工具结果返回。
没有助手文本,没有聊天消息,没有产物预览——消息流里就是一张真卡片。
dsh-visual card
特性
- 阻塞式,不是发完就走。 visual 会一直挂起,直到用户提交,所以答案以工具结果的形式到达,智能体在同一轮里继续往下走。
- 卡片可写脚本。 内联 通过一个小桥接(dshVisual.root、dshVisual.setState)按卡片执行,卡片因此能自己切换状态、校验、预填。
- 结构化答案。 按钮(data-visual-action)、输入框(data-visual-field)、评论和卡片状态合并成一个 JSON 答案。
- 带定位的评论。 右键任意元素就能留评论;答案里带上该元素的选择器和标签,模型因此清楚每条备注说的是什么。
- 流程编辑器。 不传 HTML,改传 flow 图:拖节点、双击改名、连线、删除,然后把编辑后的图交回来。
- 并行安全。 同一轮里的多张卡片各有自己的桥接和状态,互不串扰。
- 可取消、有时限。 timeoutMs 和停止按钮会把卡片变成只读,而不是一直挂着。
展开完整文档(README 剩余 1 节)
dsh-visual
在 DeepSeek Harness 会话里放交互卡片。模型发布一张自包含的 HTML 卡片(或一张可拖拽的流程图),工具会一直阻塞,直到用户提交,用户的点击、评论、表单字段和卡片状态都会作为工具结果返回。
没有助手文本,没有聊天消息,没有产物预览——消息流里就是一张真卡片。
dsh-visual card
特性
- 阻塞式,不是发完就走。 visual 会一直挂起,直到用户提交,所以答案以工具结果的形式到达,智能体在同一轮里继续往下走。
- 卡片可写脚本。 内联 通过一个小桥接(dshVisual.root、dshVisual.setState)按卡片执行,卡片因此能自己切换状态、校验、预填。
- 结构化答案。 按钮(data-visual-action)、输入框(data-visual-field)、评论和卡片状态合并成一个 JSON 答案。
- 带定位的评论。 右键任意元素就能留评论;答案里带上该元素的选择器和标签,模型因此清楚每条备注说的是什么。
- 流程编辑器。 不传 HTML,改传 flow 图:拖节点、双击改名、连线、删除,然后把编辑后的图交回来。
- 并行安全。 同一轮里的多张卡片各有自己的桥接和状态,互不串扰。
- 可取消、有时限。 timeoutMs 和停止按钮会把卡片变成只读,而不是一直挂着。
环境要求
- DeepSeek Harness 0.1.0-rc.1 及更新版本,低于 0.3(含预发布构建)
- Node.js 20 或更新版本
安装
dsh plugin --profile desktop add dsh-visual
重启一次 DeepSeek Harness,让宿主侧加载。之后改动 lib/client.js 只需刷新页面(⌘R)。
本地开发时,改为链接目录:
dsh plugin --profile desktop add /path/to/dsh-visual
dsh plugin --profile desktop remove dsh-visual # uninstall
快速开始
用大白话要一张卡片:
用 visual 发一张发布确认卡,让我选版本并留一句备注
模型大致会这样调用工具:
{
"title": "发布确认", "height": 360, "html": "发 0.1.1 到 npm?发先别发",
"actions": [{ "id": "approve", "label": "发" }, { "id": "hold", "label": "先别发" }],
"timeoutMs": 600000
}
用户点击后,工具返回一个 answer 对象:
{
"action": "approve",
"payload": { "fields": { "note": "记得打 tag" } },
"state": { "checks": ["install"] },
"comments": [{ "selector": "h3", "label": "h3", "text": "标题再短一点" }]
}
参数
| 参数 | 类型 | 说明 |
| title | string | 卡片头部标题。 |
| html | string | 完整、自包含的 HTML 文档。样式作用域隔离;脚本按卡片分别运行。 |
| flow | object | 流程图 {nodes, edges},渲染成可编辑画布,替代 HTML。 |
| data | object | 初始状态,以 dshVisual.data 暴露给卡片脚本。 |
| height | number | 卡片初始高度,单位 px(160–900)。卡片可以自行调整大小。 |
| actions | array | 动作注册表 {id, label},用于底部操作条和按钮文案。 |
| timeoutMs | number | 等待提交的时长(默认 10 分钟,最长 1 小时)。 |
除 html 或 flow 二选一外,其余字段都可选。
卡片协议
按钮与字段
- data-visual-action="id" —— 点击后提交该动作,同时带上字段、状态和评论。
- data-visual-field="name" —— 提交时从卡片读取,放在 answer.payload.fields 下返回。
- 底部始终显示一个中性的 交还 按钮(answer.action = "done")。它不表示批准:评审卡片应自带明确的 approve/revise 动作。
脚本与状态
(function (dshVisual) {
var state = Object.assign({ on: false }, dshVisual.data || {})
dshVisual.root.querySelector('.toggle').addEventListener('click', function () {
state.on = !state.on
this.textContent = state.on ? '开' : '关'
dshVisual.setState(state) // returned as answer.state
})
})(dshVisual)
每张卡片都按 new Function('dshVisual', source)(bridge) 编译,所以并行卡片之间看不到彼此的状态。
评论
在卡片内任意元素上右键,输入备注,就会以编号固定下来。返回结果通过 answer.comments 携带它们,格式为 { selector, label, text }。
超时与取消
timeoutMs 到期后,调用返回 action: "timeout";停止本轮对话则返回 action: "cancelled"。两种情况卡片都会变为只读,底部会说明原因。
开发
npm run check # syntax of both entries + docs/code consistency guard
npm pack --dry-run # inspect the published file list
客户端部分是手写的模块加载器 bundle,无需构建步骤。
发布
发布自动完成:推送 v* 标签会触发 release 工作流,它会校验 npm run check、带 provenance 发布到 npm,并创建 GitHub Release。
npm version patch # or minor / major
git push --follow-tags
工作流需要仓库密钥 NPM_TOKEN,且对 dsh-visual 包有发布权限。
许可证
MIT © MjxUpUp预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
MjxUpUp/dsh-visual
在会话里发布可交互卡片并等待用户提交结果
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,332已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,153已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,244已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,046已汉化DSH
71.1
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,480已汉化DSH
71