cathrynlavery/diagram-design — 编辑级 AI 图解生成
让 AI 生成可编辑的 HTML 和 SVG 图解。
本周新增 Star 6,638 | 仓库 Star 总数 60,276 | Forks 3,893
| 项目 | 信息 |
|---|---|
| 官方仓库 | https://github.com/cathrynlavery/diagram-design |
| 官网 | https://diagramdesign.dev |
| 官方构建 | 仅来自本仓库。LittleMight(Cathryn Lavery 的公司)发布插件目录列表;其他名称下的列表均为非官方副本 |
| 支持客户端 | Claude Code、Codex、Cursor、Factory Droid、Qoder、GitHub Copilot、VS Code、Kiro、Gemini CLI、Cline、Windsurf、Amp、Zed、Warp、Roo、Kilo、OpenCode、Pi、Antigravity 等 |
| 语言 / 许可 | HTML / MIT |
| 最新提交 | 2026-10-21 |
| 一句话定位 | 一套 编辑级(editorial) 图解设计系统:45 种图解类型,输出 自包含的 HTML + SVG,无阴影、无 Mermaid 式的糊弄 |

▲ 图 0:Diagram Design 官方 Logo(官方图)

▲ 图 1:diagram-design 官方演示(官方截图)
官方架构图示例

▲ 图 2:Architecture 图解示例(官方截图)
官方时序图示例

▲ 图 3:Sequence 图解示例(官方截图)
官方树状图示例

▲ 图 4:Tree 图解示例(官方截图)
一、核心理念
不是"把 Mermaid 渲染得好看点",而是重新定义图解的视觉语言。
典型提示词:
- "Make me an architecture diagram of my app: frontend, backend, database, Redis cache."
- "I need a quadrant showing Q2 projects by impact vs effort."
- "Give me a sequence of a bearer call with token refresh on 401."
- "Onboard diagram-design to https://yoursite.com"(抓取你站点的调色板与字体,让之后每张图都一致)
智能体会选定类型、说明计划,然后写出 一个 .html 文件 —— 双击就能打开。
45 种图解类型
架构、流程图、时序图、UML 类图、ER 图、状态机、泳道、旅程图、故事地图、看板、甘特图、瀑布图、四象限、雷达图、树状图、桑基图、层级树、热力图、散点图、极坐标、维恩图、金字塔、堆栈、爆炸图、axonometric 平面图、鱼骨图、方差矩阵、安全矩阵、服务蓝图、依赖图、部署图、数据流、DP 集成、层次分解、极简架构、高级架构、圆环流程、循环图、迁移图、决策树、组织架构、封面/标题图、行业 IT 状态图、旅程/漏斗、路线图、时间线等。
二、部署方式
方式 A:通用 skills CLI(覆盖绝大多数客户端)
适用于任何读取 Agent Skills 的主机:Cursor、Claude Code、Codex、Qoder、GitHub Copilot、Gemini CLI、Cline、Windsurf、Amp 等。
npx skills add cathrynlavery/diagram-design
跨智能体的 skills CLI 会解析本仓库,检测到 skills/diagram-design/SKILL.md,并把整个 skill(references/、assets/、scripts/)安装到你选择的每个主机根目录。
- 当选中的根目录解析为 多个 skills 目录时,CLI 会询问安装方式并推荐 Symlink —— 一份规范副本,链到每个根目录,之后一次更新同时到达所有地方
- 传
--copy可为每个主机做独立副本 - 选中项只解析为单个目录时会直接复制(此处区分无意义)
- Windows 未开启开发者模式、符号链接不可用时,CLI 回退为复制并报告哪些根目录被复制
这是 独立安装,与下面的 marketplace 分离:它 不自动跟随 marketplace 更新。用
npx skills update diagram-design拉取合并后的更新。独立安装 只装 Agent Skill,
/export-diagram、/import-mermaid、/profile、/doctor这些命令界面仍属原生包。若你的主机支持下面某个 marketplace,优先用 marketplace。
方式 B:Claude Code —— 插件市场(带更新与斜杠命令)
/plugin marketplace add cathrynlavery/diagram-design
/plugin install diagram-design@diagram-design
开启自动更新: 运行 /plugin → 打开 Marketplaces → 选择 diagram-design → 选择 Enable auto-update。Claude Code 对第三方 marketplace 默认关闭自动更新;开启后会在启动后后台刷新市场与已安装插件。提示时运行 /reload-plugins,或让下次会话加载更新。
方式 C:Codex
codex plugin marketplace add cathrynlavery/diagram-design
codex plugin add diagram-design@diagram-design
Codex 在启动时刷新已配置的 Git marketplace。要立即拉取,运行 codex plugin marketplace upgrade diagram-design 并开启新会话。
方式 D:Qoder
git clone https://github.com/cathrynlavery/diagram-design.git
qoder plugins validate ./diagram-design
qoder plugins install ./diagram-design
qoder plugins list
Qoder 直接加载规范的 skills/diagram-design/ 树与共享命令定义,不维护 Qoder 专属副本。
Qoder IDE: 从受版本控制的插件面构建有界 ZIP,再通过 Extensions → Plugins → Add Plugins → Upload Plugin 导入:
git -C diagram-design archive --format=zip \
--output=../diagram-design-qoder.zip HEAD \
.qoder-plugin commands skills LICENSE
安装或更新插件后需开启新任务。
方式 E:GitHub Copilot
copilot plugin marketplace add cathrynlavery/diagram-design
copilot plugin install diagram-design@diagram-design
用 copilot skill list(或交互会话中的 /skills)确认发现,然后用自然语言要一张图。拉取合并更新:
copilot plugin marketplace update diagram-design
copilot plugin update diagram-design@diagram-design
方式 F:Factory Droid
droid plugin marketplace add https://github.com/cathrynlavery/diagram-design
droid plugin install diagram-design@diagram-design --scope user
Droid 按 commit 而非清单的显示版本跟踪 Git 插件。更新:
droid plugin marketplace update diagram-design
droid plugin update diagram-design@diagram-design --scope user
然后开启新会话。
方式 G:Claude Cowork(组织市场)
组织 GitHub marketplace 目前要求私有或内部仓库,因此需 先把本公开仓库镜像到你自己组织拥有的仓库。在 Organization settings → Plugins → Add plugin → GitHub,连接该镜像,并从 marketplace 菜单启用 Sync automatically。
自动同步在含插件版本提升的 PR 合并到镜像默认分支时触发(直接 push 不触发 webhook)。然后从组织 marketplace 安装。
方式 H:Pi
pi install https://github.com/cathrynlavery/diagram-design
在打开的 Pi 会话中运行 /reload。Pi 会为匹配的图解请求提供该 skill;用 /skill:diagram-design 显式调用。Pi 还会加载 /export-diagram、/import-mermaid、/import-excalidraw、/profile、/doctor 提示模板。
未固定版本的 Git 安装是 有意为之 —— Pi 没有自动包刷新机制,需运行
pi update --extensions拉取合并后的更新。
方式 I:Kiro
从仓库子目录 URL 导入 Agent Skill:
https://github.com/cathrynlavery/diagram-design/tree/main/skills/diagram-design
Kiro 把导入的 skill 复制到工作区的 .kiro/skills/ 或全局的 ~/.kiro/skills/。要更新需 重新导入该 URL。自定义智能体若声明资源,应包含 skill://diagram-design/**/SKILL.md。
方式 J:OpenCode
把 skills/diagram-design/ 复制或符号链接到项目的 .opencode/skills/diagram-design 或全局的 ~/.config/opencode/skills/diagram-design。OpenCode 没有 Diagram Design 的 marketplace 包;复制安装仅在用更新的 checkout 替换目录时才会更新。
方式 K:可编辑安装(想自定义风格指南时)
托管安装方便,但修改 references/style-guide.md 可能在包更新时被覆盖。已保存的 profile 在 ~/.diagram-design/profiles/ 中 能存活更新,带 .diagram-design 标记的项目也不受影响。要直接改工作风格指南,请克隆仓库并安装本地路径:
git clone git@github.com:cathrynlavery/diagram-design.git ~/code/diagram-design
# Pi:把 checkout 注册为本地包
pi install ~/code/diagram-design
# Claude Code:符号链接内层 skill
ln -s ~/code/diagram-design/skills/diagram-design ~/.claude/skills/diagram-design
# 其它 Agent Skills 主机:只创建你实际用的根目录
mkdir -p ~/.agents/skills ~/.cursor/skills ~/.cline/skills ~/.kiro/skills ~/.config/opencode/skills ~/.copilot/skills
ln -s ~/code/diagram-design/skills/diagram-design ~/.agents/skills/diagram-design
ln -s ~/code/diagram-design/skills/diagram-design ~/.cursor/skills/diagram-design
ln -s ~/code/diagram-design/skills/diagram-design ~/.cline/skills/diagram-design
ln -s ~/code/diagram-design/skills/diagram-design ~/.kiro/skills/diagram-design
ln -s ~/code/diagram-design/skills/diagram-design ~/.config/opencode/skills/diagram-design
ln -s ~/code/diagram-design/skills/diagram-design ~/.copilot/skills/diagram-design
三、使用方法
3.1 快速上手
在克隆的 checkout 中打开画廊看全部图解:
open skills/diagram-design/assets/index.html # macOS
xdg-open skills/diagram-design/assets/index.html # Linux
Windows:
start skills\diagram-design\assets\index.html
直接从模板起步:
cp skills/diagram-design/assets/template.html my-diagram.html # 极简浅色
cp skills/diagram-design/assets/template-full.html my-diagram.html # 含摘要卡片的编辑级版式
cp skills/diagram-design/assets/template-motion.html my-diagram.html # 可选的无障碍动效
然后直接向你的智能体要一张图。
3.2 语义模式与可选动效
当行为比形状更重要时,skill 先选语义模式,再选视觉类型。九个可路由的模式覆盖:
扇入队列与瓶颈、重复阶段槽位、无结构输入转换、成对策略追踪、安全铺路、治理目录、补偿性安全层、可追溯的块分解、生命周期阶段图。
每个模式定义了触发条件、原语、预算、反模式、静态回退与最近的视觉类型(见 references/semantic-patterns.md)。
动效是可选的,不会创造新的视觉类型。 animation.md 定义了 none、reveal、step、loop 四种模式,要求有完整的静态首帧、确定性时序,以及交互可用时的控件。
- 减弱动效输出 显示完整静态帧并隐藏/禁用播放控件
- 动效 HTML 必须使用
template-motion.html中 经过审查的 控制器;任意的或被修改过的内联脚本、远程资源、CSS import 与可执行 HTML 属性都会被 拒绝 - 默认是
none—— 普通输出保持静态且无脚本
3.3 从 draw.io / Mermaid / Excalidraw 导入
已有 draw.io(diagrams.net)、Mermaid 或 Excalidraw 图?指向源文件,skill 会 重绘 它们:同样的内容,这套设计系统,按目标所需尺寸。
/diagram-design:import-drawio platform.drawio
/diagram-design:import-drawio platform.drawio --size=slide-16x9 --detail=simplified --audience=executive
/diagram-design:import-drawio platform.drawio --detail=faithful --format=png --page=all
/diagram-design:import-mermaid README.md --diagram=all
/diagram-design:import-mermaid architecture.mmd --size=slide-16x9 --detail=simplified
/diagram-design:import-excalidraw whiteboard.excalidraw --size=slide-16x9 --detail=simplified
或者直接说:"redraw this drawio file for my deck"、"make this Mermaid block editorial"、"この Mermaid をスライド用にきれいにして"。
支持的容器格式:
- draw.io:
.drawio、.drawio.xml、内嵌图的.drawio.png、.drawio.svg(含看起来像 base64 乱码的压缩载荷) - Mermaid:
.mmd、.mermaid,或 Markdown 中一个或多个```mermaid围栏块。UTF-8 文件可能带 BOM - Excalidraw:
.excalidraw、.excalidraw.json场景文件(不支持.excalidraw.png/.excalidraw.svg导出) - 只解析文本:无渲染、无 JavaScript、无浏览器、无网络、不跟随点击目标
3.4 四个旋钮
重点不是转换,而是 把输出适配到它要去的地方。同一源文件,三种不同结果:
| 旋钮 | 选项 | 改变什么 |
|---|---|---|
| Format | html · svg · png · html+png |
交付物。SVG 给 Figma,PNG 给幻灯片,HTML 给网页 |
| Size | doc-inline · doc-wide · slide-16x9 · slide-4x3 · social-og · social-square · print-a4-landscape · print-a3-landscape · print-letter-landscape · fit |
viewBox 与字号梯度:投影幻灯片得到 16px 节点名,而不是 12px |
| Detail | faithful(≤24 节点,分区)· balanced(≤12)· simplified(≤7) |
源内容保留多少,走固定降级阶梯:装饰 → 重复 → 叶簇 → 基础设施 |
| Audience | engineer · mixed · executive |
措辞而非数量。Auth Service / JWT · RS256 · :8443 → Auth Service / token check → Sign-in |
每次导入都以一份 保真度账本(fidelity ledger) 结束,列出什么被合并、折叠或丢弃:
Detail: balanced · 12 source nodes → 8 drawn
Collapsed: "Token valid?" decision → edge label on Gateway → Auth
Dropped: 1 sticky note ("legacy path, to be retired"), unconnected in source
Kept in full: the request path (Web/Mobile → Gateway → Orders → Postgres)
永不承接的: 源或渲染器的坐标、源调色板、源字体、draw.io 的斜向连接线乱麻、Mermaid 的自动布局、Excalidraw 的手绘几何。
永远承接的: 组件、关系、分组、方向。
3.5 导出 PNG / SVG
图解以自包含 HTML 交付,但你可以把图解本体导出给 Figma、幻灯片或社交卡片。
Pi:
/export-diagram path/to/diagram.html
/export-diagram path/to/diagram.html --svg-only
/export-diagram path/to/diagram.html --png-only --scale=3
/export-diagram path/to/diagram.html --registry
Claude Code:
/diagram-design:export-diagram path/to/diagram.html
/diagram-design:export-diagram path/to/diagram.html --svg-only
/diagram-design:export-diagram path/to/diagram.html --png-only --scale=3
/diagram-design:export-diagram path/to/diagram.html --registry
或直接说:"Export this diagram as SVG and PNG."
- SVG 抽取
` 节点并注入 Google Fonts,使其能在浏览器、Figma、Illustrator 中独立渲染。动画绑定遵循带命名空间的 keyframes,即使属性名使用 CSS 转义。传--system-fonts` 可跳过字体导入以离线使用。 - PNG 通过 Playwright 以 2× 默认倍率光栅化。一次性准备:
pip install playwright && playwright install chromium - 两种格式都 只含图解本体 ——
-full变体中的编辑卡片与页眉不包含在内。要截取完整编辑版式,用浏览器的打印为 PDF 或整页截图。 --registry:对使用可追溯块分解模式的图解,额外输出.registry.json,把每个块的data-block-*元数据结构化投影出来。
动效 HTML 导出: 打开 ?motion=static,等待 document.fonts.ready,确认动效根节点有 data-frame="static" 后再捕获。仅在明确要求某个中间帧时才用 ?motion=step&step=N。
3.6 品牌化引导
Onboard diagram-design to https://yoursite.com
skill 会抓取你的 调色板与字体,让之后每张图都匹配你的站点。
流程:
- 检测 —— 抓取站点,识别调色板、字体与设计 token
- 提取 —— 抽取主色、强调色、中性色与字体栈
- 对比度检查自动进行 —— 无障碍对比度在生成时就校验
- 默认无障碍 —— 生成的颜色组合满足 WCAG 对比度要求
- 离线字体 —— 可用时使用本地字体,避免依赖外部 CDN
- 手动覆盖 —— 需要时可手动指定
- 首次运行闸门 —— 未完成品牌配置前会先询问
已保存的 profile 在 ~/.diagram-design/profiles/ 中,能存活包更新;带 .diagram-design 标记的项目不受影响。
3.7 多客户端协作
同一 skill 可在多个客户端间共享。保存的 profile 全局通用,项目级标记让项目自带样式上下文。
3.8 架构:渐进式披露
SKILL.md 先路由行为(需要时),再路由版式。语义、类型、动画参考 只在相关时才加载。
diagram-design/
├── SKILL.md
├── references/ # 版式、类型、语义模式、动画、导入、输出规范
├── assets/ # 模板、示例、画廊 index.html
└── scripts/ # 导出、校验工具
渐进式披露的意义: 不把 45 种类型的全部细节一次性塞进上下文 —— 只在需要时加载相关的那几份。
四、什么时候 不该 用这个 skill
官方文档明确列出了反模式。在以下场景请用普通图表工具:
- 需要严格遵循企业既有图表规范(Visio、draw.io 模板)的场景
- 需要实时数据流或动态交互式仪表盘(不是静态图解)
- 只需要一张快速草图,不需要可编辑、可导出的成品
- 团队已有成熟的 Mermaid + 主题化工作流
参考链接
- 仓库:https://github.com/cathrynlavery/diagram-design
- 官网:https://diagramdesign.dev
- 烹饪手册:https://github.com/cathrynlavery/diagram-design/blob/main/docs/cookbook.md
- 隐私说明:https://github.com/cathrynlavery/diagram-design/blob/main/PRIVACY.md
- 贡献指南:https://github.com/cathrynlavery/diagram-design/blob/main/CONTRIBUTING.md