Claude Codeの最も強力なワークフローの1つが「リモート制御(Remote Control)」です。Macで大規模なリファクタリングやテストを開始し、デスクを離れてiPhoneや別の端末から進捗を確認したりタスクを承認できます。
しかし多くの開発者が、Claude Codeのリモートセッションが突然切断される問題に直面しています。iOSアプリで「Disconnected(切断)」や「Waiting for host」と表示されたり、MacBookの蓋を閉じた瞬間にセッションが強制終了してしまいます。
本記事では、Claude Codeのリモート制御が切断される根本原因と具体的な解決手順、そして切断されない堅牢なターミナル接続環境の構築方法を解説します。
| 症状 | 根本原因 | 解決策 |
|---|---|---|
| モバイルにセッションが表示されない | 最近のアップデートでリモート制御が初期設定で無効化 | /rcを実行または設定を変更 |
| 接続待機で止まる | ANTHROPIC_BASE_URLなどのプロキシ競合 | 環境変数をunsetして再起動 |
| 蓋を閉じると切断される | macOSのスリープによるWi-Fiおよび描画停止 | ネイティブPTYホスト(Macky)を利用 |
| 60分後に強制切断 | Anthropicクラウドリレーの無通信タイムアウト | 直接P2P WebRTC接続を利用 |
解決策1: アップデートによるデフォルト無効化の解除
初期のバージョンと異なり、最新のClaude Codeではクラウドリソース節約のため、起動時に自動でリモート制御が有効になりません。
手動で有効化する方法:
実行中のClaude Codeセッションで以下を入力します:
/rcまたは完全なコマンド:
/remote-control画面に表示されたQRコードまたはURLを、同一アカウントでログインした端末で開くことで接続が確立されます。
常に自動有効化する設定:
/config set autoRemoteControl true解決策2: 環境変数(ANTHROPIC_BASE_URL)の競合解除
HeadroomやLiteLLMなどのプロキシツールを使用している場合、シェルに ANTHROPIC_BASE_URL がエクスポートされていることがあります。リモート制御のWebSocketゲートウェイ(wss://*.anthropic.com)への通信がプロキシ先に向けられ、接続が永久に応答しなくなります。
確認と解除手順:
env | grep -i anthropic unset ANTHROPIC_BASE_URL claude解決策3: MacBookの蓋閉じスリープによるセッション死滅の回避
MacBookの蓋を閉じると、macOSは省電力のためにWi-Fiのバックグラウンド通信をサスペンドします。caffeinate -i を実行していても、WebSocketのKeep-Aliveハートビートが途絶え、約90秒以内にクラウド側から切断されます。
根本的な解決策: MackyによるネイティブMac PTY接続
不安定なサードパーティのクラウドリレーを経由する代わりに、Macky を使うと、Macのローカル疑似端末(PTY)にiPhoneから直接P2P WebRTCで接続できます。
- クラムシェルモード対応: MacBookの蓋を閉じた状態でも、Mac内部で実行中のClaude Codeをそのまま維持します。
- 通信が途切れない: 4G/5GからWi-Fiへ切り替わっても、WebRTC ICEが自動で再接続。セッションが中断しません。
- ワンタップ承認: 画面下の補助キーボードで「y」「Enter」を即座に入力してシェルコマンドを承認可能。