リモートPTY端末のWebSocketストリーミングとリアルタイム共同観察の設計
クラウド上で Claude Code を動かすにはコンテナが必要です。ブラウザから見守るには、サンドボックスからの外向き接続、ブラウザソケット側で計測するバックプレッシャー、明示的な切断フレームが必要です。
エージェントをクラウドマシンに移すのは簡単な半分であり、誰もが語る部分です。製品の実用性を左右するもう半分は、そのマシンとブラウザ間の接続制御です。
画面が実行環境ではなくなる
エージェントをローカルから移す理由はPCの性能ではなく、実行を特定デバイスから解放するためです。
これにより、すべてのキーストロークと出力バイトがネットワークを経由することになります。
サンドボックスが外向きに接続する
エージェントを実行するマシンには公開ポートがありません。制御プレーンに対して1本の外向き接続を張り、全ブラウザを多重化します。
したがって、到達性ではなく、接続維持時の輻輳制御こそが重要になります。
第1のサイレント障害:誤ったソケットの監視
大量のログを出すビルドでは、ブラウザの描画能力を超える速度で出力が生成されます。
サンドボックス自身のソケットを監視しても、制御プレーンとの高速回線では詰まりません。詰まっているのはブラウザ側のソケットです。
遅い受信側で検知し、TCPのバックプレッシャーをサンドボックスまで伝播させて書き込みを一時停止します。
共有リンクでの読み込み停止は他者にも影響するため、ミリ秒単位で素早く制御します。
第2のサイレント障害:常に返答してしまう Ping
WebSocket の ping は OS のネットワークスタックが自動返答するため、タブを閉じても反応し続けます。
制御プレーンがブラウザの切断を明示的にサンドボックスへ送信し、不要な出力を止めます。
なぜこれが本質なのか
CLI をコンテナに入れるだけなら誰でもできます。接続状態を正直に管理することこそが実用性の分かれ目です。
ファイルの衝突を防ぐ予約ボードは専用記事で、秘密情報の分離は第3の記事で解説しています。
率直な答え
ノートPCを閉じても Claude Code は動き続けますか?
はい。エージェントプロセスと作業ディレクトリはクラウド上にあるため、PCを閉じても閲覧が終わるだけで処理は継続します。
クラウドエージェントのために自宅ネットワークのポート開放は必要ですか?
不要です。サンドボックスが制御プレーンへ外向き接続を張るセルフホストランナー方式のため、NAT 配下でも動作します。
観察しているブラウザが落ちた場合、タスクはどうなりますか?
タスクは継続します。制御プレーンがサンドボックスへ明示的に切断を通知するため、空の接続への無駄な配信は防止されます。