メインコンテンツへスキップ
ブログ一覧

Claude Code Remote Controlで長時間タスクの権限ブロックを解消する — セットアップから自律開発ワークフローまで

Claude CodeRemote Control自律開発AI エージェント運用

Remote Controlとは何か — 解決する課題と仕組み

長時間タスクの「権限ブロック問題」

Claude Codeで大規模リファクタリングを走らせて外出。30分後にスマホを見ると「ファイル削除の権限を承認してください」で止まっている——この体験、心当たりがあるはずだ。

2026年2月にリリースされたRemote Control機能は、まさにこの問題を解決する。ローカルで動いているClaude Codeセッションを、スマホやタブレットのブラウザから操作できるようになる機能だ。現在はresearch previewとして提供されている。

アーキテクチャ概要 — アウトバウンドHTTPSだけで動く理由

Remote Controlの設計で注目すべきは、インバウンドポートを一切開かない点だ。ローカルのClaude CodeプロセスがAnthropic APIに対してアウトバウンドHTTPSリクエストを送り、ポーリングで指示を受け取る。ファイアウォールやNAT越えの設定は不要。

ローカルに留まるものとブリッジを通過するものの境界は明確だ。

  • ローカルに留まる: ファイルシステム、MCPサーバー、認証情報、プロジェクト設定
  • 暗号化ブリッジを通過する: チャットメッセージとツール実行結果のテキストのみ

つまり、リモートのUIはローカルセッションへの「窓」にすぎない。コードそのものがクラウドに送られることはない。

利用にはMaxプランが必要だ(Proプランも対応済みとの記載があるが、公式ドキュメントのRequirementsセクションではまだ「coming soon」となっている)。Team・Enterpriseプラン、APIキーでの利用は現時点で未対応。

セットアップ手順(5分で完了)

前提条件の確認

まずClaude Codeのバージョンを確認する。

bash
claude --version
claude update

未ログインの場合は claude を起動して /login でclaude.aiにサインインしておく。また、対象のプロジェクトディレクトリで一度 claude を実行し、ワークスペースの信頼ダイアログを承認しておく必要がある。

新規セッションでの起動

bash
# Remote Controlモードで新規セッション起動
claude remote-control

# デバッグ情報付きで起動
claude remote-control --verbose

# サンドボックス有効化(ファイルシステム・ネットワーク分離)
claude remote-control --sandbox

実行するとセッションURLが表示される。スペースキーを押すとQRコードも表示されるので、スマホでスキャンするだけで接続完了だ。

既存セッション中からの切り替え

作業中のセッションからは /remote-control(短縮形 /rc)で即座に切り替えられる。会話履歴もそのまま引き継がれる。

code
/remote-control

正直、この手軽さには驚いた。事前に /rename でセッションに名前を付けておくと、モバイル側のセッション一覧で見つけやすくなる。

すべてのセッションで自動的にRemote Controlを有効にしたい場合は、/config から「Enable Remote Control for all sessions」を true に設定する。

実践ワークフロー3選

1. 外出先からの権限承認フロー

最も基本的なユースケースだ。

  1. ターミナルで大規模タスクを投入し、Remote Controlを有効化
  2. 外出
  3. スマホのClaude app(iOS/Android)またはブラウザで claude.ai/code を開く
  4. セッション一覧でオンラインのセッション(緑のステータスドット付き)を選択
  5. 権限リクエストが表示されたら内容を確認して承認
  6. エージェントが作業を再開

会話は全デバイスで同期されるので、ターミナル・ブラウザ・スマホどこからでもメッセージを送れる。

2. launchd常駐デーモンとの組み合わせ

24時間稼働のデーモンでClaude Codeを回している場合、Remote Controlを組み合わせると監視・介入が格段に楽になる。以下はラッパースクリプトの例だ。

bash
#!/bin/bash
# rc-daemon.sh — Remote Control付きでClaude Codeを起動し、URLをSlackに通知

cd /path/to/your/project

# Remote Control起動(出力からURLを抽出してSlack通知)
claude remote-control 2>&1 | while IFS= read -r line; do
  echo "$line"
  if echo "$line" | grep -q "https://claude.ai/code"; then
    URL=$(echo "$line" | grep -oE 'https://claude\.ai/code/[^ ]+')
    curl -s -X POST "$SLACK_WEBHOOK_URL" \
      -H 'Content-Type: application/json' \
      -d "{\"text\": \"Remote Control session started: $URL\"}"
  fi
done

注意点として、Remote Controlはローカルプロセスとして動作するため、ターミナル(またはプロセス)が終了するとセッションも終了する。launchdのKeepAliveでプロセスを維持する構成が前提になる。

3. 長時間リファクタリングの監視・介入パターン

スマホUIからできることは多い。

  • 途中経過の確認: エージェントの作業ログをリアルタイムで閲覧
  • 方針修正: メッセージを送信して指示を変更
  • 権限の承認/拒否: ファイル編集やコマンド実行の許可を個別に判断

ラップトップがスリープしたりネットワークが切れても、復帰後に自動再接続する。ただし、ネットワーク断が約10分を超えるとセッションがタイムアウトする点は覚えておきたい。

Slack通知との併用パターンも効果的だ。権限リクエスト発生時にSlack通知を飛ばし、通知を見たらRemote ControlのURLを開いて承認する——この流れなら見逃しがほぼなくなる。

セキュリティモデルの技術的詳細

TLS暗号化と短命クレデンシャルの仕組み

Remote Controlの通信は、通常のClaude Codeセッションと同じTLSで保護される。加えて、接続には複数の短命クレデンシャルが使用される。各クレデンシャルは単一目的のスコープに限定され、独立して失効する設計だ。

万が一1つのクレデンシャルが漏洩しても、影響範囲が限定されるよう設計されている。

--dangerously-skip-permissions との使い分け

自律開発において、権限ブロック問題の解決策は大きく2つある。

アプローチ メリット リスク
--dangerously-skip-permissions 完全自動化、介入不要 全権限を無条件で許可。意図しない破壊的操作のリスク
Remote Control 人間が都度判断できる 承認が遅れると待機時間が発生

Remote Controlは「AIエージェントに長時間タスクを任せつつ、必要な判断だけ人間がリモートで下す」という中間解だ。セキュリティと生産性のバランスを取る現実的な選択肢と言える。

企業プロキシやVPN環境では、アウトバウンドHTTPSがブロックされないか事前に確認しておくこと。

/teleportとの違いを正しく理解する

Remote Controlと /teleport は方向が逆の機能であり、競合しない。

項目 Remote Control /teleport
方向 ローカル → リモート表示 Web → ローカル転送
用途 ローカルセッションをスマホ等で操作 Web上のセッションをCLIに引き継ぐ
コマンド claude remote-control / /rc claude --teleport / /teleport
前提条件 Max(またはPro)プラン 同一リポジトリ、クリーンなgit状態

よくある誤解として「Remote Controlはclaude.aiのWeb版と同じ」というものがあるが、これは明確に異なる。Claude Code on the webはAnthropicのクラウドインフラ上で実行される。Remote Controlはあくまでローカルマシンで実行され、UIだけがリモートに表示される。

トラブルシューティング

接続できない・URLが開けない場合

  1. バージョン確認が最優先。初期バージョンにはstaleセッションの問題があったが、後続アップデートで修正済み。
bash
claude --version
claude update
  1. プラン確認: MaxプランまたはProプランであることを確認。Team・Enterpriseプランでは利用不可。

  2. 企業プロキシ/VPN: アウトバウンドHTTPS(ポート443)がブロックされていないか確認。Remote Controlはインバウンドポートは不要だが、Anthropic APIへのアウトバウンド接続は必須。

  3. --verbose フラグでデバッグ情報を確認する。

bash
claude remote-control --verbose

セッションが切れる・staleになる場合

  • ネットワーク断が約10分を超えるとセッションがタイムアウトする。復帰後は claude remote-control で再起動が必要
  • ターミナルやプロセスを閉じるとセッション自体が終了する
  • スマホブラウザはSafari・Chrome推奨。Claude公式アプリ(iOS/Android)が最も安定する

Remote Controlはまだresearch preview段階だが、長時間タスクの権限ブロック問題を抱えるClaude Codeユーザーにとって、今すぐ試す価値のある機能だ。--dangerously-skip-permissions で全権限を渡すリスクを取る必要がなくなるだけでも、導入する意味は大きい。

もっと読む他の技術記事も読む