/install diagram-drawing
Diagram Drawing
Generate production-quality SVG+PNG technical diagrams from natural language descriptions.
Quick Start
- Classify diagram type from user request
- Extract layers, nodes, edges, flows
- Plan layout (top→bottom for most, left→right for wide flows)
- Generate SVG with semantic shapes and arrows
- Export PNG at 1920px width
Diagram Types & Layout
Architecture
Nodes = services/components. Group into horizontal layers (top→bottom or left→right).
- Typical: Client → Gateway → Services → Data/Storage
- Dashed
\x3Crect>containers group related services - ViewBox:
0 0 960 600or0 0 960 800
Data Flow
Label every arrow with data type ("embeddings", "query", "context"). Wider arrows for primary paths.
Flowchart / Process
Top-to-bottom preferred. Diamond = decision, rounded rect = process, parallelogram = I/O.
Agent Architecture
5 layers: Input → Agent Core (LLM) → Memory → Tools → Output
- Show iterative reasoning with loop arcs (curved arrows)
- Separate memory read/write paths visually
Memory Architecture (Mem0-style)
- Show memory write path and read path separately
- Tiers: Working → Short-term → Long-term → External Store
- Operations:
store(),retrieve(),forget(),consolidate()
Sequence Diagram
- Vertical lifelines (dashed lines)
- Horizontal arrows = messages, top-to-bottom time order
- Activation boxes (thin filled rects on lifeline)
- ViewBox height = 80 + (num_messages × 50)
Comparison Matrix
- Column headers = systems, row headers = attributes
- Checked:
#dcfce7fill + ✓; unsupported:#f9fafbfill
Mind Map
- Central node at
cx=480, cy=280 - Curved bezier branches, not straight lines
- First-level: 360/N degrees apart
UML Diagrams
- Class: 3-compartment rect (name / attributes / methods)
- Use Case: Ellipse + stick figure actors
- State Machine: Rounded rects + transitions with guards
- ER: Rect entities + diamond relationships + cardinality
Shape Vocabulary
| Concept | Shape |
|---|---|
| User / Human | Circle head + body path |
| LLM / Model | Rounded rect, double border, ⚡ |
| Agent | Hexagon or double-border rect |
| Memory (short-term) | Dashed-border rounded rect |
| Memory (long-term) | Solid cylinder |
| Vector Store | Cylinder with grid lines |
| Graph DB | 3 overlapping circles |
| Tool / Function | Rect with ⚙ icon |
| API Gateway | Hexagon |
| Queue / Stream | Horizontal pipe/tube |
| Document | Folded-corner rect |
| Browser / UI | Rect with 3-dot titlebar |
| Decision | Diamond |
Arrow Semantics
| Flow Type | Color | Stroke | Dash |
|---|---|---|---|
| Primary data | #2563eb blue |
2px solid | none |
| Control/trigger | #ea580c orange |
1.5px solid | none |
| Memory read | #059669 green |
1.5px solid | none |
| Memory write | #059669 green |
1.5px | 5,3 |
| Async/event | #6b7280 gray |
1.5px | 4,2 |
| Embedding | #7c3aed purple |
1px solid | none |
| Feedback/loop | #7c3aed purple |
1.5px curved | none |
Always include a legend when 2+ arrow types are used.
Workflow (Always Follow)
- Classify diagram type
- Extract structure — layers, nodes, edges, flows
- Plan layout
- Load style reference from
references/styles.mdfor exact colors - Map nodes to shapes
- Check
references/icons.mdfor known products - Generate SVG
- Validate: run
python3 scripts/svg2png.py \x3Cfile.svg>orrsvg-convert - Export PNG at 1920px width
- Report output paths
SVG Generation Strategy
Estimate complexity:
- Count nodes: N, arrows: A
- Estimated SVG lines: L = 50 (header) + N×15 + A×3 + 20 (legend)
Generation method:
- L \x3C 150: Write tool directly (single call, most reliable)
- L ≥ 150: Python script via exec tool (avoids heredoc issues)
Python method (recommended for complex SVGs):
python3 \x3C\x3C 'EOF'
svg_content = '''\x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 600">
...complete SVG here...
\x3C/svg>'''
with open('/path/to/output.svg', 'w') as f:
f.write(svg_content)
print("Generated output.svg")
EOF
SVG Technical Rules
- ViewBox:
0 0 960 600default;0 0 960 800tall;0 0 1200 600wide - Fonts:
\x3Cstyle>font-family: system-ui, Helvetica, sans-serif\x3C/style>— no external @import \x3Cdefs>: arrow markers, gradients, filters, clip paths- Text: minimum 12px, prefer 13-14px labels
- All arrows:
\x3Cmarker>withmarkerEnd, sizedmarkerWidth="10" markerHeight="7" - Drop shadows:
\x3CfeDropShadow>sparingly - Curved paths:
M x1,y1 C cx1,cy1 cx2,cy2 x2,y2cubic bezier
Built-in Patterns
RAG Pipeline: Query → Embed → VectorSearch → Retrieve → LLM → Response Agentic RAG: Query → Embed → VectorSearch → Agent loop (Tool use) → LLM → Response Agentic Search: Query → Planner → [Search / Calculator / Code] → Synthesizer → Response Mem0 Memory: Input → Memory Manager → [Write: VectorDB + GraphDB] → [Read: Retrieve+Rank] → Context Multi-Agent: Orchestrator → [SubAgent A / B / C] → Aggregator → Output Tool Call Flow: LLM → Tool Selector → Tool Execution → Parser → LLM (loop)
Error Recovery
| Problem | Fix |
|---|---|
| PNG blank/black | Remove @import url() — use system fonts only |
| rsvg-convert not found | Use python3 scripts/svg2png.py fallback |
| SVG cut off at bottom | Increase ViewBox height |
| Text overflowing | text-anchor="middle" + shorten label |
| Marker undefined | Ensure \x3Cmarker id="..."> in \x3Cdefs> |
| Arrow crossing nodes | Use orthogonal routing or bezier detour |
Output
- Default:
./[derived-name].svgand./[derived-name].png - Custom: user specifies
--output /path/
Styles
| # | Name | Background | Best For |
|---|---|---|---|
| 1 | Flat Icon (default) | White | Blogs, docs, slides |
| 2 | Dark Terminal | #0f0f1a |
GitHub, dev articles |
| 3 | Blueprint | #0a1628 |
Architecture docs |
| 4 | Notion Clean | White | Notion, wikis |
| 5 | Glassmorphism | #0d1117 gradient |
Product sites, keynotes |
| 6 | Claude Official | #f8f6f3 warm cream |
Anthropic-style diagrams |
| 7 | OpenAI Official | Pure white | OpenAI-style diagrams |
Load references/styles.md for exact color tokens and patterns.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install diagram-drawing - 安装完成后,直接呼叫该 Skill 的名称或使用
/diagram-drawing触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Diagram Drawing 是什么?
Generate high-quality SVG and PNG technical diagrams from natural language, including architecture, flowchart, sequence, UML, mind maps, and AI agent systems. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 135 次。
如何安装 Diagram Drawing?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install diagram-drawing」即可一键安装,无需额外配置。
Diagram Drawing 是免费的吗?
是的,Diagram Drawing 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Diagram Drawing 支持哪些平台?
Diagram Drawing 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Diagram Drawing?
由 Jialin(@0xcjl)开发并维护,当前版本 v1.0.0。