cli-anything-inkscape について
cli-anything-inkscapeは、AIエージェントや上級ユーザー向けのベクター編集CLIです。SVGを直接操作してJSONでプロジェクト状態を管理し、図形の編集や書き出しを行えます。
主な機能
- 01ベクター図形の作成と編集
- 02折り返しボックス付きテキストの追加
- 03スタイルと変形の調整
- 04レイヤーとグラデーションの管理
- 05パスのブーリアン演算
- 06PNG、SVG、PDFへの書き出し
活用シーン
- 01コマンドでSVGグラフィックを作成
- 02見出しレイアウトに折り返しテキスト枠を設定
- 03エージェント処理向けに文書状態をJSONで出力
インストール
コマンドをコピーしてターミナルで実行します。
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 | 2 つのオブジェクトの和集合 |
intersection | 2 つのオブジェクトの交差 |
difference | 2 つのオブジェクトの差分(A から B を引く) |
exclusion | 2 つのオブジェクトの排他的論理和(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により、長いテキストはキャンバスからはみ出す代わりに安全に失敗できます。- 長いテキストのグラフィックには、手動での改行に頼る前に折り返しテキストボックスを使用してください。
状態管理
CLI は次のようにセッション状態を維持します:
- 元に戻す/やり直し: 最大 50 レベルの履歴
- プロジェクトの永続化: プロジェクト状態を JSON として保存/読み込み
- セッションの追跡: 変更と修正を追跡
出力形式
すべてのコマンドは 2 つの出力モードをサポートします:
- 人間が読みやすい形式(デフォルト): テーブル、色、整形されたテキスト
- 機械が読み取れる形式(
--jsonフラグ): エージェントが利用するための構造化 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 エージェント向け
この CLI をプログラムから使用する場合:
- 必ず
--jsonフラグを使用する - 解析可能な出力のため - リターンコードを確認する - 0 は成功、非ゼロはエラー
- 失敗時は stderr を解析する - エラーメッセージのため
- すべてのファイル操作に絶対パスを使用する
- エクスポート操作後に出力が存在することを確認する
- 見出しや可変長のテキストには折り返しテキストボックスを優先する - 編集してもレイアウトが安定するため
詳細情報
- 完全なドキュメント: パッケージ内の README.md を参照してください
- テストカバレッジ: パッケージ内の TEST.md を参照してください
- 方法論: cli-anything-plugin 内の HARNESS.md を参照してください
バージョン
1.0.1