記事一覧に戻る

PiPic Skill でコーディング Agent に画像圧縮を持たせる

PiPic チーム
Agents
pipic ./assets --replace --json
{"file":"assets/hero.png","status":"ok",…}
✓ exit 0

コーディング 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 オブジェクトを出力し、filestatusbeforeaftersaved、そしてスキップ または失敗時の error という六つの固定フィールドを持つ。statusokskippederror の三種類だけだ。

skipped は失敗ではない。よくある理由は、圧縮結果のほうが大きくなったため、PiPic が 元ファイルを残したことだ。Skill により、Agent はこれを失敗として報告せず、大きいファイルで 元の良いファイルを上書きすることもない。

終了コードが次の動作を決める。

コード意味Agent の動作
0すべて成功各行を要約して終了する
1一部のファイルが失敗statuserror のパスだけ再実行する
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 の読める出力契約に沿って実作業を行う。

自分の画像で試してみる
無料、登録不要、保存も一切なし。
画像を圧縮する