CTS-KB

Claude Code リモートコントロール:CLI セッションをスマホ・Web から操る

⏱ 約 9 分で読めます
#Claude Code #Remote Control #モバイル #DevContainer #ハーネスエンジニアリング #ステアリング駆動開発

🏖️ トイレにもスタバにも行ける AI 開発

長時間タスクを走らせている間、席を離れられない問題は AI コーディングツールの宿命でした。承認プロンプトが 1 回でも出ると、その場で y を押さない限り数十秒で止まってしまう。

Claude Code v2.1.51 で追加された Remote Control 機能は、この「席に縛られる時間」を解放します。ローカルで動いている Claude Code セッションを、claude.ai/code(Web)や iPhone / Android のモバイルアプリから操作・監視できるようになりました。トイレ、お茶、外出、スターバックスでの続き作業 — すべてスマホ 1 台で完結します。

🧠 Remote Control が解決する「席拘束」問題

従来Remote Control
長時間タスク中に席を離れると AI が止まるスマホから状況確認・承認できる
承認プロンプトで作業がブロックどこからでも承認可能
外出時は AI と切断外出先でも続きを指示できる
進捗確認のためだけに PC 前に戻るWeb / アプリで進捗が見える

「ローカルで実行し続けて、指示と承認だけをリモート化する」という設計思想が秀逸です。

🗺️ 接続アーキテクチャ全体像

Claude Code Remote Control の接続概念図:外出先(スマホ/Web/デスクトップ)→ Anthropic Cloud(セッションブローカー)→ 自宅・会社のローカルマシン(DevContainer 内の tmux + Claude Code CLI)の 3 ゾーン構成

図のポイントは 3 つのゾーンに分かれていること:

  • 外出先:スマホ / Web / デスクトップアプリから claude.ai アカウントでログイン
  • Anthropic Cloud:セッションブローカーとして制御だけを中継(コードは保存しない)
  • 自宅・会社:DevContainer 内で claude --dangerously-skip-permissions が稼働し、outbound HTTPS のみでクラウドと通信

ローカルリポジトリとの読み書きは DevContainer 境界の内側で完結 し、ネットワーク越しにコードが流れることはありません。

🔐 ローカルファーストのセキュリティモデル

Remote Control の最大の特徴は データがクラウドに上がらない こと。

  • Claude Code プロセスは ローカルで動き続ける
  • リポジトリのコードやファイルはローカルに留まる
  • 通信は outbound HTTPS のみ(インバウンドポート不要)
  • 認証は TLS + 短命な認証情報で保護
  • セッション 10 分以上通信断で自動切断

ファイアウォールの追加設定や公開 IP も不要。社内ネットワークからそのまま使えます。

📋 前提条件

項目条件
Claude Code バージョンv2.1.51 以降(VS Code 統合は v2.1.79 以降)
プランClaude Max / Pro / Team / Enterprise
認証/login で claude.ai アカウント連携(API キー不可)
Team / Enterprise管理者が admin-settings で Remote Control を有効化

🚀 起動手順:設定を 1 回トグルするだけ

毎セッション /remote-control を叩く必要はありません。Claude Code の設定に Enable Remote Control for all sessions というトグルがあり、これを true にするだけで 以降のすべての claude 起動で自動的に Remote Control が有効になります。

> /config

  Show last response in external editor      false
  Show PR status footer                      true
  Model                                      Default (recommended)
  Auto-connect to IDE (external terminal)    false
  Claude in Chrome enabled by default        true
  Teammate mode                              tmux
  Default teammate model                     claude-opus-4-7
▸ Enable Remote Control for all sessions     true  ← ここを true に

設定後のワークフロー:

# いつも通り起動するだけで Remote Control が有効
claude --dangerously-skip-permissions

# セッション識別のために rename
/rename CTS-EC

これだけで https://claude.ai/code/session_XXXX からアクセス可能になります。

DevContainer との組み合わせ

Agent Teams 編で解説した DevContainer 運用と組み合わせると強力です。

# PowerShell から DevContainer に入って起動
docker exec -it -u vscode cts-ec_devcontainer-devcontainer-1 bash
export LANG=ja_JP.UTF-8
tmux new -s claude
claude --dangerously-skip-permissions
# 設定が true なら Remote Control は自動有効
/rename CTS-EC

bypass permissions + Remote Control の組み合わせ により、スマホから承認プロンプトの応答すら不要になります。ただし DevContainer 内での利用が前提です(bypassPermissions の安全運用を参照)。

💎 bypass permissions + Remote Control は「無限承認ボタンクリック」からの解放

この組み合わせの真価は、ステアリング駆動開発L 規模タスクを動かすとき に実感できます。

フェーズ確認プロンプトが発生する場面
Phase 0(参照実装レビュー)複数ファイルの Read
Phase 1〜N(実装)Edit / Write / Bash(テスト実行・ビルド)
Phase 完了時/test + /check-test-quality + implementation-validator
最終/pre-push(code-reviewer + validator 並列起動)

L 規模ステアリング 1 本で 1 時間以上 かかることも珍しくありません。この間、従来は確認プロンプトが出るたびに PC 前に戻って y を連打し続ける必要がありました。

bypass permissions + Remote Control が解決するのは、まさにこの「無限承認ボタンクリック地獄」です。

  • ✅ 承認プロンプトは bypass permissions が自動で応答 → クリック不要
  • ✅ 進捗確認だけスマホから軽くチェック
  • ✅ 異常があった時だけ Web / モバイルから介入
  • ✅ 席を離れている時間を全部「待ち時間」ではなく「生産的な時間」に転換

「トイレに行ける・お茶が淹れられる・ご飯が食べられる・スタバで別作業ができる」 — この解放感は、一度体験すると戻れません。AI コーディングの運用品質が段違いに上がります。

安全性との両立

自由度が高い分、安全性の前提条件は厳守します。

  • DevContainer の中でのみ bypass permissions を有効化(ホスト OS 直下は絶対 NG)
  • .claude/settings.jsondeny リスト(rm -rf /* / git push --force* 等)は DevContainer 内でも残す
  • git の保護ブランチ・保護タグを必ず設定(main への force push は絶対に防ぐ)
  • 作業完了後は /exit でセッションを明示終了

🏷️ /rename でセッションに名前を付ける(唯一の手動操作)

Enable Remote Control for all sessions を true にしたあと、明示的に操作が必要なのは /rename だけです。複数プロジェクトを同時に走らせるとき、セッション名で識別できないと Web / モバイルで迷子になります。

/rename CTS-EC
Session renamed to: CTS-EC

Web / モバイル側では、このセッション名がそのままリストに表示されます。命名ルール例:

シーン命名例
プロジェクト単位CTS-EC / kb-site
プロジェクト + 作業CTS-EC-yahoo-oauth / kb-article-series
日付付きCTS-EC-20260420

デフォルト名のままだとセッション一覧が session_01XXXX の羅列になるため、起動直後に /rename するのを習慣化すると快適です。

📱 リモート側からの接続

Web(claude.ai/code)

  1. 任意のブラウザで https://claude.ai/code を開く
  2. 左サイドバーの「Code」セクションに、アクティブな Remote Control セッション(例: CTS-EC)が並ぶ
  3. セッションをクリックしてチャット再開
  4. ローカルと同じようにプロンプトを投げる・承認する

CLI 側に表示される https://claude.ai/code/session_XXXX を直接開いてもピンポイントで接続できます。

モバイルアプリ(iOS / Android)

Claude 公式アプリの「Code」タブから、同じアカウントでログインしていればアクティブなセッションが見えます。スマホから承認操作・追加プロンプトが可能で、外出中の作業監視に最適です。

Windows / macOS デスクトップアプリ

Claude デスクトップアプリの Code 画面経由でも、同じ claude.ai/code の UI が利用できます(公式ドキュメントには明記されていませんが、Web 実装を内包しています)。

🎛️ bypass permissions を切り替える Shift + Tab

CLI 側で shift+tab を押すと、権限モードをトグルできます。

▸▸ bypass permissions on (shift+tab to cycle)

モードは以下を循環します。

モード挙動
通常編集・Bash 実行時に確認プロンプト
acceptEditsファイル編集のみ自動承認
bypass permissions全確認をスキップ
plan計画のみ、実行しない

Remote Control 運用時は DevContainer 内で bypass permissions を使うのが実用的 です。Web / モバイルに承認プロンプトが大量に飛んでくるのを避けられます。

🚦 リモート操作と確認プロンプトの関係

操作種別リモートから可能か
プロンプト送信
ファイル編集の承認
Bash コマンド実行の承認
/mcp/plugin 等のインタラクティブピッカー❌(ローカルのみ)
ログアウト・権限モードの切替CLI 側で実行

local-only なコマンドは従来どおり CLI 側に戻って操作します。

⚠️ 制限事項

  • セッション 10 分以上通信断で自動切断 — 長時間の移動中は復帰必要
  • ローカルプロセス停止 = Remote Control 終了 — マシンがスリープすると切れる
  • Ultraplan 開始時に自動切断 — プラン変更操作で再ログインが走る場合あり
  • インタラクティブピッカー(/mcp, /plugin)はローカルのみ
  • ファイルロック無し — 同じファイルを Web 側と CLI 側で同時編集するとコンフリクト

🗺️ ユースケース

1. 外出中の承認ポーリング

長時間テストや大規模リファクタを回している間、スマホに承認だけ流せば、待機時間ゼロで実行が継続します。スタバで記事を書きながらバックグラウンドで CI 前チェックを回す、といった運用が現実的になります。

2. 複数デバイス間の作業継続

朝は PC でステアリング作成 → 昼はスマホで進捗確認 → 夕方は別 PC の Web ブラウザで続き、という 「プロセスはローカル、操作は複数デバイス」 の使い方ができます。

3. ステアリング駆動開発との統合

ステアリング駆動開発の L 規模タスク(8 ファイル、1〜2 時間)では、実装 Phase ごとにスマホから進捗確認できるため、席拘束時間が大幅に減ります。/steering-status の結果もリモートで見えます。

🧷 運用上のベストプラクティス

  • セッション名は /renameプロジェクト + 作業内容 にする
  • bypass permissions必ず DevContainer 内 で使う(Agent Teams 編 参照)
  • 外出時はモバイルアプリのプッシュ通知を ON に(承認要求がスムーズ)
  • 長時間離席するなら、ローカル PC がスリープしない設定にする
  • 作業が終わったらセッションを明示的に終了(/exit

🚫 やってはいけないこと

  • ホスト OS 直下で --dangerously-skip-permissions + Remote Control を同時有効化する(侵入経路を与える)
  • 複数人で同じセッションに接続して同時編集(ファイルロックなし)
  • セッション URL を公開チャットに貼る(短命でも接続可能性を与える)
  • ローカル PC のネットワーク切断を放置(10 分で自動切断)
  • /mcp / /plugin 等のピッカーをモバイルから開こうとする(ローカルでのみ動作)

📚 シリーズ記事

#タイトル内容
1概要ステアリング駆動開発の全体像
2壁打ち・規模判定編壁打ちの進め方、ADR の書き方、規模判定の基準
3ステアリング作成編M/L 規模のドキュメント作成、TDD タスク分解
4実装・完了編TodoWrite 連携、進捗管理、アーカイブ運用
5コンテキスト設計編AI に渡すコンテキストの最適化、skills 設計
6品質ゲート編doc-reviewer、テスト品質チェック、受入テスト
7Claude Code ベストプラクティスCLAUDE.md 設計、hooks、commands、rules、skills
8Agent Teams 編agents 定義、チーム構成、マルチエージェント協調
9Remote Control 編(本記事)スマホ・Web から CLI セッションを操る席拘束からの解放

🔗 関連記事

📖 関連用語

📚 参考資料