From 265a3eea77f90c07b62859d5c30db1b209529329 Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Mon, 31 Aug 2026 01:41:29 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat(container):=20Antigravity=20CLI=20(agy?= =?UTF-8?q?)=20=E3=82=92=E3=83=99=E3=83=BC=E3=82=B9=E3=82=A4=E3=83=A1?= =?UTF-8?q?=E3=83=BC=E3=82=B8=E3=81=B8=E8=BF=BD=E5=8A=A0=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Google の AI コーディングエージェント Antigravity CLI を、既存の claude / gemini / codex / kiro と同じくコンテナ内からすぐ使えるようにする。 インストーラは ~/.local/bin へ単体バイナリを置く方式で、SHA512 を検証し linux の amd64 / arm64 どちらでも動くため、claude と同じ USER ubuntu 側へ置いた。 併せて .bashrc / .zshrc / .profile へ PATH 行を足すが、devbase が入れる行と 内容が同一で実害は無い (--skip-path 相当の口は現行スクリプトに無い)。 エイリアスは --dangerously-skip-permissions 付きにする。Gemini CLI の --yolo に 相当するフラグは Antigravity CLI には無く、確認の抑止はこの 1 本だけである。 設定と認証は ~/.gemini/antigravity-cli/ 配下に置かれるため、PLAN39 で グループ単位に永続化した .gemini にそのまま乗る。コンテナを作り直しても 再認証は要らず、アカウントグループをまたいで共有もされない。 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01HQWF4ETha9HwZs18k6ijUk --- CHANGELOG.md | 11 +++++++++++ containers/base/Dockerfile | 6 ++++++ docs/user/container-operations.md | 3 ++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5125c2e9..65849509 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,17 @@ ## [Unreleased] ### Added +- **Antigravity CLI (`agy`) をベースイメージへ追加**しました。Google の AI コーディング + エージェントを、既存の `claude` / `gemini` / `codex` / `kiro` と同じくコンテナ内から + すぐ使えます。エイリアス `agy` は確認プロンプトを省く + `--dangerously-skip-permissions` 付き (Gemini CLI の `--yolo` に相当するフラグは + Antigravity CLI には無く、この 1 本だけです)。設定と認証は + `~/.gemini/antigravity-cli/` 配下に置かれるため、既にグループ単位で永続化されている + `.gemini` にそのまま乗り、**コンテナを作り直しても再認証は要りません**。 + + 反映には**ベースイメージの再ビルド**が要ります (`devbase container build`)。 + バイナリは約 190MB です。 + - **永続化ボリュームをアカウントグループ単位に分離**しました (PLAN39 / #116)。 これまで認証情報と会話ログは全コンテナ共通の `devbase_home_ubuntu` に置かれていたため、 nyle.co.jp で認証した Claude Code / gcloud を kk-generation.com のプロジェクトが diff --git a/containers/base/Dockerfile b/containers/base/Dockerfile index bb51759d..6ac53296 100644 --- a/containers/base/Dockerfile +++ b/containers/base/Dockerfile @@ -167,6 +167,11 @@ RUN set -eux; \ curl -LsSf https://astral.sh/uv/install.sh | sh; \ # Claude Code CLI curl -fsSL https://claude.ai/install.sh | bash; \ + # Antigravity CLI (agy)。~/.local/bin へ単体バイナリを置く方式で、 + # インストーラは SHA512 を検証し linux の amd64 / arm64 どちらでも動く。 + # 併せて .bashrc / .zshrc / .profile へ PATH 行を足すため、下の RUN が入れる + # 同じ行と重複するが、内容が同一なので実害は無い (--skip-path 相当の口は無い)。 + curl -fsSL https://antigravity.google/cli/install.sh | bash; \ # Kiro CLI (Linux ZIP method for x86_64 and aarch64) ARCH=$(uname -m); \ if [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "aarch64" ]; then \ @@ -197,6 +202,7 @@ RUN set -eux; \ echo 'alias gemini='\''GOOGLE_GENAI_USE_VERTEXAI=true gemini --yolo "$@"'\''' >> ~/.bashrc; \ echo 'alias codex='\''codex --dangerously-bypass-approvals-and-sandbox "$@"'\''' >> ~/.bashrc; \ echo 'alias kiro='\''kiro-cli chat --trust-all-tools "$@"'\''' >> ~/.bashrc; \ + echo 'alias agy='\''agy --dangerously-skip-permissions "$@"'\''' >> ~/.bashrc; \ echo 'complete -o default claudb kiro' >> ~/.bashrc; \ git config --global credential.helper store; \ # Configure Claude Code hooks diff --git a/docs/user/container-operations.md b/docs/user/container-operations.md index 8303ccc3..3f968d4b 100644 --- a/docs/user/container-operations.md +++ b/docs/user/container-operations.md @@ -229,7 +229,7 @@ AI CLI ツールの設定や認証情報は、コンテナを再生成しても |---------|------| | `.claude.json` | Claude Code の設定(`oauthAccount` を含む)| | `.claude` | Claude Code の認証・会話ログ・セッション状態(上表の共通資産を除く**すべて**)| -| `.gemini` | Gemini CLI の設定(`vertex-ai` は GCP プロジェクトに紐づく)| +| `.gemini` | Gemini CLI と Antigravity CLI の設定(`vertex-ai` は GCP プロジェクトに紐づく。Antigravity CLI は `.gemini/antigravity-cli/` 配下を使う)| `~/.claude` は `/persistent/group/.claude` への symlink で、**その配下の既定はグループ側**です。 共通資産だけがその中から `/persistent/ai/.claude/` へ張り直されます。既定をグループ側に @@ -340,6 +340,7 @@ general イメージ以降のコンテナ内では、以下の AI CLI ツール | `gemini` | Gemini CLI | yolo mode | Google の AI アシスタント | | `codex` | Codex CLI | bypass-approvals | OpenAI の AI コーディングツール | | `kiro` | Kiro CLI | trust-all-tools | AWS の AI アシスタント | +| `agy` | Antigravity CLI | dangerously-skip-permissions | Google の AI コーディングエージェント | ```bash # コンテナ内での使用例 From 937c55cc8213c1deb55e918931cd694af86a0057 Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Mon, 31 Aug 2026 02:41:40 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix(container):=20agy=20=E3=81=AE=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC=E3=83=AB=E5=A4=B1=E6=95=97?= =?UTF-8?q?=E3=82=92=E3=83=93=E3=83=AB=E3=83=89=E5=A4=B1=E6=95=97=E3=81=A8?= =?UTF-8?q?=E3=81=97=E3=81=A6=E6=89=B1=E3=81=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit curl をパイプで bash へ直結すると、Dockerfile の既定 shell に pipefail が 無いため curl の失敗が bash の成功で覆い隠され、agy を含まないイメージが 成功扱いで生成されうる。インストーラを一度ファイルへ落としてから実行し、 最後に ~/.local/bin/agy --version で実体を検証する。 併せて docs/comparison.md の AI CLI 一覧 3 箇所へ agy を併記する。 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01HQWF4ETha9HwZs18k6ijUk --- containers/base/Dockerfile | 7 ++++++- docs/comparison.md | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/containers/base/Dockerfile b/containers/base/Dockerfile index 6ac53296..f984c034 100644 --- a/containers/base/Dockerfile +++ b/containers/base/Dockerfile @@ -171,7 +171,12 @@ RUN set -eux; \ # インストーラは SHA512 を検証し linux の amd64 / arm64 どちらでも動く。 # 併せて .bashrc / .zshrc / .profile へ PATH 行を足すため、下の RUN が入れる # 同じ行と重複するが、内容が同一なので実害は無い (--skip-path 相当の口は無い)。 - curl -fsSL https://antigravity.google/cli/install.sh | bash; \ + # パイプ直結だと既定 shell に pipefail が無く curl の失敗を bash の成功が覆い隠すため、 + # 一度ファイルへ落としてから実行し、最後にバイナリの実体を検証する。 + curl -fsSL https://antigravity.google/cli/install.sh -o agy-install.sh; \ + bash agy-install.sh; \ + rm -f agy-install.sh; \ + "$HOME/.local/bin/agy" --version; \ # Kiro CLI (Linux ZIP method for x86_64 and aarch64) ARCH=$(uname -m); \ if [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "aarch64" ]; then \ diff --git a/docs/comparison.md b/docs/comparison.md index 840d47cc..b4219d8f 100644 --- a/docs/comparison.md +++ b/docs/comparison.md @@ -82,7 +82,7 @@ devbase と最も近い位置に立つツール群。devcontainer / Docker / VM - `scale` による並行 dev コンテナ - 環境変数の **3レベル統合**(`${DEVBASE_ROOT}/.env` / `env` / `.env`) - snapshot(差分10世代+フル3世代) - - **AI CLI 同梱**(claude / codex / gemini / kiro) + - **AI CLI 同梱**(claude / codex / gemini / kiro / agy) ### 2.6 DDEV / Lando @@ -151,7 +151,7 @@ devbase は「**ホスト ↔ dev コンテナ**」型、こちらは「**dev ### → devbase - 複数リポジトリを横断して開発(マイクロサービス、モノリス+API+バッチ+インフラ) -- **AI CLI(claude/codex/gemini/kiro)を多用**しつつコンテナで安全に隔離 +- **AI CLI(claude/codex/gemini/kiro/agy)を多用**しつつコンテナで安全に隔離 - 同一リポジトリで**並行開発**(git worktree の代替) - **社外秘の compose 構成**を private extension で組織内に閉じて配布 - ローカルDockerで**オフライン完結** @@ -214,7 +214,7 @@ public な devbase 本体に、private な extension を**重ねるだけ**で ### 7.4 AI CLI 同梱と封じ込め -`claude` / `codex` / `gemini` / `kiro` をベースイメージに同梱。`--dangerously-skip-permissions` 等の危険モードもコンテナ境界で**ホストに波及しない**。 +`claude` / `codex` / `gemini` / `kiro` / `agy` をベースイメージに同梱。`--dangerously-skip-permissions` 等の危険モードもコンテナ境界で**ホストに波及しない**。 ---