mcpField
C
cli-anything-inkscape

cli-anything-inkscape

github.com/hkuds创意与媒体57.6k617 次安装5 周前更新
代码仓库

关于 cli-anything-inkscape

cli-anything-inkscape 是面向 AI Agent 和高级用户的矢量图形编辑命令行工具,可直接操作 SVG,并以 JSON 跟踪项目状态。它提供形状、文字、路径和图层编辑,以及多种格式导出。

主要功能

  1. 01创建和编辑矢量形状
  2. 02添加文字并设置换行框
  3. 03调整样式与变换
  4. 04管理图层和渐变
  5. 05执行路径布尔运算
  6. 06导出 PNG、SVG 和 PDF

适用场景

  1. 01用命令构建 SVG 图形
  2. 02为标题版式设置换行文字框
  3. 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 会将长文案自动换行成多个导出的 SVG tspan 行。
  • 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

以编程方式使用此命令行时:

  1. 始终使用 --json 标志以获得可解析的输出
  2. 检查返回码 - 0 表示成功,非零表示错误
  3. 解析 stderr 以获取失败时的错误消息
  4. 对所有文件操作使用绝对路径
  5. 在导出操作后验证输出是否存在
  6. 对于标题和长度可变的文案,优先使用自动换行文本框,以便布局在多次编辑后保持稳定

更多信息

  • 完整文档:请参阅包中的 README.md
  • 测试覆盖率:请参阅包中的 TEST.md
  • 方法论:请参阅 cli-anything-plugin 中的 HARNESS.md

版本

1.0.1

评论

支持 Markdown