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

先说一个让人抓狂的场景

你有没有试过让 AI Agent 帮你画一张系统架构图?

大概是这样的:

你:"帮我画一张电商系统的架构图" AI:"好的!我来打开 draw.io......" AI:截图→分析坐标→点击→截图→分析坐标→点击...... 五分钟后...... AI:"我点错了,重来"

这就像你雇了一个设计师,结果他不用鼠标,全靠蒙眼睛猜坐标点击。

图1:传统 GUI 自动化流程,本质是在玩「蒙眼打靶」

今天介绍的 cli-anything-drawio,就是要把这个「蒙眼打靶」变成「指哪打哪」。


它到底是什么?

cli-anything-drawio 是 CLI-Anything 框架生成的一个命令行工具, 把 draw.io 的所有 GUI 操作------加图形、连箭头、改样式、导出图片------ 全部映射成了标准的 CLI 命令,输出结构化 JSON。

AI Agent 调完一条命令,立刻拿到反馈,下一条命令接着来, 就像流水线一样,不需要"截图→等待→分析→猜坐标"这套慢动作。

图2:CLI 模式下 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 一句话,它帮你搞定。

第一步:新建画布

arduino 复制代码
cli-anything-drawio --json project new --width 700 --height 2000 -o 购物流程.drawio

返回:

json 复制代码
{
  "action": "new_project",
  "page_size": "700x2000",
  "saved_to": "购物流程.drawio"
}

画布创建好了。这里有个设计很妙:--json 参数让所有输出都是结构化 JSON, AI Agent 不用解析"人话",直接读字段就行,省去大量 token。

第二步:加图形

draw.io 里那些图形------矩形、椭圆、菱形、圆柱------在这里都有对应的名字:

css 复制代码
# 开始节点(椭圆)
cli-anything-drawio --json --project 购物流程.drawio \
  shape add ellipse --label "开始" --x 275 --y 40 --width 150 --height 55

返回的 id 是关键,后面连线要用它:

json 复制代码
{"id": "v_1773456936157036", "shape_type": "ellipse", "label": "开始"}

继续加其他节点(用户登录、浏览商品、加购物车......),每个都会返回一个唯一 ID。

「支持的图形类型一览:」

命令名 对应图形 典型用途
rectangle 矩形 普通步骤
ellipse 椭圆 开始/结束
diamond 菱形 判断/分支
cylinder 圆柱 数据库
rounded 圆角矩形 用户操作
actor 小人 用户角色

第三步:连线

sql 复制代码
# 把"开始"连到"用户登录",用直角路由风格
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

css 复制代码
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 来说很容易解决:

图3:AI Agent 画图的标准节奏,坐标按顺序递增,简单又可靠

垂直流程图最简单:x 固定,y 从 40 开始每步加 120。 AI 完全可以自己算,不需要人介入。


进阶:样式定制

图画好了,但全是灰色方块不够好看? shape style 命令可以改颜色:

bash 复制代码
# 把开始/结束节点改成绿色
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=开启

撤销?有的

画错了不用从头来:

css 复制代码
cli-anything-drawio --project 购物流程.drawio session undo

最多支持 50 步撤销,底层是 XML 快照栈。 在 REPL 交互模式下直接输入 undo 也行。


它能画哪些图?

只要是 draw.io 支持的图形结构,理论上都能用 CLI 搭出来:

图4: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 的「蒙眼打靶」。

相关推荐
顺风尿一寸2 小时前
Spring事务回滚探秘:从@Transactional到数据库连接的完整旅程
java·后端
雨夜之寂2 小时前
能动手才推 · AI · 03/14
后端
Cache技术分享2 小时前
351. Java IO API - Java 文件操作:java.io.File 与 java.nio.file 功能对比 - 3
前端·后端
QZQ541882 小时前
redis分布式锁相关思考
后端
彭于晏Yan2 小时前
SpringBoot如何调用节假日API
java·spring boot·后端
我爱娃哈哈2 小时前
Spring AI Alibaba 教程:集成阿里云大模型服务实战
后端
寻见9032 小时前
告别只会 CRUD!Spring 核心原理吃透,这一篇就够了(Java 程序员必藏)
java·后端·spring
Moe4882 小时前
基于 AOP 与 Redisson 的分布式锁实现:自动加锁、解锁与 SpEL 参数解析
java·后端·架构
vx-程序开发2 小时前
springboot名士会所会员管理系统-计算机毕业设计源码57546
spring boot·后端·课程设计