在对话中直接渲染可交互的 SVG 与 HTML 卡片
30.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add tonebean/dsh-inline-visualizer该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · vision
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
- 读取本地文件index.js:74
const text = await readFile(join(GUIDELINES_DIR, fileName), 'utf8')
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 内联可视化工具:在对话中就地渲染 SVG 和沙箱 HTML 卡片。
README
由 DeepSeek 最新模型翻译生成dsh-inline-visualizer
dsh-inline-visualizer
· GitHub · MIT · DSH 0.2.1-rc.5
把「内联可视化」做成 DeepSeek Harness 里的两个内置工具:模型先说清要画什么(widget_guidelines 加载设计契约),再把片段交给 show_widget——卡片当场渲染在对话里,图本身不进模型上下文。
- 适用于 DSH 0.2.1-rc.5(engines.dsh: >=0.2.1-rc.5 <0.3.0)。
- 纯 JavaScript,无构建步骤、无第三方运行时依赖;Host 侧使用宿主提供的 @deepseek-ai/dsh-tools,浏览器侧只从宿主模块表取 react。
装与不装
装与不装
不安装时,图只能以代码块或文件形式出现;安装后,卡片直接在对话里渲染,可交互、可下载、自动跟随主题。
为什么是它
- 产物不进模型上下文。工具返回值只是一句 ack,图走旁路进 UI。两三张图的 SVG 源码不会灌进对话,模型也不会开始复述代码。
- 无第三方运行时依赖。没有 echarts、没有 mermaid、没有构建脚本;装完即用。
- 主题真跟随。
展开完整文档(README 剩余 1 节)
dsh-inline-visualizer
dsh-inline-visualizer
· GitHub · MIT · DSH 0.2.1-rc.5
把「内联可视化」做成 DeepSeek Harness 里的两个内置工具:模型先说清要画什么(widget_guidelines 加载设计契约),再把片段交给 show_widget——卡片当场渲染在对话里,图本身不进模型上下文。
- 适用于 DSH 0.2.1-rc.5(engines.dsh: >=0.2.1-rc.5 <0.3.0)。
- 纯 JavaScript,无构建步骤、无第三方运行时依赖;Host 侧使用宿主提供的 @deepseek-ai/dsh-tools,浏览器侧只从宿主模块表取 react。
装与不装
装与不装
不安装时,图只能以代码块或文件形式出现;安装后,卡片直接在对话里渲染,可交互、可下载、自动跟随主题。
为什么是它
- 产物不进模型上下文。工具返回值只是一句 ack,图走旁路进 UI。两三张图的 SVG 源码不会灌进对话,模型也不会开始复述代码。
- 无第三方运行时依赖。没有 echarts、没有 mermaid、没有构建脚本;装完即用。
- 主题真跟随。只读文档化入口 ctx.theme 与 --dsw-alias-,切换深浅色时卡片重算配色;不碰 data-ds-dark-theme 这类宿主内部实现,宿主升级不会因此断。
- 两条渲染路径,按风险分开。SVG 走 data: URI 的 ——矢量、清晰、天然不执行脚本;HTML 走 sandbox="allow-scripts" 的不透明源 iframe,带 default-src 'none' 的 CSP,能交互但读不到宿主。
- 模型不用猜配色。内置设计契约:8 色系 × 6 级色阶、语义令牌、排版与硬约束,按模块(diagram / chart / mockup / interactive / art)按需加载。
- 双语界面 + 完整显示元数据。locale/{en,zh}.json 带 meta.title / meta.description,icon.svg 自绘,市场里不会掉成默认图。
- 197 项自测;启用真实 dsh-tools 的 Part C 后共 205 项,包含工具 schema 编译。
它不做什么
- 不做流式逐字渲染:图在工具调用完成后一次出现,不逐 token 生长。
- 不做光栅化:输出始终是矢量 SVG,不转 PNG。
- 不解析 Mermaid:要 Mermaid 请另装对应插件。
- 不内置图表库:图表由模型手写原生 SVG,换来的零依赖与可控体积。
两个工具
| 工具 | 参数 | 作用 |
| widget_guidelines | modules: ('diagram'\|'chart'\|'mockup'\|'interactive'\|'art')[] | 返回设计契约(令牌、排版、间距、硬约束 + 所选模块) |
| show_widget | title, widget_code, loading_messages | 就地渲染一张卡片;只回一句极短 ack |
widget_code 是裸 …(首选)或一段 HTML 片段。工具返回值里没有片段内容——这正是该方案的红线。
安装
已发布到 npm(dsh-inline-visualizer@2.0.2)。
在 DSH 里用插件管理器安装(推荐):
plugin_manager { action: "install_bundle", target: "dsh-inline-visualizer" }
该操作需要 danger-full-access 审批;target 传 pnpm 可识别的安装 spec——包名(从 npm 安装)或本地目录的绝对路径均可。
手工装(仅开发时):把包放进 $DSH_HOME/profiles/<profile>/node_modules/dsh-inline-visualizer(例如 ~/.dsh/profiles/desktop/node_modules/dsh-inline-visualizer),并在该 profile 的 cordis.patch.yml 追加:
- insert:
- id: visualizer
name: 'dsh-inline-visualizer'
安装新包可经 HMR 生效;替换已安装的包必须重启才能加载新的 JS 代。
可选配置
- id: visualizer
name: 'dsh-inline-visualizer'
config:
maxCodeChars: 200000 # 单张图上限,1000 ~ 1000000
安全边界
| 面 | 做法 |
| SVG | 白名单清洗后转 data: URI 塞进 ——/<foreignObject>/动画元素/on 全部剥除,href 只允许 #、data:; 本身不执行脚本 |
| HTML | sandbox="allow-scripts"(不透明源,绝不给 allow-same-origin)+ default-src 'none' 的 CSP + 外链只放行 4 个 CDN |
| 高度 | 子页 postMessage({type:'viz:height'}),父侧校验 event.source 后调整 |
| 主题 | 只读文档化入口:ctx.theme.getTheme().colorScheme 与 theme/change;不碰任何宿主内部属性 |
| 文案 | 全部走插件自己的 locale 命名空间(ctx.locale),中英双语 |
目录
| 文件 | 作用 |
| index.js | Host 半边:defineTool 注册两个工具;按需装配 guidelines/*.md |
| client.js | 浏览器半边:window.__ModuleLoader__.load() 工厂,向 tool.call.toolview 按 key: 'show_widget' 注册卡片 |
| guidelines/ | 设计契约正文(_core.md 必带 + 五个模块) |
| locale/{en,zh}.json | 显示元数据(meta.title/meta.description)与运行期词条 |
| icon.svg | 插件图标(64×64,随包发布) |
| assets/icon-180.png | 市场卡片图标(180×180 PNG,仅列表用) |
| assets/readme-hero.png | README 顶部展示图(随包发布) |
| assets/readme-compare.png | 装/不装对比图(随包发布) |
| test/smoke.mjs | npm test:197 项断言(启用 Part C 后 205 项),含真实 defineTool schema 编译 |
| CHANGELOG.md | 版本记录 |
测试
npm test
分四部分:Host 半边的工具定义、用真实 dsh-tools 编译 schema(DSH_TOOLS_ENTRY 指向其 lib/index.js 或 lib/types/schema.js 时启用)、浏览器半边的渲染/XSS/主题、以及打包与发布要求。
视觉测试用例与截图见 docs/test-cases:覆盖 5 个设计模块、两条渲染路径、安全净化与参数校验,共 30 个用例、24 张截图,并附完整冒烟测试报告。
已知限制
- 没有真实浏览器 E2E:test 用假 React + 假 DOM,覆盖不到布局、CSP 实际生效、React 调和。
- 净化是正则级:mXSS、实体编码绕过不在覆盖范围内;SVG 走 已把风险压到最低,但 HTML 分支只剩 CSP 一道防线。
- 规范是通用重写版:调色板自研 8 色系 × 6 级,不是任何产品的等价复制。
- 接近 1,000,000 字符的配置上限时未做性能验证。
发布
1. npm publish --access public(包名 dsh-inline-visualizer;被占用时改 scoped,并同步三处名称)。
2. 到 awesome-dsh-plugin 提一条 PR:只加一个文件 data/plugins/tonebean__dsh-inline-visualizer.yml,分类 ui,图标用仓库里的 assets/icon-180.png(只收 PNG 位图)。
3. 或自建索引:任意 http(s) 上的 format 1 JSON,用户在「设置 → 插件 → 市场索引」里添加 URL。
完整的命令、验收清单、PR 模板与 semver 陷阱见 PUBLISHING.md(不随包发布)。
许可
MIT,见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
tonebean/dsh-inline-visualizer
在对话中直接渲染可交互的 SVG 与 HTML 卡片
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,359已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,514已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,289已汉化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,675已汉化DSH
71.2
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,522已汉化DSH
71
这是你的仓库?认领条目