Antigravity CLIで処理終了時に通知する
Created:
Antigravity CLI で処理完了時に通知
Antigravity CLI(agy cli)でエージェントの処理完了の度にデスクトップに通知を表示させます。
次のような通知が表示されます。
Antigravity CLIのバージョンは1.1.12です。
Ubuntu Desktopでの設定例のため、Windows、Macでは読み替えが必要だと思います。
本稿はCLIに関する設定です。Antigravity(デスクトップアプリ)、Antigravity IDEは使っておらず、よくわかりません。
hookの設定
Antigravityには特定のタイミングでコマンドやスクリプトを起動させるHooksの機能があります。これを使います。
HooksはLinuxの場合~/.gemini/config/hooks.jsonで設定します(ファイルがなければ新規作成します)
設定ファイルに以下のように記述します。
{
"reminder": {
"Stop": [
{
"type": "command",
"command": "bash /home/YOUR_USER_NAME/agy.sh"
}
]
}
}reminder: フックの名前です(任意の識別用文字列)。Stop: エージェントの実行が停止・完了したタイミングを指定します。command: 実行するシェルスクリプトのパスを指定します(YOUR_USER_NAMEは自身のユーザー名に変更してください)。
通知用スクリプト (agy.sh) の作成
フックから呼び出される agy.sh を作成します。
#!/usr/bin/env bash
INPUT_JSON=$(cat -)
# 入力待ちになった時 (fullyIdle: true)起動
if echo "${INPUT_JSON}" | jq -e '.fullyIdle == true' >/dev/null 2>&1; then
# デスクトップ通知
notify-send "Antigravity CLI" "✅ DONE" --urgency=normal -t 5000 2>/dev/null &
# 完了音を鳴らす例:
paplay /usr/share/sounds/freedesktop/stereo/complete.oga 2>/dev/null || printf '\a'
fi
echo '{"decision": "other"}'スクリプトのポイント
Hooks は標準入力経由で状態データ(JSON)を渡してくれます。ドキュメントにどのようなJSONが送信されてくるか定義されています。
完全に入力待ちになったときはfullyIdle: trueが入っているようなので、その際にnotify-send, paplayを実行します。
どちらもUbuntu Desktopには最初からインストールされていましたが、なければインストールしてください。
また、JSONのパースにjqも使っています。これもインストールが必要です。
notify-sendの引数は次のとおりです。
- 第一引数: 要約(通知のタイトルになる)
- 第二引数: 本文
--urgency: レベルでlow, normal, critical(私の環境はlowだとデスクトップに通知されませんでした)-t: 通知が自動で消えるまでの時間(ミリ秒)
paplayは引数にとった音を鳴らします。
最後に{"decision": "other"}を標準出力しています。
ドキュメントによると"continue"だとエージェントが停止しない、とのことです。continueにすると永遠と実行→停止を繰り返すのか、通知が表示され続けてしまいました。
停止(入力待ち)させるために "continue" 以外の文字列("other" や "stop" など)を返しています。
トラブルシューティング
antigravity cliのログは~/.gemini/antigravity-cli/log/に出力されるようです。
うまくいかない時はこちらも確認してみてください。
