Googleが開発するエージェント型の開発環境「Antigravity」に、リモートコントロールという機能が加わりました。手元のWebブラウザから、別の場所で動いているAntigravity 2.0のセッションへ接続し、そのまま会話を続けたり新しい作業を投げたりできます。大規模なリファクタリングやテスト実行のように時間のかかる仕事を任せたあと、机の前で終わるのを待たなくてよくなる、という発想の機能です。
手元のブラウザが、離れたマシンの窓口になる
リモートコントロールは、ノートPC、デスクトップ、サーバーなど複数のマシンで動いているAntigravity 2.0のセッションに、Webブラウザ経由で接続する仕組みです。特別なクライアントは要らず、ブラウザさえあれば操作画面が開きます。
重要なのは、接続先のローカル環境がそのまま維持される点です。ファイル、ワークスペース、ビルドツール、認証情報、環境変数へのアクセスは接続元に持ち出されるのではなく、あくまで実行中のマシン側に置かれたまま扱われます。Googleはこの画面を、自分のワークスペースをのぞく安全な窓と表現しています。
用途として想定されているのは、マシンごとの役割分担です。UI開発はローカルのノートPC、サーバー処理はクラウド上のLinuxマシン、といった形で環境を分けておき、インスタンス切り替えで行き来する使い方ができます。同時に複数の環境とエージェントを管理できるため、片方の作業が終わるまでもう片方が止まる、という状況を避けられます。
出先のノートPCに開発環境を再構築する手間が要らないのも利点です。自宅や職場のワークステーションで始めたセッションを、そのまま引き継いで監視・指示できます。
有効化はトグル1つ、ヘッドレス機はデーモンを導入する
デスクトップ版のAntigravity 2.0では、設定パネルを開いてAppセクションに進み、Enable Remote Controlをオンにするだけで準備が終わります。設定パネルはキーボードショートカット、または左サイドバー下部のSettingsから開けます。任意でニックネームを付けておくと、複数台を並べたときにどれがどのマシンか判別しやすくなります。
接続側は、ブラウザでリモートコントロールのダッシュボードを開き、デスクトップ版と同じGoogleアカウントでサインインします。インスタンス切り替えから対象のマシンを選べば、進行中の会話の確認、新しいタスクの投入、実装プランや成果物の確認まで一通り行えます。モバイル端末ではWebアプリをホーム画面に追加しておくと、通知を受け取れるようになります。
画面のないサーバーで動かす場合は、ヘッドレス用のデーモンを入れます。LinuxとmacOSでは、Antigravity公式が配布しているインストーラースクリプトをターミナルから取得して実行する形です。Windowsも同様のスクリプトが用意されていますが、こちらは管理者権限で開いたコマンドプロンプトから実行する必要があります。PowerShellでは動かず、導入と削除の操作にだけ管理者権限が求められます。状態確認や再起動の操作は通常の権限で行えます。
インストール時のオプションでは、インスタンス名や更新の適用頻度を指定できます。自動更新を止める指定や、対話的な確認を一切挟まない指定も用意されており、構成管理ツールから流し込む使い方も想定されています。導入時に一度だけターミナル上でサインインを求められますが、以降は再起動をまたいでも自動でサインインした状態になります。なおこのサインインはエディター側とは独立しているため、エディターでログイン済みでも改めて聞かれます。
待ち時間を前提にした通知と再接続
エージェントに任せる仕事が大きくなるほど、実行時間は長くなります。リモートコントロールには、エージェントが自分の手番を終えてユーザーの入力が必要になったタイミングでプッシュ通知を送る仕組みが入っています。作業が止まっているのに気付かない、という時間を減らすための作りです。
接続の切れやすさへの手当てもあります。接続元のネットワークが一時的に落ちても、Web側は自動で再接続を試みます。バックグラウンドで走っているエージェントのタスクやシェルコマンドは、ホスト側がインターネットにつながっている限り中断されずに走り続けます。逆に言えば、ホストマシンがスリープしていたり回線が切れていたりすると、一覧に出てきません。
使う前に押さえておきたい点
つまずきやすいのはアカウントまわりです。デスクトップアプリとブラウザで同じGoogleアカウントにサインインしていないと、マシンが一覧に現れません。ホスト側でEnable Remote Controlがオンになっているか、スリープや休止状態に入っていないかも確認する対象になります。
デーモンの常駐条件はOSによって差があります。Linuxは起動時に立ち上がりログアウト後も動き続け、クラッシュしても自動で復帰します。Windowsも起動時に立ち上がってサインアウト後も動きますが、クラッシュした場合は次回起動時か手動のrestartまで戻りません。macOSはログイン時に起動し、サインアウトすると止まります。24時間動かし続けたいマシンをどれにするかは、この差を見て決めることになります。
インスタンス名の扱いにも癖があります。設定ファイルの中には、デーモン側のホスト名とエディター側のホスト名という、よく似た項目が2つ並んでいます。デーモンとエディターは同じマシン上でも別インスタンスとして扱われる設計なので、リモートコントロールの一覧に似た名前が2つ出てきても異常ではありません。また、インストール時に名前を指定していた場合はそちらが優先され、設定ファイルを書き換えてもサービス再起動のたびに元へ戻ります。名前が反映されないときは、まずこの点を疑うとよさそうです。
まとめ
Antigravityのリモートコントロールは、開発環境そのものを持ち歩くのではなく、環境は置いたままブラウザから手を伸ばす、という割り切りの機能です。実行中のマシンにファイルも認証情報も残るため、出先の端末に同じ環境を作り直す必要がありません。長時間動くエージェントを抱える開発スタイルとは相性がよく、通知と自動再接続がその前提を支えています。一方で、ホストが起きていることが動作条件になる点や、OSごとに常駐の挙動が違う点は、運用を決める前に把握しておきたいところです。
