Google AntigravityでAIコーディングを行う際、課題となるのが「チャットセッションや作業状態が単一マシン内に閉じてしまう」という点です。メインのデスクトップMacで進めていた作業を、手元のWindowsノートPCや別端末からそのまま継続しようとすると、文脈の引き継ぎが難しくなります。
この問題を解決するため、常時稼働させているデスクトップMac(Mac mini)を開発ホストとして集約し、ノートPC等の別端末からはSSH経由でAntigravity CLI(agy)とtmuxを組み合わせて操作する構成を採用することにしました。本記事では、この構成を選定した理由と、環境構築にあたって遭遇したトラブルの回避手順を備忘録としてまとめます。
なぜMacホスト+Antigravity CLIの構成を選んだのか
最初に検討したのは、GUI版Antigravity(VS Codeフォーク)の内蔵Remote-SSH拡張機能を使ってMacに接続する方法でした。しかし、実際に接続を試みると内部スクリプトがLinux環境を前提としたコマンド(flock 等)に依存しており、現時点ではmacOSをSSHホストとしてGUI接続することはできません。
また、自前の低スペックLinuxサーバーをホストにする案もありましたが、重いビルド処理やコンテナの運用を考慮すると、CPU性能やメモリに余裕があるMac miniを活用するほうが快適です。
そこで、GUIのリモート接続に拘るのではなく、CUI環境で完結する公式CLIツールagyを採用し、ターミナルマルチプレクサであるtmux上で稼働させるアプローチに落ち着きました。この構成であれば、OSの互換性問題を完全に回避しつつ、どの端末からでも同一のセッションに再接続してAIとの対話を再開できます。
鍵認証とセッション分離の注意点
構築時にまず直面したのが、SSH接続時の認証エラーでした。サーバー上でGiteaなどをホストしている場合、Git操作用に登録された公開鍵でログインを試みるとシェルアクセスが拒否されます。そのため、通常のシェルログイン専用となる新しいSSH鍵ペアを作成し、接続設定で明示的に指定する必要があります。
クライアント端末(Windows等)で開発用の鍵を生成し、ホスト側の ~/.ssh/authorized_keys に登録します。
# 鍵ペアの生成
ssh-keygen -t ed25519 -f ~/.ssh/id_dev_server -C "dev-login"クライアント側の ~/.ssh/config には、他の鍵が自動送信されないよう IdentitiesOnly yes を含めて設定を記述します。
Host dev-server
HostName 192.168.0.xxx
User your_user
IdentityFile ~/.ssh/id_dev_server
IdentitiesOnly yesWindows環境から接続する場合は、PowerShellネイティブのコンソールよりもWSL2(Linux環境)経由で接続したほうが、文字コード(UTF-8)や端末制御(PTY)の互換性が高く、表示崩れや文字化けを起こさず安定します。
tmuxとagyによるセッション永続化と運用
agy 単体で起動するとSSH切断時にセッションが切れてしまうため、ホスト側のMac上で tmux を起動し、その中で対話セッションを実行します。
ホストのMac側では、マウススクロールの有効化と文字コードの安定化のため、あらかじめ ~/.tmux.conf に設定を追加しておきます。
set -g mouse on
set -g default-terminal "screen-256color"日常的な運用で必要な操作はシンプルです。作業を開始する際は、既存セッションへの再接続(存在しない場合は新規作成)をまとめて行うワンライナーで接続します。
tmux attach -t dev || tmux new -s devセッション内で agy を起動すれば、直前までのプロジェクト構造を読み取った状態でAIコーディングを開始できます。過去の会話セッションを再開したい場合は、起動時に --resume フラグを付与するか、対話画面で /resume コマンドを実行して履歴を選択します。
# 直前の対話を再開して起動
agy --resume作業を中断したい時は、キーボードで Ctrl + b を押した後に d を押してデタッチします。これによりMac側でプロセスが保持され、後から別のノートPCを開いて再び tmux attach -t dev を実行するだけで、全く同じ画面・対話状態へと即座に復帰できます。