コンテナのエージェントも、
すぐ手の届く所に。
コンテナの中のエージェントはMacから隔てられているので、出番が来てもGnistaに知らせられません。コンテナにGnistaのヘルパーと戻り道を渡せば、そのセッションにもほかと同じくノッチに行ができます。Mac上のdevcontainer、サーバ上のコンテナ、Kubernetesのポッド、それぞれの方法をまとめました。
更新:
手短に言うと
- Mac上なら:設定 ▸ リモート ▸ 「コンテナ内のエージェント」をオンにし、表示される行を
devcontainer.jsonに加えて、コンテナをリビルドします。 - Gnistaが接続するサーバ上なら:同じようにして、サーバの
~/.gnistaをコンテナにマウントします。 - Kubernetesなら:設定 ▸ リモートで「その他のホスト…」を選び、
kube:に続けてコンテキスト、ネームスペース、ポッドを入力します。
Mac上のdevcontainer
- Gnistaの設定 ▸ リモートで、「コンテナ内のエージェント」をオンにします。Gnistaはコンテナ用のフォルダ
~/.gnista/containersを作り、両方のプロセッサ向けのLinux用ヘルパーを入れます。 - 表示される行の下の「コピー」をクリックし、プロジェクトの
devcontainer.jsonに加えます。 - コンテナをリビルドします。作成されるときに、中にインストールされたエージェントを接続します。
- コンテナでセッションを始めます。行には、マシンとしてDockerと表示されます。
加える行
"mounts": ["source=${localEnv:HOME}/.gnista/containers,target=/opt/gnista,type=bind"],
"containerEnv": { "GNISTA_HOME": "/opt/gnista" },
"postCreateCommand": "/opt/gnista/bin/gnista install all"devcontainerを使わない場合は、同じフォルダを任意のコンテナにマウントし、その中で/opt/gnista/bin/gnista install allを一度実行します。
docker run -it -v ~/.gnista/containers:/opt/gnista -e GNISTA_HOME=/opt/gnista your-image仕組み
Docker DesktopはMacのソケットをコンテナに渡さないので、GnistaはMacのループバックのポートで待ち受けます。コンテナからはhost.docker.internalで届きます。接続はどれも、マウントするフォルダにあるパスワードで始める必要があるので、Mac上のほかのアプリは送れません。arm64とx86_64、どちらのイメージでも動作します。
サーバ上のコンテナ
まずサーバを接続します:SSH越しのエージェント。次に、上と同じ行で、ソースを${localEnv:HOME}/.gnistaにして、サーバの~/.gnistaをコンテナにマウントします。そこのソケットに届くには、コンテナのユーザがrootか、サーバでのあなたのユーザIDである必要があります。
Kubernetesのポッド
- HomebrewかRancher Desktopで、Macに
kubectlをインストールし、kubectl execがポッドに届くか確認します。 - Gnistaの設定 ▸ リモートで「接続」をクリックし、「その他のホスト…」を選んで、
kube:に続けてコンテキスト、ネームスペース、ポッドを入力します(例:kube:prod/agents/agent-0)。デプロイメントも使えます:kube:prod/agents/deploy/agents。 - Gnistaはサーバと同じく
kubectl execでポッドをセットアップし、その上でエージェントのイベントを中継し続けます。ポッドが再起動すると、Gnistaがもう一度セットアップします。
制限
- コンテナやポッドでコマンドを実行できる人は誰でも、サーバと同じく、あなたの承認に応答できます。信頼できるものだけを接続してください。
- Mac上のコンテナのセッションは、コンテナごとではなく、すべてDockerと表示されます。クリックすると、そこへの
docker execやkubectl execを実行しているターミナルのタブが前面に出ます。 - 対応するのはLinuxのコンテナとポッドだけで、x86_64かarm64です。
kubectlのクラウドへのログインが期限切れになると、ポッドの行に対応が必要と表示されます。kubectlのときと同じようにログインし直せば、Gnistaが自動でもう一度試します。- 組織が管理するMacでリモートマシンをオフにすると、これもオフになります:MDMでの設定。
ほかのガイド。
Claude Codeの通知を、
Macで。Claude Codeが終わったか、対応待ちかが、Macのどこにいてもわかります。
Codexの通知を、
Macで。Codexが終わったか、コマンドを実行したがっているかが、ターミナルを見張らなくてもわかります。
Claude Codeのリクエストを、
切り替えずに承認。コマンドや編集を、ノッチから許可または拒否。そのまま元の作業へ。
Claude CodeとCodexの上限を、
ひと目で。Claude CodeとCodexの5時間ごとと週ごとの上限を、セッションの下に。
Xcodeのエージェントを、
ノッチの中に。XcodeのClaude、Codex、Antigravityの出番が、Xcodeを前面に出しておかなくてもわかる。
サーバのエージェントに、
Macから応答。サーバやほかのMac上のClaude Code、Codexなどの出番がわかり、Macから応答できます。