关于 cli-anything-inkscape
cli-anything-inkscape 是面向 AI Agent 和高级用户的矢量图形编辑命令行工具,可直接操作 SVG,并以 JSON 跟踪项目状态。它提供形状、文字、路径和图层编辑,以及多种格式导出。
主要功能
- 01创建和编辑矢量形状
- 02添加文字并设置换行框
- 03调整样式与变换
- 04管理图层和渐变
- 05执行路径布尔运算
- 06导出 PNG、SVG 和 PDF
适用场景
- 01用命令构建 SVG 图形
- 02为标题版式设置换行文字框
- 03以 JSON 输出供 Agent 处理的文档状态
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ hkuds/ cli-anything --skill cli-anything-inkscape安装后在 Claude Code 中输入/cli-anything-inkscape确认已加载。
详细介绍
cli-anything-inkscape
一个有状态的矢量图形编辑命令行界面,遵循与 GIMP 和 Blender CLI 工具相同的模式。直接操作 SVG (XML) 文档,并使用 JSON 项目格式进行状态跟踪。
安装
此 CLI 作为 cli-anything-inkscape 包的一部分安装:
pip install cli-anything-inkscape
前置要求:
- Python 3.10+
- 系统上必须安装 inkscape
用法
基本命令
# Show help
cli-anything-inkscape --help
# Start interactive REPL mode
cli-anything-inkscape
# Create a new document
cli-anything-inkscape document new -o project.json
# Run with JSON output (for agent consumption)
cli-anything-inkscape --json document info -p project.json
REPL 模式
当不带子命令调用时,CLI 会进入交互式 REPL 会话:
cli-anything-inkscape
# Enter commands interactively with tab-completion and history
你也可以使用一个不存在的项目路径启动 REPL。CLI 现在会初始化一个 新的内存文档,而不是立即失败:
cli-anything-inkscape --project /abs/path/new-title.inkscape-cli.json
命令组
Document
文档管理命令。
| 命令 | 描述 |
|---|---|
new | 创建新文档 |
open | 打开现有项目 |
save | 保存当前项目 |
info | 显示文档信息 |
profiles | 列出可用的文档配置文件 |
canvas-size | 设置画布大小 |
units | 设置文档单位 |
json | 打印原始项目 JSON |
Shape
形状管理命令。
| 命令 | 描述 |
|---|---|
add-rect | 添加矩形 |
add-circle | 添加圆形 |
add-ellipse | 添加椭圆 |
add-line | 添加直线 |
add-polygon | 添加多边形 |
add-path | 添加路径 |
add-star | 添加星形 |
remove | 按索引移除形状 |
duplicate | 复制形状 |
list | 列出所有形状/对象 |
get | 获取形状的详细信息 |
Text
文本管理命令。
| 命令 | 描述 |
|---|---|
add | 添加文本元素;支持 --box-width、--box-height 和 --line-height 以实现换行布局 |
set | 设置文本属性(text、font-family、font-size、fill、box-width、box-height、line-height 等) |
list | 列出所有文本对象 |
Style
样式管理命令。
| 命令 | 描述 |
|---|---|
set-fill | 设置对象的填充颜色 |
set-stroke | 设置对象的描边颜色(以及可选的宽度) |
set-opacity | 设置对象的不透明度(0.0-1.0) |
set | 在对象上设置任意样式属性 |
get | 获取对象的样式属性 |
list-properties | 列出所有可用的样式属性 |
Transform
变换操作(平移、旋转、缩放、倾斜)。
| 命令 | 描述 |
|---|---|
translate | 平移(移动)对象 |
rotate | 旋转对象 |
scale | 缩放对象 |
skew-x | 水平倾斜对象 |
skew-y | 垂直倾斜对象 |
get | 获取对象的当前变换 |
clear | 清除对象的所有变换 |
Layer
图层管理命令。
| 命令 | 描述 |
|---|---|
add | 添加新图层 |
remove | 按索引移除图层 |
move-object | 将对象移动到其他图层 |
set | 设置图层属性(name、visible、locked、opacity) |
list | 列出所有图层 |
reorder | 将图层从一个位置移动到另一个位置 |
get | 获取图层的详细信息 |
Path Group
路径布尔运算。
| 命令 | 描述 |
|---|---|
union | 两个对象的并集 |
intersection | 两个对象的交集 |
difference | 两个对象的差集(A 减 B) |
exclusion | 两个对象的排除(XOR) |
convert | 将形状转换为路径 |
list-operations | 列出可用的路径布尔运算 |
Gradient
渐变管理命令。
| 命令 | 描述 |
|---|---|
add-linear | 添加线性渐变 |
add-radial | 添加径向渐变 |
apply | 将渐变应用到对象 |
list | 列出所有渐变 |
导出组
导出/渲染命令。
| 命令 | 描述 |
|---|---|
png | 将文档渲染为 PNG |
svg | 将文档导出为 SVG |
pdf | 将文档导出为 PDF(需要 Inkscape) |
presets | 列出导出预设 |
会话
会话管理命令。
| 命令 | 描述 |
|---|---|
status | 显示会话状态 |
undo | 撤销上一次操作 |
redo | 重做上一次撤销的操作 |
history | 显示撤销历史 |
示例
创建新项目
创建一个新的 inkscape 项目文件。
cli-anything-inkscape document new -o myproject.json
# Or with JSON output for programmatic use
cli-anything-inkscape --json document new -o myproject.json
交互式 REPL 会话
启动一个支持撤销/重做的交互式会话。
cli-anything-inkscape
# Enter commands interactively
# Use 'help' to see available commands
# Use 'undo' and 'redo' for history navigation
导出项目
将项目导出为最终输出格式。
cli-anything-inkscape --project myproject.json export pdf output.pdf --overwrite
自动换行文本布局
对于标题卡、标签和竖屏安全面板,优先使用自动换行文本框, 而不是手动插入换行符:
cli-anything-inkscape --project title.json text add \
--text "Real capture + Veo cold open + Gemini score + thumbnail plate" \
--x 180 --y 470 --font-size 118 \
--box-width 1180 --box-height 260 --line-height 1.05
cli-anything-inkscape --project title.json text set 0 box-width 980
cli-anything-inkscape --project title.json text set 0 line-height 1.15
注意:
box-width会将长文案自动换行成多个导出的 SVGtspan行。box-height让长文案安全失败,而不是超出画布。- 对于长文案图形,在诉诸手动换行之前,请使用自动换行文本框。
状态管理
命令行会通过以下方式维护会话状态:
- 撤销/重做:最多 50 级历史记录
- 项目持久化:将项目状态保存/加载为 JSON
- 会话跟踪:跟踪修改和变更
输出格式
所有命令都支持双输出模式:
- 人类可读(默认):表格、颜色、格式化文本
- 机器可读(
--json标志):供 Agent 使用的结构化 JSON
# Human output
cli-anything-inkscape project info -p project.json
# JSON output for agents
cli-anything-inkscape --json project info -p project.json
面向 AI Agent
以编程方式使用此命令行时:
- 始终使用
--json标志以获得可解析的输出 - 检查返回码 - 0 表示成功,非零表示错误
- 解析 stderr 以获取失败时的错误消息
- 对所有文件操作使用绝对路径
- 在导出操作后验证输出是否存在
- 对于标题和长度可变的文案,优先使用自动换行文本框,以便布局在多次编辑后保持稳定
更多信息
- 完整文档:请参阅包中的 README.md
- 测试覆盖率:请参阅包中的 TEST.md
- 方法论:请参阅 cli-anything-plugin 中的 HARNESS.md
版本
1.0.1
评论
支持 Markdown