cli-anything-drawio 是做什么的?
一个用于 Draw.io 的命令行工具——从命令行创建、编辑和导出图表。
安装
该 CLI 作为 cli-anything-drawio 包的一部分安装:
pip install cli-anything-drawio
先决条件:
- Python 3.10+
- 系统上必须安装 drawio
用法
基本命令
# 显示帮助
cli-anything-drawio --help
# 启动交互式 REPL 模式
cli-anything-drawio
# 创建新项目
cli-anything-drawio project new -o project.json
# 以 JSON 输出运行(供代理使用)
cli-anything-drawio --json project info -p project.json
REPL 模式
当不带子命令调用时,CLI 会进入交互式 REPL 会话:
cli-anything-drawio
# 以交互方式输入命令,支持 Tab 补全和历史记录
命令组
项目 (Project)
项目管理:新建、打开、保存、信息。
| 命令 | 描述 |
|---|---|
new | 创建新的空白图表 |
open | 打开现有的 .drawio 项目文件 |
save | 保存当前项目 |
info | 显示详细的项目信息 |
xml | 打印当前项目的原始 XML |
presets | 列出可用的页面大小预设 |
图形 (Shape)
图形操作:添加、移除、移动、调整大小、样式。
| 命令 | 描述 |
|---|---|
add | 向图表添加一个图形 |
remove | 按 ID 移除图形 |
list | 列出页面上的所有图形 |
label | 更新图形的标签文本 |
move | 将图形移动到新的坐标 |
resize | 调整图形大小 |
style | 设置图形的样式属性 |
info | 显示图形的详细信息 |
types | 列出所有可用的图形类型 |
连接器 (Connect)
连接器操作:添加、移除、样式。
| 命令 | 描述 |
|---|---|
add | 在两个图形之间添加连接器 |
remove | 按 ID 移除连接器 |
label | 更新连接器的标签 |
style | 设置连接器的样式属性 |
list | 列出页面上的所有连接器 |
styles | 列出可用的边样式 |
页面 (Page)
页面操作:添加、移除、重命名、列表。
| 命令 | 描述 |
|---|---|
add | 添加新页面 |
remove | 按索引移除页面 |
rename | 重命名页面 |
list | 列出所有页面 |
导出 (Export)
导出操作:渲染为 PNG、PDF、SVG。
| 命令 | 描述 |
|---|---|
render | 将图表导出到文件 |
formats | 列出可用的导出格式 |
会话 (Session)
会话管理:状态、撤销、重做。
| 命令 | 描述 |
|---|---|
status | 显示当前会话状态 |
undo | 撤销上次操作 |
redo | 重做上次撤销的操作 |
save-state | 将会话状态保存到磁盘 |
list | 列出所有保存的会话 |
示例
创建新项目
创建一个新的 drawio 项目文件。
cli-anything-drawio project new -o myproject.json
# 或者使用 JSON 输出以便程序化使用
cli-anything-drawio --json project new -o myproject.json
交互式 REPL 会话
启动支持撤销/重做的交互式会话。
cli-anything-drawio
# 以交互方式输入命令
# 使用 'help' 查看可用命令
# 使用 'undo' 和 'redo' 进行历史导航
导出项目
将项目导出为最终输出格式。
cli-anything-drawio --project myproject.json export render output.pdf --overwrite
状态管理
CLI 会维护会话状态,包括:
- 撤销/重做:最多 50 级历史记录
- 项目持久化:以 JSON 格式保存/加载项目状态
- 会话跟踪:跟踪修改和变更
输出格式
所有命令均支持双输出模式:
- 人类可读(默认):表格、颜色、格式化文本
- 机器可读(
--json标志):结构化的 JSON,供代理使用
# 人类输出
cli-anything-drawio project info -p project.json
# 代理使用的 JSON 输出
cli-anything-drawio --json project info -p project.json
针对 AI 代理
在以编程方式使用此 CLI 时:
- 始终使用
--json标志 以获得可解析的输出 - 检查返回码——0 表示成功,非零表示错误
- 解析 stderr 以获取失败时的错误消息
- 对所有文件操作使用绝对路径
- 验证导出操作后输出文件是否存在
更多信息
- 完整文档:参见包中的 README.md
- 测试覆盖:参见包中的 TEST.md
- 方法:参见 cli-anything-plugin 中的 HARNESS.md
版本
1.0.0