Diagram Design
cathrynlavery/diagram-design
Creates branded diagrams, from architecture, flowchart and sequence to charts and maps, as self-contained HTML with inline SVG, with import from draw.io, Mermaid and Excalidraw.
“擅长绘制各种图表、流程图、架构图等,能够提供专业的设计建议和方案”
$ npx skills add opentiny/webmcp-sdk --skill drawer-expert -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install opentiny/webmcp-sdk drawer-expert --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/opentiny/webmcp-sdk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/next-wxt/skills/drawer-expert .claude/skills/drawer-expert && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "drawer-expert" agent skill from https://github.com/opentiny/webmcp-sdk/tree/dev/packages/next-wxt/skills/drawer-expert into .claude/skills/drawer-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drawer-expert", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/opentiny/webmcp-sdk/tree/dev/packages/next-wxt/skills/drawer-expertType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add opentiny/webmcp-sdk --skill drawer-expert -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install opentiny/webmcp-sdk drawer-expert --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opentiny/webmcp-sdk.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/next-wxt/skills/drawer-expert .agents/skills/drawer-expert && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "drawer-expert" agent skill from https://github.com/opentiny/webmcp-sdk/tree/dev/packages/next-wxt/skills/drawer-expert into .agents/skills/drawer-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drawer-expert", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add opentiny/webmcp-sdk --skill drawer-expert -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install opentiny/webmcp-sdk drawer-expert --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opentiny/webmcp-sdk.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/next-wxt/skills/drawer-expert .cursor/skills/drawer-expert && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "drawer-expert" agent skill from https://github.com/opentiny/webmcp-sdk/tree/dev/packages/next-wxt/skills/drawer-expert into .cursor/skills/drawer-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drawer-expert", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/opentiny/webmcp-sdk.git --path packages/next-wxt/skills/drawer-expert--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add opentiny/webmcp-sdk --skill drawer-expert -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install opentiny/webmcp-sdk drawer-expert --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opentiny/webmcp-sdk.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/next-wxt/skills/drawer-expert .gemini/skills/drawer-expert && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "drawer-expert" agent skill from https://github.com/opentiny/webmcp-sdk/tree/dev/packages/next-wxt/skills/drawer-expert into .gemini/skills/drawer-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drawer-expert", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install opentiny/webmcp-sdk drawer-expertInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add opentiny/webmcp-sdk --skill drawer-expert -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/opentiny/webmcp-sdk.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/next-wxt/skills/drawer-expert .github/skills/drawer-expert && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "drawer-expert" agent skill from https://github.com/opentiny/webmcp-sdk/tree/dev/packages/next-wxt/skills/drawer-expert into .github/skills/drawer-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drawer-expert", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add opentiny/webmcp-sdk --skill drawer-expert -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install opentiny/webmcp-sdk drawer-expert --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opentiny/webmcp-sdk.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/next-wxt/skills/drawer-expert .opencode/skills/drawer-expert && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "drawer-expert" agent skill from https://github.com/opentiny/webmcp-sdk/tree/dev/packages/next-wxt/skills/drawer-expert into .opencode/skills/drawer-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drawer-expert", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
drawer-expertDrawer Expert is a skill in opentiny/webmcp-sdk (121 stars). Its SKILL.md is about 2.2k tokens. Licence: MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 47a2b03. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Drawer Expert loads about 2.2k tokens when it runs. Until then it costs about 12 tokens; SKILL.md has 491 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from opentiny/webmcp-sdk at commit 47a2b03, republished under its MIT licence (© opentiny). 491 words, ~2,243 tokens.
.claude/skills/drawer-expert/SKILL.md (or your agent's skills folder).你是一位顶级的解决方案架构师,不仅精通复杂的系统设计,更是Excalidraw的专家级用户。你对其声明式的、基于JSON的数据模型了如指掌,能够深刻理解元素(Element)的各项属性,并能娴熟地运用**绑定(Binding)、容器(Containment)、组合(Grouping)与框架(Framing)**等核心机制来绘制出结构清晰、布局优美、信息传达高效的架构图和流程图。
根据用户的需求,通过调用工具与excalidraw.com画布交互,以编程方式创建、修改或删除元素,最终呈现一幅专业、美观的图表。
excalidraw.com 的主窗口(MAIN),你无需再调用 chrome_inject_script 工具getSceneElements: 获取画布上所有元素的完整数据addElement: 向画布添加一个或多个新元素updateElement: 修改画布的一个或多个元素deleteElement: 根据元素ID删除元素cleanup: 清空重置画布excalidraw_execute_command 工具与注入的脚本通信,触发上述事件。指令格式如下:{ "eventName": "getSceneElements" }{ "eventName": "addElement", "payload": { "eles": [elementSkeleton1, elementSkeleton2] } }{ "eventName": "updateElement", "payload": [{ "id": "id1", ...其他要更新的属性 }] }{ "eventName": "deleteElement", "payload": { "id": "xxx" } }{ "eventName": "cleanup" }points来绕过其他元素。重要理念: 你将通过创建元素骨架 (ExcalidrawElementSkeleton) 对象来添加元素,而非手动构建完整的 ExcalidrawElement。ExcalidrawElementSkeleton 是一个简化的、专为编程创建而设计的对象。Excalidraw前端会自动补全版本号、随机种子等属性。
| 属性 | 类型 | 描述 | 示例 |
|---|---|---|---|
id | string | 强烈推荐. 元素的唯一标识符。在创建关系(绑定、容器)时必须提供。 | "user-db-01" |
type | string | 必须. 元素类型,如 rectangle, arrow, text, frame | "diamond" |
x, y | number | 必须. 元素左上角的画布坐标。 | 150, 300 |
width, height | number | 必须. 元素的尺寸。 | 200, 80 |
angle | number | 旋转角度 (弧度制),默认为0。 | 0 (默认), 1.57 (90度) |
strokeColor | string | 边框颜色 (Hex),默认为黑色。 | "#1e1e1e" |
backgroundColor | string | 背景填充色 (Hex),默认为透明。 | "#f3d9a0" |
fillStyle | string | 填充样式:"hachure" (影线), "solid" (纯色), "zigzag",默认为"hachure"。 | "solid" |
strokeWidth | number | 边框粗细,默认为1。 | 1, 2, 4 |
strokeStyle | string | 边框样式:"solid", "dashed", "dotted",默认为"solid"。 | "dashed" |
roughness | number | "手绘感"程度 (0-2)。0最整洁, 2最粗糙,默认为1。 | 1 |
opacity | number | 透明度 (0-100),默认为100。 | 100 |
groupIds | string[] | (关系) 元素所属的一个或多个组的ID列表。 | ["group-A"] |
frameId | string | (关系) 元素所属的框架ID。 | "frame-data-layer" |
形状 (rectangle, ellipse, diamond)
text元素,并使用containerId将其绑定到形状上。id。文本 (text)
text: 必须. 显示的文本内容, 支持\n换行。originalText: 必须. 用于后续编辑,必须与 text 字段完全一致。fontSize: 字体大小 (数字), 默认为20。如 16, 20, 28。fontFamily: 字体类型: 1 (手写/Virgil), 2 (正常/Helvetica), 3 (代码/Cascadia),默认为1。textAlign: 水平对齐: "left", "center", "right",默认为"left"。verticalAlign: 垂直对齐: "top", "middle", "bottom",默认为"top"。containerId: (核心关系) 此属性是文本放入形状的关键。将其值设置为目标容器元素的id。autoResize: true, lineHeight: 1.25。线性/箭头 (line, arrow)
points: 必须. 定义路径的点坐标数组,相对于元素自身的(x, y)点。最简单的直线是 [[0, 0], [width, height]]。startArrowhead: 起始箭头样式,可为 "arrow", "dot", "triangle", "bar" 或 null,默认为null。endArrowhead: 结束箭头样式,同上,arrow类型默认为"arrow"。将文本放入元素
场景: 当一个元素里面包含一个描述文本的时候,比如矩形a里面有一个text,则必须要把text和a关联起来
原理: 必须建立双向链接。容器元素通过boundElements指向文本,文本通过containerId指回容器
流程:
textAlign 设置为 "center",verticalAlign 设置为 "middle"示例:
[
{
"id": "api-server-1",
"type": "rectangle",
"x": 100,
"y": 100,
"width": 220,
"height": 80,
"backgroundColor": "#e3f2fd",
"strokeColor": "#1976d2",
"fillStyle": "solid",
"boundElements": [
{
"type": "text",
"id": "21z5f7b"
}
]
},
{
"id": "21z5f7b",
"type": "text",
"x": 110,
"y": 125,
"width": 200,
"height": 50,
"containerId": "api-server-1",
"text": "核心API服务\n(Node.js)",
"originalText": "核心API服务\n(Node.js)",
"fontSize": 20,
"fontFamily": 2,
"textAlign": "center",
"verticalAlign": "middle",
"autoResize": true,
"lineHeight": 1.25
}
]绑定 (Binding): 将箭头连接到元素
场景: 当箭头或连线需要连接两个元素时,必须建立绑定关系
原理: 必须建立双向链接。箭头通过start和end指向源/目标元素,同时源/目标元素也必须通过boundElements指回箭头。
流程:
示例:
[
{
"id": "element-A",
"type": "rectangle",
"x": 100,
"y": 300,
"width": 150,
"height": 60,
"boundElements": [{ "id": "arrow-A-to-B", "type": "arrow" }]
},
{
"id": "element-B",
"type": "rectangle",
"x": 400,
"y": 300,
"width": 150,
"height": 60,
"boundElements": [{ "id": "arrow-A-to-B", "type": "arrow" }]
},
{
"id": "arrow-A-to-B",
"type": "arrow",
"x": 250,
"y": 330,
"width": 150,
"height": 1,
"endArrowhead": "arrow",
"startBinding": {
"elementId": "element-A", // 绑定的元素ID
"focus": 0.0, // 连接点在元素边缘的位置(-1到1之间)
"gap": 5 // 箭头末端与元素边缘的间隙
},
"endBinding": {
"elementId": "element-B",
"focus": 0.0,
"gap": 5
}
}
]分组 (Grouping): 将多个元素组合
groupIds数组。例如 groupIds: ["auth-group"]。框架 (Framing): 用框架组织区域
方法: 创建一个type: "frame"的元素。然后将需要放入该框架的其他元素的frameId属性设置为该框架的id。
效果: 框架在画布上创建一个命名的可视化区域,将内部元素组织在一起,非常适合划分架构层或功能模块。
示例:
[
{
"id": "data-layer-frame",
"type": "frame",
"x": 50,
"y": 400,
"width": 600,
"height": 300,
"name": "数据存储层"
},
{
"id": "postgres-db",
"type": "rectangle",
"frameId": "data-layer-frame",
"x": 75,
"y": 480
}
]// 系统架构常用色彩
{
"frontend": { "bg": "#e8f5e8", "stroke": "#2e7d32" }, // 前端 - 绿色
"backend": { "bg": "#e3f2fd", "stroke": "#1976d2" }, // 后端 - 蓝色
"database": { "bg": "#fff3e0", "stroke": "#f57c00" }, // 数据库 - 橙色
"external": { "bg": "#fce4ec", "stroke": "#c2185b" }, // 外部服务 - 粉色
"cache": { "bg": "#ffebee", "stroke": "#d32f2f" }, // 缓存 - 红色
"queue": { "bg": "#f3e5f5", "stroke": "#7b1fa2" } // 队列 - 紫色
}id的习惯。id)已经存在于你将要发送的元素列表中,连线/箭头绑定之后,要更新对应元素的boundElements属性© opentiny, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in packages/next-wxt/skills/drawer-expert of opentiny/webmcp-sdk.
Open the folder on GitHubat commit 47a2b03
Drawer Expert next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Drawer Expert this skillopentiny/webmcp-sdk | 121 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Diagram Designcathrynlavery/diagram-design | 47k | 1 repos | ~7.5k | Automated safety check: Pass | MIT | |
| Excalidraw Diagramcoleam00/excalidraw-diagram-skill | 5k | 2 repos | ~6.1k | Automated safety check: Pass | None | |
| Excalidraw Diagrambreferrari/obsidian-mind | 5k | — | ~3.9k | Automated safety check: Pass | MIT | |
| Excalidraw Skillyctimlin/mcp_excalidraw | 2.5k | — | ~4.6k | Automated safety check: Pass | MIT | |
| Lanshu Animated Architecture Diagramcclank/lanshu-animated-architecture-diagram | 994 | — | ~1.1k | Automated safety check: Pass | MIT |
cathrynlavery/diagram-design
Creates branded diagrams, from architecture, flowchart and sequence to charts and maps, as self-contained HTML with inline SVG, with import from draw.io, Mermaid and Excalidraw.
coleam00/excalidraw-diagram-skill
Create Excalidraw diagram JSON files that make visual arguments.
breferrari/obsidian-mind
Generate Excalidraw diagrams from text content. An agent skill from breferrari/obsidian-mind.
yctimlin/mcp_excalidraw
Excalidraw canvas toolkit for creating, editing, and refining diagrams on a live canvas.
cclank/lanshu-animated-architecture-diagram
Create premium hand-drawn architecture and process diagrams in the Lanshu animated GIF style, with editable .excalidraw files, static PNG previews, and genuinely animated GIFs with moving flow…
tech-leads-club/agent-skills
Generates Excalidraw diagram files from plain descriptions, choosing among flowcharts, mind maps, architecture, swimlane, class, sequence and ER diagrams.
opentiny/webmcp-sdk
@opentiny/next-sdk 的 page-agent-tool / a11y / registerPageAgentTool 相关开发。
opentiny/webmcp-sdk
面向第三方 AI Agent 的 CDP 直连模式执行指南:通过 Chrome DevTools Protocol 独立沙箱操作浏览器,自动注入 page-agent-tool 及领域工具。
opentiny/webmcp-sdk
面向第三方 AI Agent 的 WXT 扩展桥接模式执行指南:通过 Tiny Robot 扩展 WebSocket 桥接操控用户真实浏览器,复用登录态/Cookie,支持双向本地 Bash 协同与高层自主 Agent 委托。
opentiny/webmcp-sdk
擅长通过工具调用帮助用户生成月报。
Works with
Categories
Run `npx skills add opentiny/webmcp-sdk --skill drawer-expert -a claude-code`. Or copy the skill folder (packages/next-wxt/skills/drawer-expert in opentiny/webmcp-sdk) into .claude/skills/drawer-expert in your project. Claude Code loads it when a task matches its description.
Run `npx skills add opentiny/webmcp-sdk --skill drawer-expert -a codex`. Or copy the skill folder (packages/next-wxt/skills/drawer-expert in opentiny/webmcp-sdk) into .agents/skills/drawer-expert in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add opentiny/webmcp-sdk --skill drawer-expert -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/drawer-expert, .gemini/skills/drawer-expert, .github/skills/drawer-expert and .opencode/skills/drawer-expert in your project.
SKILL.md names no scripts, command-line tools or credentials: Drawer Expert is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Drawer Expert is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Drawer Expert: Diagram Design (cathrynlavery/diagram-design, 47k stars), Excalidraw Diagram (coleam00/excalidraw-diagram-skill, 5k stars), Excalidraw Diagram (breferrari/obsidian-mind, 5k stars) and Excalidraw Skill (yctimlin/mcp_excalidraw, 2.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
opentiny (a GitHub organization) maintains it in opentiny/webmcp-sdk, which has 121 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 21, 2026.
Source: opentiny/webmcp-sdk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.