PiPic Skill でコーディング Agent に画像圧縮を持たせる
コーディング Agent はビルドを実行し、コンポーネントを書き換え、失敗したテストを直せる。 ところが画像フォルダの圧縮を頼むと、その場限りのスクリプトを書いたり、出力を安定して 解釈できないツールを選んだりすることが多い。PiPic は別の道を用意する。実際の画像処理は CLI が行い、短い Skill がその CLI を安全に呼び出す方法を Agent に教える。
PiPic は AI 圧縮モデルではない。Agent がツールを選んで操作し、 PiPic Agent CLI が PNG、JPEG、WebP、AVIF を HTTP API と同じホスト型圧縮 サービスへ送る。PiPic Skill は自然言語の依頼と CLI コマンドをつなぐ指示レイヤーだ。
CLI と Skill を一度だけ導入する
初期設定は、そのマシンを使う人が行う。CLI をインストールして一度サインインを承認し、 利用する Agent にオープンソースの Skill を導入する。
npm i -g @pipic/cli
pipic login
npx skills add PiPic-cc/pipic-cli -g \
-a claude-code \
-a codex \
-a cursor \
-y
短い npx skills add PiPic-cc/pipic-cli -g を使うと、どの対応 Agent に導入するかを
対話形式で選べる。後から npx skills update -g でグローバルに導入した Skill の更新を
確認できる。Skill のソース
は CLI と同じリポジトリで公開されている。操作ルールは非公開のプロンプトサービスに
隠されていない。
設定後の依頼には製品名もフラグも要らない。
Compress the images in ./assets in place.
Skill の description は、画像を compress、shrink、optimise したいという依頼に一致する。
選択されると pipic が導入済みか、現在のマシンがサインイン済みかを確認する。その後
“in place” を --replace に対応させ、機械可読の出力で CLI を実行する。
pipic ./assets --replace --json
元ファイルを残す依頼なら、Agent は代わりに -o <dir> を使う。PiPic はこの二つの
出力先のどちらかを必須にしており、どちらもないコマンドはファイルを送信する前に拒否する。
Skill は Agent が推測できない規則を持つ
README はコマンドを説明できる。それでも Agent は、何を成功とみなし、いつ再試行し、 いつ止まるかを決めなければならない。その判断はファイルと月間利用枠に影響するため、 PiPic Skill は明示的な規則として固定している。
Skill は常に --json を使うよう指示する。CLI は入力ファイルごとに一つの NDJSON
オブジェクトを出力し、file、status、before、after、saved、そしてスキップ
または失敗時の error という六つの固定フィールドを持つ。status は ok、
skipped、error の三種類だけだ。
skipped は失敗ではない。よくある理由は、圧縮結果のほうが大きくなったため、PiPic が
元ファイルを残したことだ。Skill により、Agent はこれを失敗として報告せず、大きいファイルで
元の良いファイルを上書きすることもない。
終了コードが次の動作を決める。
| コード | 意味 | Agent の動作 |
|---|---|---|
| 0 | すべて成功 | 各行を要約して終了する |
| 1 | 一部のファイルが失敗 | status が error のパスだけ再実行する |
| 2 | 使用方法の誤り | コマンドを直し、同じまま再試行しない |
| 3 | サインインが必要 | 停止してユーザーにサインインを依頼する |
| 4 | 月間利用枠を消費済み | 停止する。再試行しても結果は変わらない |
終了コード 1 の規則は大切だ。二つのファイルが失敗した後にディレクトリ全体を再実行すると、 成功済みのファイルまで再アップロードされ、利用枠を二重に使う。Skill は再試行を失敗した パスだけに絞る。
バージョン差異への逃げ道もある。導入済み CLI の挙動が Skill と一致しなければ、Agent は
pipic --help を実行して、実際に導入されているプログラムに従う。Skill は単独で更新できるが、
実行時の最終的な基準は実行ファイルだ。
画像を処理するのは CLI
Skill はエンコーダを含まず、画像バイトをアップロードせず、自分で圧縮もしない。Agent に CLI の呼び出し方を教える。CLI がパスを解決し、出力先を検査し、ホスト型サービスを呼び、 小さくなった結果をアトミックに書き込み、Agent が読む行を出力する。
公開済みの 2026 年第3四半期ベンチマーク では、PiPic Agent CLI
1.0.6 で landscape.png を処理した記録がある。圧縮前は 2,316,198 バイト、圧縮後は
723,577 バイトで、1,592,621 バイト小さくなった。これは公開ライセンスのテスト画像一枚と
実際の一回の記録であり、すべての PNG に対する約束ではない。ベンチマークは入力、正確な
コマンド、72 件の生データ、制約も公開している。
通常の Agent タスクで役立つのは、その数値を囲む契約だ。Agent はどのファイルが変わり、 何バイト減り、どれがそのまま残り、対応が必要なパスがあるかを判断できる。進捗アニメーションや 人向けの文章を推測して読む必要はない。
リモート MCP はこの実行経路とは別だ。Agent が CLI と HTTP API を見つけるための読み取り専用 ガイドであり、画像バイトは JSON-RPC ではなく CLI または直接の HTTP リクエストで移動する。
人が担当する境界を明確にする
Agent はグローバルパッケージを勝手に導入せず、pipic login も自分では実行しない。
グローバル導入はユーザー環境を変更する。サインインはブラウザを開くか、ユーザーだけが承認できる
デバイスコードを待つ。pipic whoami が終了コード 3 なら、停止してユーザーに承認を依頼する。
同じマシンでは、pipic login が保存した認証情報を後の Agent 実行でも使える。コンテナ、CI、
サンドボックスはユーザーの ~/.config を参照できない場合がある。その環境ではユーザーが
アカウントページで作成した PIPIC_TOKEN を設定する。
PiPic CLI と API には別の月間利用枠があり、Free は月100枚、Pro は月5,000枚だ。ブラウザ版は 引き続き無料、無制限、アカウント不要で使える。CLI の画像は処理のためマシン外へ送られ、圧縮が 終わるとすぐサーバーから削除される。詳しい扱いはプライバシーページに記載している。
役割分担は明確だ。人がツールを導入して認証し、Skill が操作規則を提供する。Agent がいつ呼び出す かを決め、CLI が Agent の読める出力契約に沿って実作業を行う。