CodeCraft Lab

Remote Controlで外部連携する

Remote Controlの仕組みと用途を理解し、手元のマシンで動くClaude Codeセッションを別のデバイスやワークフローから操作する方法を学びます

応用15分で読了
Remote Controlリモート操作モバイル連携外部連携

このレッスンで学ぶこと

  • Remote Controlが何を解決する機能なのか、Web版Claude Codeとの違いを含めて理解する
  • CLIとVS Codeのそれぞれから、Remote Controlセッションを開始する具体的な手順を身につける
  • 別デバイス(ブラウザ・モバイルアプリ)からセッションへ接続し、操作を引き継ぐ流れを実践する
  • セキュリティ上の仕組みと、組織で使う際に押さえておくべき制約を把握する

前提条件

  • Lesson 11までの内容、特にVS Code拡張機能の基本操作を理解していること
  • Claude Codeのバージョンが2.1.51以上であること(claude --versionで確認できます)

Remote Controlとは何か

「外回りの移動中に、さっきまでデスクで進めていたClaude Codeのセッションを電話から覗いて続きを指示したい」「会議室のノートPCで止めた作業を、自席のブラウザから再開したい」——Remote Controlはこうした場面のために用意された機能です。

ポイントは、処理そのものはあなたのマシン上で動き続けるという点です。クラウドに処理が移動するわけではなく、claude.ai/codeのWeb画面やClaudeモバイルアプリは、あなたのマシンで実行中のセッションを覗き込み・操作するための「窓」として機能します。

似た名前の機能との違いに注意する

「Web上のClaude Code」(claude-code-on-the-web)は、Anthropicが管理するクラウドインフラ上でセッションそのものを実行する別の機能です。Remote Controlは手元のマシンで動くセッションを覗く窓、Web版Claude Codeはクラウドで完結する別のセッションだと整理すると混同しません。ローカルのファイルシステムやMCPサーバーをそのまま使いたいならRemote Control、クローンすらしていないリポジトリで身軽に始めたいならWeb版、という使い分けが目安です。

Remote Controlを使うと、次のようなことができるようになります。

  • ローカル環境をそのまま持ち運ぶ: ファイルシステム、設定済みのMCPサーバー、プロジェクト固有のルールがすべてそのまま使えます
  • 複数の入力経路から同時に作業する: ターミナル・ブラウザ・モバイルアプリのどこからメッセージを送っても、会話は全デバイス間で同期されます
  • 接続断に強い: ノートPCがスリープしたりネットワークが切れたりしても、マシンがオンラインに戻れば自動的に再接続されます

Remote Controlの前提条件

利用を始める前に、次の3点を満たしているか確認します。

項目内容
サブスクリプションPro・Max・Team・Enterpriseのいずれか。APIキーでの利用は非対応
認証claudeを起動し/loginでclaude.ai経由のサインインが完了していること
ワークスペース信頼対象のプロジェクトディレクトリで最低1回claudeを実行し、信頼ダイアログを承認済みであること
Team / Enterpriseでは管理者の許可が必要

Team・Enterpriseプランでは、Remote Controlはデフォルトで無効になっています。組織の管理者がClaude Code管理設定(claude.ai/admin-settings/claude-code)でトグルを有効化するまで、メンバー側では利用できません。組織導入を検討している場合は、このレッスンの内容を試す前に管理者へ確認しておきましょう。


セッションを開始する3つの方法

CLIから始める

CLIには用途の異なる3つの起動方法があります。

サーバーモード: 複数セッションを待ち受ける

プロジェクトディレクトリで以下を実行すると、サーバーとして起動してリモート接続を待ち受けます。

claude remote-control --name "決済基盤プロジェクト"

セッションURLとQRコードが表示されます。スペースキーでQRコードの表示・非表示を切り替えられます。--spawn worktreeを付けると、接続ごとに独立したgit worktreeでセッションが作られるため、複数人・複数タスクが同じファイルを同時編集してしまう事故を避けられます。

対話型セッション: 手元でも操作しつつ共有する

通常どおり対話的に使いながら、リモートからも操作できる状態にしたい場合は次のフラグを使います。

claude --remote-control "決済基盤プロジェクト"

サーバーモードと違い、ターミナルでメッセージを入力する操作と、リモートからの操作を同時に行えます。

既存セッションを後からリモート化する

すでに会話を進めているセッションを、途中からリモート対応にしたい場合は、セッション内で次のスラッシュコマンドを実行します。

/remote-control

これまでの会話履歴を引き継いだまま、Remote Controlセッションへ切り替わります。

VS Codeから始める

VS Code拡張機能のプロンプトボックスで/remote-control(または/rc)を実行します。プロンプトボックスの上にバナーが表示され、接続が確立すると「Open in browser」からそのままセッションへ移動できます。切断したいときはバナーの閉じるアイコンをクリックするか、再度/remote-controlを実行します。

常時有効にする設定

毎回コマンドを打つのが面倒な場合は、/configから「Enable Remote Control for all sessions」をtrueにすると、起動したすべての対話型セッションが自動的にリモート対応になります。デスクトップアプリでは「Settings → Claude Code → Enable remote control by default」が同じ設定です。


別デバイスから接続する

セッションが起動したら、次のいずれかの方法で別のデバイスから接続します。

  • claude.ai/codeをブラウザで開く: セッション一覧から名前で見つけてクリックする
  • QRコードを読み取る: モバイルアプリで直接開ける
  • Claudeモバイルアプリのセッション一覧を開く: オンラインのセッションには緑のステータスドットが表示される

セッションのタイトルは、--nameで渡した名前、/renameで設定したタイトル、過去の会話履歴の内容、自動生成名(ホスト名-graceful-unicornのような形式)の優先順で決まります。あとから探しやすくするため、長く使うセッションには明示的な名前を付けておくことをおすすめします。

claude remote-control --name "週次レポート自動生成タスク"
モバイルアプリのプッシュ通知も活用する

Remote Controlがアクティブな間、Claude Codeは長時間タスクの完了時や判断が必要なタイミングで携帯にプッシュ通知を送れます。/configから「Push when Claude decides」「Push when actions required」を有効にしておくと、画面を見ていない間の進捗も逃しません。プロンプト内で「テストが終わったら通知して」のように明示的に頼むこともできます。


外部システムとの連携を考える

このレッスンの冒頭で触れたとおり、Remote Controlの本質は「人間が別のデバイスから操作する」ための仕組みです。CI/CDパイプラインやBotのようにプログラムから自動的にClaude Codeへ指示を送りたい場合は、Remote Controlではなく以下のような選択肢の方が適しています。

目的適した仕組み
人がスマホ・ブラウザから今動いているセッションを操作したいRemote Control(このレッスンの主題)
Telegram・DiscordなどのチャットやWebhookをきっかけにセッションを起動したいChannels
CI/CD上でClaude Codeを定期的・自動的に実行したいGitHub Actions連携やスケジュール実行(組織導入コースで扱います)
クローン不要でクラウド上にセッションを作りたいWeb版Claude Code

つまり、「外部システムからClaude Codeを動かす」という大きなテーマの中で、Remote Controlが担うのは「人間が物理的に離れた場所から、今動いているセッションのハンドルを握る」という部分です。CI/CDのような完全自動化のユースケースは、組織導入コースで扱うGitHub Actions連携やスケジュール実行の領域になります。

名前は似ていても役割は別物

「Remote Control」という名前から「外部のプログラムが任意のコマンドでClaude Codeをリモート操作するAPI」を想像しがちですが、実際には人間が複数デバイスを行き来するための機能です。混同したまま設計を進めると、CI連携の実装方針を誤ることになるので注意してください。


セキュリティの仕組みと制約

通信の仕組み

ローカルのClaude Codeセッションは、外部からの接続を直接受け付けるポートを開くわけではありません。アウトバウンドのHTTPS通信のみでAnthropic APIに登録し、作業をポーリングする形を取ります。別デバイスからの接続は、WebやモバイルクライアントとローカルセッションのメッセージをAnthropic APIがストリーミング経由で仲介する構成です。すべての通信はTLSで保護され、短命の認証情報が用途ごとに発行されます。

信頼できるデバイス(Team / Enterprise向け)

Team・Enterpriseプランでは「信頼できるデバイス」という追加の保護機構をベータ提供しています。有効化すると、メンバーがRemote Controlセッションを操作する前に、デバイスの登録と直近18時間以内のサインインが必須になります。サインインが18時間を超えていると、Face ID・Touch ID・Windows Hello・パスキーいずれかの生体認証が次回操作時に求められます。紛失したデバイスはアカウント設定からいつでも取り消せます。

主な制約

  • 対話型プロセス1つにつき、同時に持てるリモートセッションは1つです。複数を同時に持ちたい場合はサーバーモードを使います
  • ローカルプロセスが終了する(ターミナルを閉じる、VS Codeを終了するなど)とセッションも終了します
  • マシンがオンラインのままおよそ10分以上ネットワークに到達できない状態が続くと、セッションはタイムアウトします
  • /resume/pluginのような対話型ピッカーを開くコマンドはローカルCLI限定です。モバイルやWebからは/compact/clear/contextのようなテキスト出力系コマンドのみ実行できます

まとめ

Remote Controlは、Claude Codeの処理場所をマシンに固定したまま、操作する場所だけを柔軟に変えられる機能です。

  • 処理は常に手元のマシンで実行され、Web・モバイルはそれを覗き操作する窓に過ぎない
  • CLIにはremote-control(サーバーモード)・--remote-control(対話型)・/remote-control(既存セッションの切り替え)の3つの起動経路があり、VS Codeにも同等のコマンドがある
  • プログラムによる完全自動化(CI/CD連携など)が目的なら、Remote Controlではなく ChannelsやGitHub Actions連携を検討する
  • セキュリティはTLS通信と短命認証情報、Team/Enterpriseでは追加の信頼できるデバイス機構で守られている

次のステップ

次のLesson 13では、デスクトップアプリ固有の機能に焦点を当てます。Remote Controlで「別デバイスから操作する」体験を見た流れで、今度は「そもそもターミナルを使わずにグラフィカルな環境でClaude Codeを動かす」という選択肢を掘り下げていきます。