Claude Code Remote Controlの使い方 — スマホで作業の続きを操作する
Claude Code(クロード コード)のRemote Control(リモートコントロール)は、CLIやVS Codeのセッションをスマホやブラウザーから操作する機能です。やり方・サーバーモード・自動接続の設定を解説します。
外出先で急に進捗を確認したくなることがあります。Claude Codeのセッションはローカルの端末に置いたまま、スマホやブラウザーからでも操作を引き継げます。この橋渡しを担うのがRemote Controlです。CLIやVS Code拡張で動いているセッションをclaude.ai/codeやClaudeモバイルアプリに接続し、実行そのものは元の端末に残したまま操作だけを外部から続けられます。
知りたいことから探す
Remote Controlは起動方法が複数あり、目的によって使うコマンドが変わります。
| 知りたいこと | 答え |
|---|---|
| やり方(最短) | 答えプロジェクトでclaude remote-controlを実行し、表示されたURLかQRコードをスマホで開く |
| サーバーモードとは | 答えclaude remote-controlで起動する常駐モード。複数セッションを--capacity(既定32)まで同時に受け付ける |
| VS Codeで使うには | 答えプロンプト欄で/remote-controlか/rc。名前の指定とQRコード表示はできない |
| 複数端末・複数作業で使うには | 答えサーバーモードで--spawn worktreeを指定すると、セッションごとに作業ツリーが分かれる |
| 毎回コマンドを打ちたくない | 答えremoteControlAtStartupをtrueにする(後述) |
Remote Controlで何ができるか
Remote Controlをつなぐと、ファイルシステムやMCPサーバー、プロジェクト設定はローカル環境のまま使えます。@によるファイルパスの補完も、接続先の端末ではなく手元のプロジェクトを見て動きます。会話とサブエージェント・ワークフローの進行状況は全接続端末で同期され、ターミナル・ブラウザー・スマホのどこからでもメッセージのやり取りができるのが特徴です。写真やファイルもスマホやブラウザーから送信でき、Claudeは写真をメッセージの一部としてそのまま認識します。
ノートPCがスリープしたりネットワークが切れたりしても、復帰すると自動で再接続します。逆向きに、Claudeが作ったファイルを端末へ届けるツールはSendUserFileの解説にあります。
Remote ControlとClaude Code on the webの違い
Remote Control
セッションは自分のマシンで動きます。ローカルのMCPサーバーやプロジェクト設定がそのまま使え、Webとモバイルはそのセッションを操作する窓口です。ターミナルを閉じるとオフラインになります。
Claude Code on the web
セッションはAnthropicのクラウドで動きます。手元にクローンしていないリポジトリで新規タスクを始めたり、複数タスクを並行させたりする用途に向きます。
利用前に満たす条件
条件がひとつでも欠けると、起動直後に理由付きのエラーで止まります。エラー文言ごとの原因は、後述の「よくあるつまずき」に加えてRemote Controlに接続できないときの見分け方と対処にあります。
- プラン: Pro・Max・Team・Enterpriseで利用可能。APIキー単体の認証には対応しません。TeamとEnterpriseでは、Ownerが管理画面でRemote Controlのトグルを有効にする必要があります
- サインイン:
claudeを起動して/loginでclaude.aiにサインイン済みであること。未サインインの状態でclaude remote-controlを実行するとエラーで終了し、claude --remote-controlは対話セッションこそ始まるものの、直後にRemote Controlの失敗通知が出ます - APIの接続先: Amazon Bedrock・Google CloudのAgent Platform・Microsoft Foundry経由、
ANTHROPIC_BASE_URLをAnthropic以外のホストに向けている場合、エンタープライズ向けのClaude apps gateway経由でサインインしている場合は使えません - フィーチャーフラグの取得:
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICかDISABLE_GROWTHBOOKを設定していると、Remote Controlの可否判定自体が動きません。DISABLE_TELEMETRY・DO_NOT_TRACKだけならv2.1.283以降は使えます(組織がTrusted Devicesを必須にしている場合を除く) - ワークスペースの信頼: 未信頼のディレクトリで
claude remote-controlを実行すると、信頼してよいかを確認するプロンプトが出ます。yで答えると保存されますが、ホームディレクトリでは信頼が保存されないため、プロジェクトディレクトリから始めます。端末に対話できる画面がない環境では、先にそのディレクトリで一度claudeを起動しておきます。信頼を聞くようになったのはv2.1.284以降で、それより前の版は聞かずに終了します
起動方法は用途で使い分ける
Remote Controlの起動方法は、CLIの3モードにDesktopアプリとVS Code拡張を加えた5通りです。
| 起動方法 | コマンド | 特徴 |
|---|---|---|
| サーバーモード | コマンドclaude remote-control | 特徴ターミナルに常駐し、複数セッションを--capacityの上限まで同時受付。QRコード表示・--spawnによるworktree分離に対応 |
| 対話セッション | コマンドclaude --remote-control(--rc) | 特徴通常の対話セッションを開始しつつRemote Controlも有効化。ローカルからも入力を続けられる |
| 既存セッションから | コマンド/remote-control(/rc) | 特徴会話履歴を引き継いだままRemote Controlへ切り替える |
| Desktopアプリ | コマンド/remote-control | 特徴Claude DesktopのセッションからRemote Controlを始められる |
| VS Code拡張 | コマンドプロンプト欄で/remote-control | 特徴フッターにRemote Controlインジケーターが表示され、クリックでセッションへ直接移動できる |
サーバーモードだけは、オプションの既定値が実行結果を左右します。v2.1.285でclaude remote-control --helpを実行した出力から、主なオプションを抜粋します。
$ claude --version
2.1.285 (Claude Code)
$ claude remote-control --help
--name <name> Name for the session (shown in claude.ai/code)
-c, --continue Reattach to the session `claude remote-control`
last recorded for this directory (or one of its
git worktrees) ... Exits with an error if nothing
was recorded here within roughly the last 4 hours
--session-id <id> Reattach to a specific session by ID
--permission-mode <mode> Permission mode for spawned sessions
(acceptEdits, auto, bypassPermissions, default,
dontAsk, plan)
--spawn <mode> Spawn mode: same-dir, worktree, session
(default: same-dir)
--capacity <N> Max concurrent sessions in worktree or
same-dir mode (default: 32)
--[no-]create-session-in-dir
Pre-create a session in the current directory ...
(default: on)ヘルプから読み取れる点は3つあります。
--spawnの既定はsame-dirです。サーバーに複数の端末から同時に接続すると、全セッションが同じディレクトリを編集します。衝突を避けるには--spawn worktreeを明示し、実行中にwキーで切り替えることもできます--capacityの既定は32です。上限に達すると、それ以上の同時セッションは受け付けられません--permission-modeはサーバーが立ち上げるセッションの権限モードを決めます。起動時にacceptEditsやplanなど、使うモードを指定できます
--nameでセッション名を指定でき、スペースキーでQRコードの表示を切り替えられます。VS Code拡張だけは名前引数とQRコード表示に対応していません。
スマホやブラウザーからセッションに入る
起動したセッションに入る手順は次のとおりです。
サーバーモードで起動し、スマホから入るまで
- 1
プロジェクトのディレクトリで起動する
cdでプロジェクトに入り、claude remote-control --name "My Project"を実行します。初回だけ、Remote Controlの有効化の確認が出ます。 - 2
セッションURLかQRコードを開く
ターミナルにセッションURLが表示されます。スペースキーを押すとQRコードに切り替わります。
- 3
スマホまたはブラウザーで開く
Claudeモバイルアプリでスキャンするか、URLをブラウザーで開きます。アプリ未導入なら、Claude Code内で
/mobileを実行するとアプリストアへのQRコードが出ます。
URLやQRコードを使わない入り方もあります。claude.ai/codeやアプリのセッション一覧から名前で探す方法で、モバイルアプリではナビゲーションの「Code」から一覧に入ります。オンラインのRemote Controlセッションは、コンピューターアイコンと緑のステータスドットで見分けられます。
接続した端末では、実行中のサブエージェントやワークフローも表示され、端末側から個別に停止できます。セッションタイトルは、明示した名前 → /renameで設定した名前 → 直近の意味のあるメッセージ → 自動生成名、の優先順です。自動生成名はホスト名をもとにmyhost-graceful-unicornのような形で作られます。/rename自体の仕組みはClaude Codeの/renameコマンドガイドで扱っています。
スマホから送れるスラッシュコマンドと送れないもの
ターミナルでしか動かないコマンド(/pluginや/resumeなど)は、引数を付けても端末側からしか実行できません。スマホやWebから使えるコマンドは、次の系統に分かれます。
スマホ・Webから使えるコマンド
テキストで結果が返るもの
/compact・/clear・/context・/usage・/usage-credits(請求ページのURLを表示)・/exit・/recap・/reload-plugins。/reload-pluginsはセッションが対話端末で動いているときだけ動きます。引数を渡して設定するもの
/model sonnet・/effort highのように値を引数で渡します。/fast・/color・/rename・/autocompact・/advisor・/focusも同じ形式です。画面や範囲に制約があるもの
/mcpはモバイルでは状態の要約テキスト、Webではコネクター一覧を開きます。/configはモバイルでkey=valueを渡し、Webでは設定画面を開くだけです。/output-styleで選べるのは組み込みスタイルだけです。
モデルとeffortレベルの変更も接続端末側から可能です。接続端末の操作パネルで選んだモデルは、そのセッション限りの適用にとどまり、保存済みのデフォルトは変わりません。effortは、手元のセッションに適用されます。ただし対話セッションに/model <名前>をコマンドとして送った場合だけは、新規セッションのデフォルトも更新されます。CLAUDE_CODE_EFFORT_LEVELでeffortを固定している場合、別の値の指定は拒否されます。
端末側が止まったとき、セッションはどうなるか
Remote Controlはローカルのプロセスとして動くので、ターミナルを閉じたりVS CodeやDesktopアプリを終了したりすると、セッションはオフラインになります。SSH先で動かしているなら、tmuxかscreenの中で起動すれば切断後も走り続けます。
サーバーモードでCtrl+Cを押したあとの復帰には3つの選び方があります。どれも同じディレクトリで、停止からおよそ4時間以内に実行します。
サーバー停止後の復帰コマンド
claude remote-control
サーバーが担当していた全セッションを復帰させます。
claude remote-control --continue
サーバーが最初に作ったセッションだけを復帰させ、そのセッションが終わるとサーバーも終了します。ディレクトリに記録がなければ、同じリポジトリの別worktreeで最新のものを使います。
claude remote-control --session-id <ID>
指定したセッションだけを復帰させます。IDはclaude.ai/codeのセッションURLで
/code/と?の間にある部分です。
復帰できるのは、同じディレクトリで別のclaude remote-controlを走らせておらず、--no-create-session-in-dirも付けていない場合に限られます。後者を付けたサーバーは、停止時にセッションをアーカイブします。アーカイブ済みのセッションは、v2.1.228以降なら--continueと--session-idで戻せます。
claude --remote-controlや/remote-controlで始めたセッションは、会話の再開で戻します。使うのはclaude --continueかclaude --resumeです。すでにRemote Controlが有効な別のターミナルで同じ会話を再開した場合、後から開いた側はオフのまま起動します。通知が出るだけで、先に開いていた側からセッションは奪いません。移したいときは、後から開いた側で/remote-controlを実行します。
ネットワークの問題は、モードで挙動が分かれます。
| 状況 | サーバーモード | 対話セッション |
|---|---|---|
| ネットワークが長く落ちた | サーバーモード約10分で諦めてプロセスが終了。再度claude remote-control | 対話セッションローカルで作業を続行。復旧すれば自動で再接続 |
| HTTP 403が続く(VPN切替後など) | サーバーモード— | 対話セッション接続済みなら最大3分リトライし、超えると切断。理由に拒否した相手が出る |
| セッションがクラッシュ | サーバーモード接続端末からメッセージを送ると再び起動(v2.1.238以降)。サーバーの再起動は不要 | 対話セッション該当なし |
約30分ハートビートが届かないと、could not reach the Remote Control server for about 30 minutesで切断されます。再接続は/remote-controlで行います。また、Fableのusage-credits同意プロンプトは接続端末に転送されません。
権限確認などの承認待ちは、答えるまで開いたままです。それ以外のダイアログ(安全上の拒否後のモデル選択など)は、既定で5分待ったあと、何もしない側の選択肢で先へ進みます。この待ち時間はdialogExpiry設定で変えられます(v2.1.224以降)。
常時接続をオンにする
毎回コマンドを打たずに済ませたいなら、/configで「Enable Remote Control for all sessions」を有効にします。値はtrue(常に自動接続)・false(自動接続オフ)・default(組織の既定に従う)の3択です。デスクトップアプリの設定やVS Code拡張のコマンドメニューにも同じトグルがあります。
設定ファイルから制御するなら、ユーザーの~/.claude/settings.jsonか管理設定でremoteControlAtStartupをtrueにします。
{
"remoteControlAtStartup": true
}プロジェクト側の.claude/settings.jsonはfalseだけが反映され、trueは無視されます。そのため、リポジトリを開いた全員に無断でRemote Controlを強制することはできません。自動接続はあくまで自分のclaude.aiアカウントでサインインするので、他人に操作権限が漏れる心配もありません。ただし、この設定でも1プロセスにつき登録されるリモートセッションは1つです。複数インスタンスを起動すればそれぞれ別のセッションになり、1プロセスで複数を受けたいときはサーバーモードを使います。
スマホへのプッシュ通知
Remote Controlが有効なあいだ、Claudeはスマホへ通知を送れます。送るかどうかはClaudeが判断し、長時間のタスクの完了時や、続行に判断が必要なときが典型です。依頼文に「テストが終わったら通知して」と書いて頼むこともできます。
通知を受けるには、Claudeアプリの通知許可が要ります。加えて/configで、次のどちらか(または両方)を有効にします。「Push when Claude decides」はClaudeが自発的に送る通知、「Push when actions required」は権限確認や質問の通知です。イベントごとの細かい設定はなく、この2つのオンオフだけです。机の前にいる間だけpushを止めたい場合はCLAUDE_CLIENT_PRESENCE_FILEで画面ロック解除中のpushを止める方法があります。
通信の仕組みとデータの扱い
ローカルのセッションは常にアウトバウンドのHTTPS通信だけを行い、着信ポートは一切開きません。接続時はAnthropic APIに登録してポーリングし、別デバイスからのメッセージはこの通信を介してローカルセッションへ届きます。通信は複数の短命な認証情報で区切られ、それぞれ用途と有効期限が独立しています。
接続中は、メッセージ・応答・ツールの実行結果を含む会話の記録がAnthropicのサーバーにも保存されます。これは複数端末間で会話を同期し、ネットワーク切断後に再接続するための仕組みです。コードの実行とファイルシステムへのアクセス自体は手元の端末に留まります。Remote Controlを完全に止めたい場合はdisableRemoteControl設定を使います。ゼロデータ保持を選んでいる組織は、そもそもRemote Controlを有効化できません。この設定が既定で有効になり無効化しづらいという報告の経緯はClaude Code Remote Controlの無効化設定と既定で有効になる経緯で扱っています。
よくあるつまずき
- サインインしていないと、
/remote-controlと--remote-controlは「Remote Control requires a claude.ai subscription.」で止まります。claude remote-controlは「You must be logged in to use Remote Control.」で止まります。APIキー(ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN・apiKeyHelper)が優先されていると「Remote Control requires claude.ai subscription auth.」です。claude setup-tokenやCLAUDE_CODE_OAUTH_TOKENの長期トークンだと「Remote Control requires a full-scope login token」になります。どれもclaude auth loginでclaude.aiを選んでサインインし直し、APIキー系の変数は外します - Amazon BedrockやGoogle CloudのAgent Platform経由、あるいは
ANTHROPIC_BASE_URLをAnthropic以外に向けた状態では「Remote Control is only available when using Claude via api.anthropic.com」で拒否されます。原因の変数名がメッセージに含まれるので、そこを解除します。変数ごとの外し方とゲートウェイ経由の場合はRemote Controlが使えない「requires the Anthropic API」の意味にあります - v2.1.154〜v2.1.282では、
DISABLE_TELEMETRYやDO_NOT_TRACKを設定するだけでRemote Controlが使えなくなっていました。v2.1.283以降は使えますが、組織がTrusted Devicesを必須にしている場合は変数を外す必要があります - ホームディレクトリではワークスペース信頼が保存されず、起動のたびに
Trust <directory>? [y/N]を聞かれます。パイプやリダイレクトで入出力が端末でない場合は聞けないため「Error: Workspace not trusted」で終了します。先にそのディレクトリでclaudeを起動して信頼しておきます - 通常の対話セッションでは、Remote Controlが使えるのは1プロセスにつき1セッションだけです。複数の作業を並行させたいときはサーバーモードを使います
- Proプランなのに組織のポリシーで止まる場合は、以前のTeamやEnterpriseのログインが残っていることがあります。
/statusで今のプランと組織を確認し、claude auth logoutのあとclaude auth loginで入り直します。「not yet available on your plan」の文言が出る場合は、Remote ControlがProプランで使えない既知不具合の今も参照してください
Remote Controlと他の遠隔操作手段の使い分け
Claude Codeには、端末を離れて作業を進める手段がRemote Control以外にも複数あります。
| 手段 | きっかけ | 実行場所 | 向いているケース |
|---|---|---|---|
| Dispatch | きっかけモバイルアプリからタスクを送信 | 実行場所自分のマシン(Desktop) | 向いているケース外出中に軽い作業を投げたい、最小限のセットアップで済ませたい |
| Remote Control | きっかけclaude.ai/codeやアプリから操作 | 実行場所自分のマシン(CLI・Desktop・VS Code) | 向いているケース進行中のローカル作業を別端末から続けたい |
| Channels | きっかけTelegram・Discordなどからのイベント | 実行場所自分のマシン(CLI) | 向いているケースCI失敗やチャットのメッセージに反応させたい |
| Slack | きっかけチームチャンネルで@Claudeとメンション | 実行場所Anthropicのクラウド | 向いているケースチームチャットからPRやレビューを動かしたい |
| セルフホスト環境 | きっかけクラウドセッションを開始し組織の環境を選ぶ | 実行場所組織のインフラ | 向いているケース社内ネットワーク内でクラウドセッションを完結させたい |
| 定期実行(Scheduled tasks。クラウド版はRoutines) | きっかけスケジュールを設定 | 実行場所CLI・Desktop・クラウド | 向いているケース毎日のレビューなど繰り返し作業の自動化 |
進行中のローカル作業をそのまま別端末に持ち出したいだけなら、選択肢はRemote Control一択です。クラウド実行の基本はClaude Code Web版とはにあります。
まとめ
外出先から続けたいのが手元の作業そのものならRemote Control、手元にない新規タスクならクラウド実行、と分かれます。複数の端末から同時に受けるなら、--spawnの既定がsame-dirであることを先に確認してからサーバーモードを起動します。
組織でRemote Controlへのアクセスをもう一段厳しくしたい場合はClaude Code Trusted Devicesで組織のRemote Controlを制限する、セッション間の連携はClaude Code @メンションでセッション間の連携を制御するで扱っています。