AI 再也不用截图点点点了!用一行命令让它直接画流程图


先说一个让人抓狂的场景

你有没有试过让 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 操作软件应该有的方式——不是模拟人点鼠标,而是直接调用能力


总结:三句话记住它

  1. 装它pip install cli-anything-drawio,一行搞定
  2. 用它project newshape addshape listconnect addexport render
  3. 给 Agent 用:加 --json 拿结构化返回,坐标按顺序算,导出 PNG 交差

流程图不再是产品经理的噩梦,也不再是 AI Agent 的「蒙眼打靶」。