ANTIGRAVITY LABEN
記事一覧/連携・プラグイン
連携・プラグイン/2026-06-13上級

Antigravity CLI を非対話で回す — CI と cron に載せる前の設計

Go 製になった Antigravity CLI を対話ではなく CI・cron で無人実行するための設計を、終了コード・冪等性・タイムアウト・出力パースの観点からまとめました。

Antigravity CLI3CI/CD14自動化15headless運用設計9

プレミアム記事

6 月 18 日に Gemini CLI と Gemini Code Assist の個人向け提供が止まり、後継の Antigravity CLI へ移行することになりました。新しい CLI は Go で書き直され、私の環境では起動が体感で 2〜3 倍速くなりました。手元のターミナルで触る分には、ほぼ置き換えるだけで動きます。

問題は、その先です。私自身、4 つのサイトを 1 台で自動運用していて、エージェント実行を cron と CI に載せています。対話で気持ちよく動くツールほど、無人で回すと静かに詰まります。App Store 向けアプリのリリース作業を自動化していたときも、同じ壁にぶつかりました。プロンプトの確認待ちで止まったまま、ジョブのタイムアウトまで何もしない。そういう事故を何度か踏みました。

この記事は「対話で動いた」から「無人で安心して回せる」までの間にある設計を、終了コード・冪等性・タイムアウト・出力パースの 4 点に絞って書きます。

対話前提のまま CI に置くと、なぜ固まるのか

エージェント CLI は、確認や追加入力を人間に求める前提で作られています。「このファイルを書き換えますか」「コミットしますか」といった問いに、ターミナルなら Enter を押せば済みます。

ところが CI ランナーや cron には、その Enter を押す人がいません。標準入力が TTY ではないため、ツールによっては自動で「いいえ」と解釈して中断したり、逆に入力を待ち続けてハングしたりします。後者が厄介で、ジョブのログには何も出ず、課金時間だけが溶けていきます。

最初にやるべきは、対話の芽を全部摘むことです。

# 確認をすべて自動承認し、標準入力を空にして人間待ちを物理的に不可能にする
antigravity run \
  --prompt-file ./tasks/update-articles.md \
  --yes \
  --no-color \
  --output json < /dev/null

--yes(自動承認フラグ。名称はお使いのバージョンの antigravity --help で確認してください)で確認を飛ばし、< /dev/null で標準入力を空にします。フラグを取りこぼしても、入力が空なら待ち続けることはありません。この二重化が効きます。--no-color は ANSI エスケープがログを汚すのを防ぐためで、後段のパースが楽になります。

二重起動しても壊さない冪等性をどう作るか

無人実行では、同じジョブが重なって走る瞬間が必ず来ます。前回の実行が長引いている最中に次の cron が発火する。CI が再試行で同じコミットを 2 回処理する。こうした重複が、同じファイルへの二重コミットや、途中状態のプッシュを生みます。この落とし穴を回避する設計を、最初から組み込んでおきます。

対策は二段構えにしています。ひとつは実行そのものの排他、もうひとつは結果の冪等性です。

排他はロックファイルで取ります。

LOCK="/tmp/antigravity-articles.lock"
# flock で多重起動を防ぐ。-n は待たずに即座に諦める指定
exec 9>"$LOCK"
if ! flock -n 9; then
  echo "別の実行が進行中のためスキップします"
  exit 0
fi
# ここから先は同時に 1 つだけが通過する
antigravity run --prompt-file ./tasks/update-articles.md --yes --output json < /dev/null

結果の冪等性は、出力先を「実行ごとにユニーク」にして担保します。固定名のファイルに追記する設計は、前回の残骸が混入する事故を生みやすいので避けます。私はスラッグを含む一意名で書き出し、最後に検証してから本来の場所へ移すようにしています。Dolice の運用では、この一手間を入れてから途中状態のコミットが消えました。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
無人実行が途中で人間の入力を待って固まる事故を、--yes と入力遮断の二重化で塞ぐ具体策
同じトリガーが二重発火しても安全な、ロックファイルと冪等キーによる排他制御の実装
終了コードと JSON 出力で成否を機械判定し、失敗時だけ通知する 30 行のラッパー
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Antigravity 基本2026-06-12
Gemini CLI 終了まで残り6日 — 自動化スクリプトの依存を棚卸しして Antigravity CLI へ移行する
6月18日の Gemini CLI 提供終了を前に、cron・CI・シェルスクリプトに潜む gemini コマンド依存を洗い出し、Antigravity CLI へ移行して検証するまでの実務手順を整理しました。
連携・プラグイン2026-03-10
GitHub Actions × Antigravity CI/CD 自動化ガイド — AI でパイプラインを構築・運用する
Antigravity と GitHub Actions を連携して CI/CD パイプラインを構築する方法を解説。ワークフロー生成からデプロイ自動化まで。
連携・プラグイン2026-03-26
Antigravity × GitHub Actions 上級CI/CDパイプライン構築 — マトリクスビルド・セキュリティスキャン・自動リリースの実践設計
Antigravity と GitHub Actions を組み合わせた上級CI/CDパイプラインの設計・実装を解説。マトリクスビルド、SAST/依存関係スキャン、セマンティックリリース自動化まで、プロダクション品質のワークフローを構築します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →