先说一个让人抓狂的场景
你有没有试过让 AI Agent 帮你画一张系统架构图?
大概是这样的:
你:”帮我画一张电商系统的架构图”
AI:”好的!我来打开 draw.io……”
AI:截图→分析坐标→点击→截图→分析坐标→点击……
五分钟后……
AI:”我点错了,重来”
这就像你雇了一个设计师,结果他不用鼠标,全靠蒙眼睛猜坐标点击。

今天介绍的 cli-anything-drawio,就是要把这个「蒙眼打靶」变成「指哪打哪」。
它到底是什么?
cli-anything-drawio 是 CLI-Anything 框架生成的一个命令行工具,
把 draw.io 的所有 GUI 操作——加图形、连箭头、改样式、导出图片——
全部映射成了标准的 CLI 命令,输出结构化 JSON。
AI Agent 调完一条命令,立刻拿到反馈,下一条命令接着来,
就像流水线一样,不需要”截图→等待→分析→猜坐标”这套慢动作。

安装,一行搞定
pip install cli-anything-drawio
不需要克隆代码,不需要配置环境。装完就有 cli-anything-drawio 命令。
注意:画图、改图不需要 draw.io 桌面版。
但如果你要导出成 PNG/PDF/SVG,需要装一下:
macOS:brew install --cask drawio
Linux:snap install drawio
实战:让 AI 画一张电商购物流程图
我们用一个真实场景贯穿整个演示:
场景:你是一个产品经理,需要向开发团队解释电商平台的购物流程。
以前你要自己打开 draw.io,一个一个拖图形、连箭头,
半小时能画完就算手速快的。
现在,告诉 AI 一句话,它帮你搞定。
第一步:新建画布
cli-anything-drawio --json project new --width 700 --height 2000 -o 购物流程.drawio
返回:
{
"action": "new_project",
"page_size": "700x2000",
"saved_to": "购物流程.drawio"
}
画布创建好了。这里有个设计很妙:--json 参数让所有输出都是结构化 JSON,
AI Agent 不用解析”人话”,直接读字段就行,省去大量 token。
第二步:加图形
draw.io 里那些图形——矩形、椭圆、菱形、圆柱——在这里都有对应的名字:
# 开始节点(椭圆)
cli-anything-drawio --json --project 购物流程.drawio \
shape add ellipse --label "开始" --x 275 --y 40 --width 150 --height 55
返回的 id 是关键,后面连线要用它:
{"id": "v_1773456936157036", "shape_type": "ellipse", "label": "开始"}
继续加其他节点(用户登录、浏览商品、加购物车……),每个都会返回一个唯一 ID。
支持的图形类型一览:
| 命令名 | 对应图形 | 典型用途 |
|---|---|---|
rectangle | 矩形 | 普通步骤 |
ellipse | 椭圆 | 开始/结束 |
diamond | 菱形 | 判断/分支 |
cylinder | 圆柱 | 数据库 |
rounded | 圆角矩形 | 用户操作 |
actor | 小人 | 用户角色 |
第三步:连线
# 把"开始"连到"用户登录",用直角路由风格
cli-anything-drawio --project 购物流程.drawio \
connect add v_1773456936157036 v_1773456936238240 --style orthogonal
# 支付判断节点,分两条路
cli-anything-drawio --project 购物流程.drawio \
connect add 支付节点ID 成功节点ID --label "成功"
cli-anything-drawio --project 购物流程.drawio \
connect add 支付节点ID 失败节点ID --label "失败"
连线样式有四种,记住这两个就够用了:
orthogonal:直角折线,正式场合首选,流程图标配curved:弧线,画”失败重试”这种回头箭头不会乱穿
第四步:导出 PNG
cli-anything-drawio --project 购物流程.drawio \
export render 购物流程.png -f png --crop --scale 2 --overwrite
--crop 把空白边距裁掉,--scale 2 出 2 倍清晰度,
丢进 PPT 或者发给开发同学,效果一点不比手画差。
等等,这里有个问题
你可能会想:”AI 去哪里知道节点的 x/y 坐标该怎么放?”
这是坐标管理问题,也是 CLI 方式相比直接生成 XML 的一个真实挑战。
好消息是,这个问题对 AI Agent 来说很容易解决:

垂直流程图最简单:x 固定,y 从 40 开始每步加 120。
AI 完全可以自己算,不需要人介入。
进阶:样式定制
图画好了,但全是灰色方块不够好看?shape style 命令可以改颜色:
# 把开始/结束节点改成绿色
cli-anything-drawio --project 购物流程.drawio \
shape style v_开始ID fillColor "#d4edda"
# 把支付判断菱形改成橙色,突出重要性
cli-anything-drawio --project 购物流程.drawio \
shape style v_支付判断ID fillColor "#fff3cd"
# 加粗边框
cli-anything-drawio --project 购物流程.drawio \
shape style v_某个ID strokeWidth "2"
常用样式属性速查:
| 属性 | 含义 | 示例值 |
|---|---|---|
fillColor | 填充色 | #dae8fc(蓝)#d4edda(绿)#fff3cd(黄) |
strokeColor | 边框色 | #333333 |
fontSize | 字体大小 | 14 |
fontStyle | 字体样式 | 1=粗体 2=斜体 |
shadow | 阴影 | 1=开启 |
撤销?有的
画错了不用从头来:
cli-anything-drawio --project 购物流程.drawio session undo
最多支持 50 步撤销,底层是 XML 快照栈。
在 REPL 交互模式下直接输入 undo 也行。
它能画哪些图?
只要是 draw.io 支持的图形结构,理论上都能用 CLI 搭出来:

唯一的限制是:坐标要自己管,没有自动布局。
对于 AI Agent 来说不是问题,对于手撸的人来说,
复杂图形还是在 GUI 里拖拽更省心。
回到那个产品经理的场景
用了 cli-anything-drawio 之后:
你:”帮我画一张电商购物流程图”
AI:新建画布 → 添加 18 个节点 → 连接 17 条箭头 → 导出 PNG
30 秒后
AI:”图已生成:购物流程.png”
全程没有截图,没有坐标猜测,没有”点错了重来”。
每一步操作都有 JSON 反馈,AI 知道自己做了什么,
出了问题也能精确定位并修复。
这才是 AI 操作软件应该有的方式——不是模拟人点鼠标,而是直接调用能力。
总结:三句话记住它
- 装它:
pip install cli-anything-drawio,一行搞定 - 用它:
project new→shape add→shape list→connect add→export render - 给 Agent 用:加
--json拿结构化返回,坐标按顺序算,导出 PNG 交差
流程图不再是产品经理的噩梦,也不再是 AI Agent 的「蒙眼打靶」。

