cli-anything-gimp は何をしますか?
Pillow を基盤とした、画像編集のためのステートフルなコマンドラインインターフェースです。GUI なしで画像の作成・操作を行いたい AI エージェントやパワーユーザー向けに設計されています。
インストール
この CLI は cli-anything-gimp パッケージの一部としてインストールされます。
pip install cli-anything-gimp
前提条件:
- Python 3.10+
- ネイティブのバッチレンダリングには gimp が推奨されますが、レイヤー構成は GIMP が利用できない場合や、遅延
draw操作が存在する場合でも、組み込みの Pillow パスを通じてレンダリングできます。
使用方法
基本コマンド
# ヘルプを表示
cli-anything-gimp --help
# 対話型 REPL モードを開始
cli-anything-gimp
# 新しいプロジェクトを作成
cli-anything-gimp project new -o project.json
# JSON 出力で実行(エージェントによる利用向け)
cli-anything-gimp --json project info -p project.json
REPL モード
サブコマンドなしで呼び出すと、対話型 REPL セッションが開始されます。
cli-anything-gimp
# タブ補完と履歴を使用して対話的にコマンドを入力
コマンドグループ
Project
プロジェクト管理コマンド。
| コマンド | 説明 |
|---|---|
new | 新しいプロジェクトを作成 |
open | 既存のプロジェクトを開く |
save | 現在のプロジェクトを保存 |
info | プロジェクト情報を表示 |
profiles | 利用可能なキャンバスプロファイルを一覧表示 |
json | 生のプロジェクト JSON を出力 |
Layer
レイヤー管理コマンド。
| コマンド | 説明 |
|---|---|
new | 新しい空白レイヤーを作成 |
add-from-file | 画像ファイルからレイヤーを追加 |
list | 全てのレイヤーを一覧表示 |
remove | インデックスを指定してレイヤーを削除 |
duplicate | レイヤーを複製 |
move | レイヤーを新しい位置に移動 |
set | レイヤープロパティ(名前、不透明度、可視性、モード、offset_x、offset_y)を設定。負のオフセットも自然に受け入れられます。 |
flatten | 可視レイヤーをすべて平坦化 |
merge-down | レイヤーを直下のレイヤーと結合 |
Canvas
キャンバス操作。
| コマンド | 説明 |
|---|---|
info | キャンバス情報を表示 |
resize | キャンバスのサイズを変更(内容は拡大縮小しない) |
scale | キャンバスとすべての内容を比例拡大縮小 |
crop | キャンバスを矩形に切り抜き |
mode | キャンバスのカラーモードを設定 |
dpi | キャンバスの DPI を設定 |
Filter Group
フィルター管理コマンド。
| コマンド | 説明 |
|---|---|
list-available | 利用可能なフィルターをすべて一覧表示 |
info | フィルターの詳細を表示 |
add | レイヤーにフィルターを追加 |
remove | インデックスを指定してフィルターを削除 |
set | フィルターパラメータを設定 |
list | レイヤー上のフィルターを一覧表示 |
Media
メディアファイル操作。
| コマンド | 説明 |
|---|---|
probe | 画像ファイルを解析 |
list | プロジェクトで参照されているメディアファイルを一覧表示 |
check | 参照されているすべてのメディアファイルが存在することを確認 |
histogram | 画像のヒストグラム分析を表示 |
Export Group
エクスポート/レンダリングコマンド。
| コマンド | 説明 |
|---|---|
presets | エクスポートプリセットを一覧表示 |
preset-info | プリセットの詳細を表示 |
render | プロジェクトを画像ファイルにレンダリング。遅延描画操作はレンダリング時に適用されます。 |
Session
セッション管理コマンド。
| コマンド | 説明 |
|---|---|
status | セッションの状態を表示 |
undo | 最後の操作を元に戻す |
redo | 最後に元に戻した操作をやり直す |
history | 元に戻す履歴を表示 |
Draw
描画操作(レンダリング時に適用)。
| コマンド | 説明 |
|---|---|
text | レイヤーにテキストを描画(テキストレイヤーに変換) |
rect | 矩形を描画(描画操作として保存) |
例
新しいプロジェクトを作成
新しい GIMP プロジェクトファイルを作成します。
cli-anything-gimp project new -o myproject.json
# またはプログラムによる利用のために JSON 出力
cli-anything-gimp --json project new -o myproject.json
対話型 REPL セッション
Undo/Redo をサポートした対話型セッションを開始します。
cli-anything-gimp
# コマンドを対話的に入力
# 'help' で利用可能なコマンドを表示
# 'undo' と 'redo' で履歴をナビゲート
プロジェクトのエクスポート
プロジェクトを最終出力形式にエクスポートします。
cli-anything-gimp --project myproject.json export render output.png --overwrite
レイヤー構成ワークフロー
オーバーレイが多い構成の場合:
cli-anything-gimp --project poster.gimp-cli.json layer set 0 offset_x -48
cli-anything-gimp --project poster.gimp-cli.json layer set 0 offset_y 24
cli-anything-gimp --project poster.gimp-cli.json draw text --layer 0 --text "Launch Night" --x 96 --y 120 --size 72 --color "#f6f1e8"
cli-anything-gimp --project poster.gimp-cli.json export render output.png --overwrite
注意:
layer setは、コマンドモードと REPL モードの両方で負のoffset_xおよびoffset_y値を受け入れます。draw textとdraw rectはレンダリング時操作です。確認する対象はプロジェクト JSON だけでなく、エクスポートされた画像も含めてください。- 遅延描画操作があるプロジェクトの場合、GIMP がインストールされていても、Pillow レンダリングパスが安定したデフォルトとなります。
状態管理
CLI は以下のセッション状態を維持します:
- Undo/Redo: 最大 50 レベルの履歴
- プロジェクトの永続化: プロジェクト状態を JSON として保存/読み込み
- セッション追跡: 変更を追跡
出力形式
すべてのコマンドは 2 つの出力モードをサポートします:
- 人間可読(デフォルト): テーブル、色付き、整形済みテキスト
- 機械可読(
--jsonフラグ): エージェント消費用の構造化 JSON
# 人間向け出力
cli-anything-gimp project info -p project.json
# エージェント向け JSON 出力
cli-anything-gimp --json project info -p project.json
AI エージェント向け
この CLI をプログラム的に使用する場合:
- 常に
--jsonフラグを使用して解析可能な出力を得る - リターンコードを確認 - 0 は成功、非ゼロはエラー
- エラーメッセージは stderr を解析
- すべてのファイル操作には絶対パスを使用
- エクスポート後に出力が存在することを確認
- オフセット、描画、ブレンドモード、フィルター変更後は、保存されたプロジェクト状態だけを信頼せず、レンダリング出力を確認
詳細情報
- 完全なドキュメント: パッケージ内の README.md を参照
- テストカバレッジ: パッケージ内の TEST.md を参照
- 方法論: cli-anything-plugin 内の HARNESS.md を参照
バージョン
1.0.0