← すべての記事

Claude Code Macデスクトップ + リモート操作:CLIユーザー向けガイド

From the guide: Claude Code Comprehensive Guide

Claude Code Macデスクトップアプリとclaude remote-controlサブコマンドは、同じ問題を正反対の方向から解決するものです。デスクトップアプリでは、3つのタブ(Chat、Cowork、Code)を備えたウィンドウと、コードの周りに配置できるワークスペースが提供されます。一方、Remote Controlはその真逆で、ローカルマシンにはウィンドウが一切表示されず、スマートフォンのClaudeアプリや任意のブラウザで開いたclaude.ai/codeに対して、ローカルセッションを提供するプロセスだけが動作します。1

ターミナルでclaudeを使い慣れてきた方にとっては、どちらのインターフェースも最初は違和感があるでしょう。TUIで十分なのに、なぜGUIが必要なのか。Macが目の前にあるのに、なぜスマートフォンから操作する必要があるのか。これらの答えはどちらも同じで、ローカル環境こそが移動できない部分だからです。ファイルシステム、MCPサーバー(Yurei、Cloudflare、GitHub)、Xcode、コード署名のID、Yureiソケット、~/.claude/projects/の履歴。これらすべてはマシン上に存在します。デスクトップアプリとRemote Controlは、その環境に別の場所からアクセスする2つの方法なのです。別のウィンドウ、別のデバイス、ソファ、ミーティング中、どこからでも。

このエッセイは、私が移行する際にあれば良かったと思える参考資料となります。3つのモード(ローカルCLI、クラウド、ローカル + Remote Control)、それぞれのセットアップ方法、どのスラッシュコマンドがどこで動作するか、プッシュ通知の仕組み、そしてデスクトップアプリがターミナルのclaudeと異なる具体的な点について解説します。制約についても率直に書きます。余計な内容は省きます。

TL;DR

  • claude.ai/codeから見ると似ているものの、実行環境が大きく異なる3つのモード:ローカルCLIクラウドセッション(ターミナルからのclaude --remote、DesktopのRemote環境、またはclaude.ai/codeで新規セッションを開始)、ローカル + Remote Control。ファイルシステム、MCPサーバー、Xcodeにアクセスできるのは、1番目と3番目のみです。12
  • MacデスクトップアプリのCodeタブは、グラフィカルなClaude Codeセッションです。CLIと同じエンジン、同じ~/.claude.json設定、同じCLAUDE.md、同じMCPサーバーが使えます。ただし、独自のペインレイアウト、サイドチャット、セッションサイドバーを備えています。2
  • claude remote-control(サーバーモード)はプロセスをローカルで実行し続けながら、任意のデバイスから接続できるようにします。claude --remote-controlは、Remote Controlを有効にしたインタラクティブセッションです。/remote-controlは、既存のセッション内から実行できる同等のスラッシュコマンドです。1
  • iOSアプリのプッシュ通知は、/config →「Claudeが判断したらプッシュ」(v2.1.110以降)で有効化できます。長時間タスクが完了したり、入力が必要になったりするとClaudeがプッシュ通知を送ります。13
  • ネイティブのmacOSやiOSビルドの場合、ローカルCLIまたはローカル + Remote Controlだけが実際に機能する環境となります。クラウドセッションではXcodeを実行できず、署名もできず、ローカルのYureiソケットも見えません。2

重要な3つのモード

claude.ai/codeという同じURL、同じiOSアプリのアイコンの背後に、まったく異なる3つのランタイム環境があります。

1. ローカルCLI

これはターミナルでのclaudeです。プロセスはMac上で実行されます。セッションはディスク上の~/.claude/projects/<project-path>/<session-id>.jsonlに保存され、Anthropicアカウントには保存されません。4 iPhoneからは見えません。リモートインターフェースは存在しません。

利用できるもの:

  • フルファイルシステムアクセス:~/Projects~/.claude/、ユーザーが読み書きできる場所すべて
  • すべてのMCPサーバー:Yurei(/tmp/yurei.sock)、Cloudflare、GitHub、Supabase、Playwrightなど
  • Xcode、シミュレーター(xcrun simctl)、コード署名のID、App Store Connect
  • ローカルにインストールされたプラグイン、スキル、フック
  • ボイスモード(/voice
  • すべてのCLIフラグ(--worktree--rc--print--output-formatなど)

利用できないもの:別のデバイスからセッションを表示したり操作したりする手段。

Macアプリのビルド(Return、Get Bananas、Water、App IntentsMCPサーバーの記事に登場するアプリ)の場合、ローカルCLIは完璧に動作します。ローカル + Remote Control(後述のセクション3で扱います)も同様です。どちらもClaudeプロセスをMac上で実行するため、Xcode、シミュレーター、署名にアクセスできます。Apple toolchainを実行できないのはクラウドセッションです。

2. クラウドセッション

これはターミナルからのclaude --remote "task"、デスクトップアプリでセッションを開始する際にRemoteを選択する方法、またはWebでclaude.ai/codeにアクセスして新しいセッションを開始する方法です。Claude Codeプロセスは、自分のマシンではなくAnthropic管理のクラウドインフラ上で実行されます。2(古いドキュメントやシェルの慣習では、同じ結果を得る省略形として& taskが示されることもありますが、明示的な--remoteフラグを正規の形式として扱います。)

利用できるもの:

  • マシンやデバイス間での永続性:iPhone、iPad、ブラウザから見える
  • アプリを閉じたりノートPCをシャットダウンしたりしても継続して動作
  • Anthropic管理の環境、ローカルセットアップ不要
  • マルチリポジトリ対応:クラウドセッションは複数のGitHubリポジトリを同じワークスペースにクローンできる2

利用できないもの:

  • ~/Projectsへのファイルシステムアクセス不可
  • ローカルMCPサーバー(Yureiソケット、ローカルのCloudflareキャッシュスクリプト、.mcp.json内のカスタムMCP)にはアクセス不可
  • Xcode不可、シミュレーター不可、署名不可
  • ~/.claude/設定やスキルへのアクセス不可(クローンしたリポジトリの.claude/内のもののみ)
  • ファイルの@mention不可(@補完はローカルプロジェクトから取得するため、クラウドセッションには存在しない)2

ユースケース:Apple toolchainに依存しない自己完結型のコーディングタスク。PRレビューを開く、テストスイートを実行する、ファイルをリファクタリングする、Pythonスクリプトを書くなど。git + 標準的なLinux + Python/Nodeしか必要ないものなら何でも対応できます。

3. ローカル + Remote Control

これが3つ目の選択肢で、CLIユーザーの多くが見落としている方法です。有効化する方法は3つあります:claude remote-control(サーバーモード)、claude --remote-control(または--rc、Remote Controlを有効にしたインタラクティブセッション)、または既存のセッション内から/remote-controlを実行する方法です。Claude CodeプロセスはMac上で完全なローカルアクセスを持ったまま実行され続けますが、同時にAnthropic APIにも登録されるため、iPhone、iPad、ブラウザから操作できます。1

利用できるもの:ローカルCLIにあるすべて、加えてプロンプトを送れるスマートフォン。会話は接続されたすべてのデバイス間で同期されます。Macのターミナルからメッセージを送り、それをiPhoneで確認し、iPhoneからフォローアップを入力すると、それがターミナルにも表示されます。実際の作業はローカルプロセスが行っており、スマートフォンは単なる窓口にすぎません。

諦めるもの:少数の特定のスラッシュコマンド。ドキュメントでは/mcp/plugin/resumeをローカル専用と明記しています(それぞれインタラクティブな選択メニューを開くため、ターミナルが必要)。ドキュメントには、テキスト出力を生成しモバイルやWebから動作するコマンドがリスト化されています:/compact/clear/context/usage/exit/extra-usage/recap/reload-plugins1

これがネイティブのmacOSまたはiOSアプリビルドにとっての答えです。Xcode、MCP、Yureiソケット、そしてスマートフォンからの可視性、すべてが手に入ります。

Macデスクトップアプリのセットアップ

デスクトップアプリとCLIは、互いの代替ではありません。同じエンジンに対する2つのクライアントです。同じマシン上、同じプロジェクトで、両方を同時に実行することもできます。それぞれが独自のセッション履歴を持ちますが、CLAUDE.md~/.claude.json、MCPサーバー、フック、スキルは共有されます。2

claude.com/downloadからダウンロードしてインストールします。claude.aiアカウントでサインインしてください。アプリには3つのタブがあります:2

  • Chat:通常のClaudeとの会話用
  • Cowork:Dispatch用(長時間実行タスク、必要に応じてスマートフォンからメッセージを送れる)
  • Code:グラフィカルインターフェースを備えたClaude Code用

ここで重要なのはCodeタブです。サイドバーの+ New sessionをクリックします。プロンプト領域で4つの項目を設定します:2

  1. 環境:Local(このMac)、Remote(Anthropicクラウド)、SSH(自分で管理するリモートマシン)
  2. プロジェクトフォルダ:Claudeが作業するディレクトリ
  3. モデル:Sonnet 4.6、Opus 4.6、Opus 4.7など
  4. 権限モード:Ask、Auto-accept edits、Plan、Auto、Bypass permissions

プロンプトを入力してEnterキーを押します。ここからはチャットアプリのように感じられます:メッセージが積み重なり、ツール呼び出しは折りたたみ可能なカードとして表示され、ファイルが変更されると差分統計インジケーター(+12 -1)が表示されます。インジケーターをクリックすると、ファイルごとのレビューと行レベルのコメントを備えた差分ビューアーが開きます。2

ローカルセッションでは、プロンプトボックス内の@キーがプロジェクトのファイルパスを自動補完します。これはCLIの@メンションと同じです。リモートセッションでは、クラウドプロセスがローカルファイルを参照できないため、@は無効化されています。2

開始前の要件

Remote Controlセッションを開始するための4つの前提条件:1

  • Claude Code v2.1.51以降claude --versionで確認)。
  • サブスクリプション:Pro、Max、Team、またはEnterprise。APIキーは非対応です。TeamおよびEnterpriseの場合、まず管理者がclaude.ai/admin-settings/claude-codeRemote Controlトグルを有効にする必要があります。
  • 認証:まだの場合はclaudeを実行し、/login(claude.aiオプション)を使ってください。claude setup-tokenまたはCLAUDE_CODE_OAUTH_TOKEN環境変数からのインファレンス専用トークンは動作しません。
  • ワークスペースの信頼:プロジェクトディレクトリでclaudeを少なくとも1回実行し、ワークスペースの信頼ダイアログを承認してください。

Remote Controlセッションを開始する4つの方法

現在のドキュメントでは4つの起動方法が示されています(CLIからの3つに加えて、VS Codeコマンドが1つ)。Macデスクトップアプリは、Remote Controlのホストではありません。Remote Controlはclaude(CLI)またはVS Code拡張機能によってホストされます。1

サーバーモード:claude remote-control

cd ~/Projects/blakecrosley.com
claude remote-control

ターミナルがサーバーになります。インタラクティブなプロンプトはありません。セッションURLと(スペースバーを押せば)QRコードが表示されます。別のデバイスからURLを開くか、QRコードをスキャンして接続します。セッションがアクティブな間、ターミナルには接続状況とツールアクティビティが表示されます。

便利なフラグ:1

  • --name "My Project":claude.ai/codeに表示されるカスタムセッションタイトル
  • --remote-control-session-name-prefix <prefix>:自動生成名を上書き(デフォルトはマシンのホスト名で、myhost-graceful-unicornのような名前になります)
  • --spawn same-dir(デフォルト):すべてのセッションが現在の作業ディレクトリを共有
  • --spawn worktree:各セッションが独自のgit worktreeを取得(gitリポジトリが必要)。ランタイムでwを押すとsame-dirworktreeを切り替え可能
  • --spawn session:シングルセッションモード、追加の接続を拒否。起動時のみ設定可能
  • --capacity N:同時セッションの最大数(デフォルト32、--spawn=sessionとの併用は不可)
  • --sandbox / --no-sandbox:ファイルシステムとネットワークの分離を切り替え(デフォルトはオフ)

サーバーモードは、セッションを開始してその場を離れたい場合に最適な選択肢です。ターミナルはワークスペースではなくデーモンになります。

インタラクティブ:claude --remote-control

claude --remote-control
# または短縮形
claude --rc

通常のインタラクティブセッションと同じですが、Remote Controlがオンになっています。ローカルからメッセージを入力でき、さらにclaude.ai/codeやiOSアプリからも入力できます。会話は同期され続けます。オプション:claude --rc "Project Name"

ターミナルで作業を続けたいが、スマートフォンからの可視性も欲しいときに使ってください。最も一般的なケースです。

スラッシュコマンド:/remote-control

すでにセッション中で、この特定の会話でRemote Controlを有効にしたい場合は、/remote-control(または/rc)と入力します。現在の会話履歴が引き継がれ、セッションURLとQRコードが表示されます。名前を渡すこともできます:/remote-control My Project

--verbose--sandbox--no-sandboxフラグはスラッシュ形式では動作しません。claude remote-control(サーバーモード)でのみ動作します。

VS Code拡張機能

Claude Code VS Code拡張機能で、プロンプトボックスに/remote-control(または/rc)と入力するか、/でコマンドメニューを開いて選択します。Claude Code v2.1.79以降が必要です。1 プロンプトボックスの上に接続状況を示すバナーが表示されます。Open in browserをクリックするとセッションに直接ジャンプできるほか、claude.ai/codeのセッションリストからも見つけられます。バナーの閉じるアイコンをクリックするか、再度/remote-controlを実行すると切断されます。

VS Codeコマンドはname引数を受け付けず、QRコードも表示しません。セッションタイトルは会話履歴または最初のプロンプトから派生します。

常時オン:/config → 「Enable Remote Control for all sessions」

すべてのインタラクティブなclaudeセッションでデフォルトでリモートセッションを登録したい場合は、/configを実行してEnable Remote Control for all sessionstrueに切り替えてください。1 各インタラクティブプロセスが1つのリモートセッションを取得します。複数のインスタンス → 複数のセッション。単一プロセスから複数の同時セッションが必要な場合は、サーバーモードが依然として正しいツールです。

プッシュ通知の仕組み

何か興味深いことが起きたときにスマートフォンへプッシュ通知を送れます。セットアップは4ステップです:13

  1. iOSまたはAndroid向けのClaudeアプリをインストールします。Claude Code内で/mobileを実行すると、まだダウンロードしていない場合にダウンロード用QRコードが表示されます。
  2. ターミナルのClaude Codeで使っているのと同じClaudeアカウントでサインインします。
  3. OSの通知許可プロンプトを承認します。
  4. ターミナルで/configを実行し、Push when Claude decides(v2.1.110以降)を有効にします。

その後、Claudeがいつプッシュ通知を送るかを判断します。トリガーは2つのケース:長時間実行タスクが終了したとき、またはClaudeが続行のために入力を必要とするとき。プロンプト内で明示的にリクエストすることもできます:「テストが終わったら通知して」など。イベントごとの設定はありません。オンかオフかだけです。

設定をオンに切り替えても通知が表示されない場合の最も一般的な対処法:スマートフォンでClaudeアプリを開いて、プッシュトークンを更新させることです。それまで/config画面にはNo mobile registeredと表示されます。iOSのフォーカスモードやAndroidのバッテリー最適化も配信を遅延させたり抑制したりすることがあります。iOSでは設定 → 通知 → Claudeを確認するか、AndroidではClaudeアプリをバッテリー最適化から除外してください。1

背景情報として:別のpush-notificationツール(同じくv2.1.110以降)があり、これはタスク終了時だけでなく、セッション中にClaude自身が通知を送るかどうかを判断できるようにします。同じRemote Controlインターフェースと組み合わせて動作し、追加のセットアップは不要です。3

リモートで動作するスラッシュコマンド

これは多くのCLIユーザーが気にする部分です。ターミナルではなくスマートフォンで入力するとき、何が動作するでしょうか。

接続されたクライアント(ターミナル、ブラウザ、iOSアプリ)から動作するもの1

  • /compact/clear:コンテキスト管理
  • /context/usage/extra-usage:使用量とコンテキストの確認(v2.1.113以降で/extra-usageにRemote Controlサポートが追加)
  • /exit/recap/reload-plugins
  • すべての非選択メニュー型テキスト入力(通常のプロンプト、テキスト出力を生成する通常のスラッシュコマンド)

ローカル専用(ターミナルのみ)1

  • /mcp:インタラクティブな選択メニューを開く
  • /plugin:インタラクティブな選択メニューを開く
  • /resume:選択UIを伴うセッションリストの描画が必要

パターン:ターミナルでキーボード選択リストが必要なものはすべてローカル専用となります。テキストイン/テキストアウトのものはモバイルやWebから動作します。

一部のコマンドにはバージョン固有のRemote Controlサポートがあります。 /extra-usageはv2.1.113以降のRemote Controlクライアントからのみ動作します。それ以前のバージョンでは静かに失敗していました。5 スマートフォンとMacでコマンドの挙動が異なる場合は、claude --versionを確認する価値があります。

権限モードは少し異なります

デスクトップアプリには5つの権限モードがあり、CLIにはこれら5つに加えてdontAskがあります:2

モード 動作 CLI? デスクトップ?
Ask permissionsdefault すべての編集/コマンドの前に確認
Auto accept editsacceptEdits ファイル編集 + 安全なファイルシステムコマンドを自動承認、それ以外は確認
Plan modeplan 読み取り/探索、計画の提案、ソース編集なし
Autoauto バックグラウンドでの安全性チェック、確認プロンプトの削減
Bypass permissionsbypassPermissions 確認プロンプトなし。CLIの--dangerously-skip-permissionsに相当。Anthropicのガイダンス:サンドボックス化されたコンテナまたはVMでのみ使用すること。 ✓(設定でオプトイン)
dontAsk 事前承認されたツールのみ

dontAskはCLI専用です。それ以外はすべて、送信ボタン横のUIコントロールにマッピングされています。CLIフラグの--dangerously-skip-permissionsはBypass permissionsに対応しており、設定 → Claude Code → 「Allow bypass permissions mode」からオプトインする必要があります。2

AutoモードはTeam/Enterprise/APIでClaude Sonnet 4.6、Opus 4.6、Opus 4.7が必要です。MaxではOpus 4.7が必要です。Proプランや第三者プロバイダーでは利用できません。2

CoworkタブとDispatch(隣接しているが同じではない)

デスクトップアプリのCoworkタブは、エルゴノミクスが重なる別の機能です。Dispatchは「スマートフォンからClaudeにタスクをメッセージで送り、Claudeがそのタスクを自身で処理するか、Mac上にCodeセッションを生成するかを判断する」機能です。2

ペアリングは1回だけ行います:Claudeモバイルアプリをインストールし、Coworkタブ経由でMacにリンクします。その後、Dispatchにタスクをテキストで送れます(「ログインバグを修正してPRを開いて」など)。Dispatchがその作業をルーティングします。バグ修正、依存関係の更新、テスト実行、PR作成は通常、サイドバーにDispatchバッジが付いたMac上のCodeセッションとなります。リサーチ、ドキュメント編集、スプレッドシート作業はCowork内に留まります。

DispatchによってスポーンされたCodeセッションのアプリ承認権限は30分後に期限切れとなります(通常のCodeセッションではセッション中ずっと有効)。そのため、長時間実行されるDispatchタスクでは、すでに承認したアプリ権限を再度確認される可能性があります。2

DispatchはProまたはMaxが必要です。TeamやEnterpriseでは利用できません。

これはRemote Controlではありません。Dispatchは「Claudeに自律的に実行するタスクを送る」機能で、Remote Controlは「すでに実行中のセッションを操作する」機能です。これらは独立したインターフェースとしてドキュメント化されています:Remote ControlはCLIまたはVS Codeによってホストされ、DispatchはDesktop Codeセッションをスポーンします。そして現在のドキュメントでは両者の組み合わせについては記載されていません。委任したい場合(Dispatch)か、操作したい場合(Remote Control)かに基づいて選んでください。

CLIから引き継がれるもの

デスクトップアプリは、CLIと同じ設定ファイルを読み込みます:2

  • プロジェクト内のCLAUDE.mdCLAUDE.local.md
  • MCPサーバー用の~/.claude.json(グローバル)と.mcp.json(プロジェクトごと)
  • ~/.claude/settings.jsonまたは.claude/settings.jsonで定義されたフックとスキル
  • settings.json内の権限ルール
  • 利用可能なすべてのモデル

CLIフラグ → デスクトップ相当:2

CLI デスクトップ
--model sonnet 送信ボタン横のモデルドロップダウン
--resume--continue サイドバーのセッションをクリック
--permission-mode 送信ボタン横のモード選択
--dangerously-skip-permissions Bypass permissions(設定でオプトイン)
--add-dir リモートセッションでリポジトリを追加する+ボタン
--allowedTools--disallowedTools セッションごとのUIなし、設定ファイルのルールは適用される
--verbose TranscriptドロップダウンのVerboseビューモード
--print--output-format 利用不可:デスクトップはインタラクティブのみ
ANTHROPIC_MODEL環境変数 モデルドロップダウン
MAX_THINKING_TOKENS環境変数 ローカル環境エディター

注意すべき設定の落とし穴:Claude Desktopチャットアプリclaude_desktop_config.jsonにあるチャット専用クライアント)とClaude Code Desktop(ここで話している開発者向けクライアント)は別の製品です。チャットアプリ用に設定されたMCPサーバーは、Codeタブには表示されません。Codeは~/.claude.json.mcp.jsonを読み込み、claude_desktop_config.jsonは読み込みません。2

CLI → デスクトップ:いつ移行するか

デスクトップアプリは、CLIがうまくこなせない3つのことで真価を発揮します:2

  1. 並行セッションの並列表示:各Codeタブセッションは<project-root>/.claude/worktrees/に独自のGit worktreeを取得します。Ctrl+Tab/Ctrl+Shift+Tabで切り替えます。あるセッションでリファクタリングを実行しながら、別のセッションでテストスイートを走らせ、ANSIエスケープコードではなく視覚的にレビューできます。
  2. ビジュアル差分レビュー+12 -1インジケーターをクリック。行にコメントを付けます。Cmd+EnterでClaudeにコメントを送信します。ターミナルでインライン差分を読むより優れています。
  3. 埋め込みプレビューペイン:Claudeは開発サーバーを起動し、実行中のアプリを埋め込みブラウザで開き、スクリーンショットを撮り、クリックして自身の変更を検証できます。Auto-verifyはプロジェクトごとにデフォルトでオンになっています(.claude/launch.jsonまたはPreviewドロップダウンで切り替え)。2

CLIが依然として優位な点:スクリプティング(--print--output-format)、自動化(cronジョブ、CI)、tmux/screenワークフロー、dontAsk権限モードを必要とするものすべて。

CLIセッションをコンテキストを失わずにDesktopに移すには、ターミナルで/desktopを実行します。セッションを保存し、デスクトップアプリで開き、CLIを終了します。2

制約と落とし穴

ドキュメントから抜粋した実際のもの:1

  • インタラクティブプロセスごとに1つのリモートセッション。 サーバーモードを除き、各claudeの起動につき1つのリモートセッションをサポートします。複数必要ですか?claude remote-control(サーバーモード)を使ってください。
  • ローカルプロセスは実行され続ける必要があります。 Remote ControlはclaudeCLIプロセスまたはVS Code拡張機能によってホストされます。ターミナルを閉じる、VS Codeを終了する、またはclaudeプロセスを終了すると、リモートセッションは終了します。ターミナルから切り離すモードはありません。1
  • 10分を超えるネットワーク障害でセッションが終了します。Macは起動していてもネットワークに10分間到達できない場合、プロセスは終了し、再起動する必要があります。
  • UltraplanはRemote Controlを切断します。 どちらもclaude.ai/codeのインターフェースを占有し、一度に接続できるのは片方だけです。
  • Autoモードには新しいモデルが必要です。 MaxではOpus 4.7、Team/Enterprise/APIではSonnet 4.6、Opus 4.6、またはOpus 4.7。Proでは利用できません。
  • APIキーやインファレンス専用トークンは動作しません。 Remote Controlにはフルスコープのclaude.ai OAuthログインが必要です。ANTHROPIC_API_KEYが設定されている場合は解除してください。claude setup-tokenまたはCLAUDE_CODE_OAUTH_TOKENで認証した場合は、claude auth loginを実行して更新してください。
  • TeamとEnterpriseの管理者は有効化する必要があります。 デフォルトはオフです。トグルはclaude.ai/admin-settings/claude-code → Remote Controlにあります。一部のデータ保持設定ではトグルが利用できなくなります。

最も一般的な「なぜ動かない」失敗:ユーザーがインファレンス専用トークンでサインインしているケースです。「Remote Control requires a full-scope login token」というエラーがそのケースに対応します。修正方法:claude auth loginを実行してclaude.aiオプションを選んでください。1

知っておく価値のあるその他のトラブルシューティングケース

公式ドキュメントは、初心者の貴重な時間を奪ういくつかの追加の障害モードを扱っています。要約すると:1

  • 「Remote Control requires a claude.ai subscription」:claude.aiで認証されていません。ANTHROPIC_API_KEYが設定されている場合は先に解除し、その後claude auth loginを実行してください。
  • 「Unable to determine your organization for Remote Control eligibility」:キャッシュされたアカウント情報が古くなっています。claude auth loginを実行して更新してください。
  • 「Remote Control is not yet enabled for your account」:環境変数にCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICDISABLE_TELEMETRYCLAUDE_CODE_USE_BEDROCKCLAUDE_CODE_USE_VERTEXCLAUDE_CODE_USE_FOUNDRYが含まれていないか確認してください。Remote Controlにはclaude.ai認証が必要であり、第三者プロバイダーでは動作しません。これらを解除して/logoutしてから/loginしてください。
  • 「Remote Control is disabled by your organization’s policy」:ドキュメントに記載されている3つの原因:(a) APIキーまたはConsoleアカウントを使用している(claude.ai OAuthを使用してください)、(b) Team/Enterprise管理者がトグルを有効にしていない、(c) Remote Controlと互換性のないデータ保持設定のため、管理者トグルがグレーアウトしている(Anthropicサポートに連絡してください)。
  • 「Remote credentials fetch failed」--verboseを付けて再実行し、根本のエラーを確認してください:claude remote-control --verbose。通常は、サインインしていないケース、ファイアウォールがAnthropic APIへのポート443の送信HTTPSをブロックしている、または以前のセッション作成失敗(Session creation failed: see debug logを探してください)です。
  • ワークスペース信頼ダイアログ:Remote Controlが明確なエラーなしに開始に失敗する場合は、プロジェクトディレクトリでclaudeを少なくとも1回実行し、ワークスペース信頼ダイアログを承認してください。Remote Controlがセッションを登録する前にこのステップが必要です。

CLIユーザー向けの判断ツリー

実際のタスクに直面したら、作業に必要なものに基づいてモードを選んでください:

作業にApple toolchainXcode、シミュレーター、署名)が必要か?
├── YES  ローカルCLIまたはローカル + Remote Control
         (クラウドはtoolchainに到達できない

└── NO  ローカルMCPサーバーYureiCloudflareなど)が必要か?
         ├── YES  ローカルCLIまたはローカル + Remote Control
         
         └── NO  スマートフォンから監視/操作する必要があるか?
                  ├── YES  ローカル + Remote Control、またはクラウドセッション
                           (タスクが数時間に及ぶ場合はクラウドが優れている)
                  
                  └── NO  ローカルCLIで十分

Mac/iOSアプリ開発(私のアプリの多くがこれに該当)は、毎回上の分岐に該当します。クラウドセッションではxcodebuildを実行できず、シミュレーターと通信できず、署名もできません。Get BananasのMCP拡張機能、Yureiを利用したcensusスクリプト、またはApple Ecosystemクラスターの作業では、Apple toolchainへの依存は避けられません。ローカル + Remote Controlは、そのtoolchainとスマートフォンから見える表面の両方を提供してくれる唯一の方法です。

FAQ

CLIとデスクトップアプリを同じプロジェクトで同時に実行できますか?

はい。設定(CLAUDE.md、~/.claude.json、MCPサーバー、フック、スキル)は共有しますが、別々のセッション履歴を保持します。2 iTermでclaudeセッションを実行し、デスクトップアプリでCodeタブセッションを実行することができ、両方を同じ~/Projects/blakecrosley.comに向け、両方からgitに書き込めます。worktreeを使っていない場合、並行書き込みには注意してください。

Macがスリープしたとき、Remote Controlセッションはどうなりますか?

マシンがオンラインに戻ると、セッションは自動的に再接続されます。Macが起動していてもネットワークに約10分以上到達できない場合、セッションがタイムアウトし、claude remote-controlで新しいセッションを開始する必要があります。1

Remote Controlは& task(バックグラウンド)構文で動作しますか?

& taskとRemote Controlは異なるインターフェースです。& taskは作業をクラウドセッションに送ります。Remote Controlは別のデバイスからローカルセッションに接続します。両方ともclaude.ai/codeのセッションリストに表示されることがありますが、クラウドのほうはAnthropicインフラ上で実行され、Remote Controlのほうは自分のマシン上で実行されます。1

第三者プロバイダー(Bedrock、Vertex、Foundry)でRemote Controlを使えますか?

いいえ。Remote Controlにはclaude.ai認証が必要です。CLAUDE_CODE_USE_BEDROCKCLAUDE_CODE_USE_VERTEXCLAUDE_CODE_USE_FOUNDRYが設定されている場合、適格性チェックは「Remote Control is not yet enabled for your account」で失敗します。これらを解除して再実行してください。1

--remote-controlclaude remote-controlの違いは何ですか?

claude --remote-control(または--rc)は、Remote Controlを有効にした通常のインタラクティブセッションをターミナルで開始します。ローカルからも別のデバイスからも入力できます。claude remote-control(フラグなし、サブコマンド)はサーバーモードです。ターミナルがサーバーになり、ローカルプロンプトはなく、接続状況のみが表示されます。両方ともデフォルトで1つのリモートセッションを作成しますが、サーバーモードは--capacityまたは--spawnで複数を提供できます。1

デスクトップアプリにはCLIのようなスキル、プラグイン、フックがありますか?

はい。同じスキル、プラグイン、フックです。デスクトップアプリはCLIと同じように~/.claude/settings.jsonとプロジェクトレベルの.claude/settings.jsonを読み込みます。プロンプトボックス横の+ボタンをクリックすると、インストールされたプラグインとスキルを参照できます。プラグインはリモート(クラウド)セッションでは利用できませんが、ローカルデスクトップセッションでは正常に動作します。2

なぜ/mcpはスマートフォンから動作しないのですか?

/mcpは選択にターミナル専用UIが必要なインタラクティブな選択メニューを開きます。ローカル専用です。/plugin/resumeも同様です。1 テキスト出力を生成するもの(/compact/clear/context/usage/extra-usage/exit/recap/reload-plugins)はモバイルやWebから動作します。

無料プランはありますか?それともすべてサブスクリプションが必要ですか?

Remote ControlはPro、Max、Team、Enterpriseの各プランで利用できます。APIキーは非対応です。TeamとEnterpriseでは、ユーザーがこの機能を見るためには、まず管理者がclaude.ai管理設定のRemote Controlトグルを有効にする必要があります。1 デスクトップアプリ自体は無料でダウンロードできますが、使用にはclaude.aiログインが必要です。


最も短いまとめ:ローカルCLIが基盤です。デスクトップアプリは同じ基盤に対するグラフィカルクライアントです。/remote-controlは、その基盤をスマートフォンから到達可能にする橋です。 作業に必要なものと自分の居場所に基づいて選んでください。

参考文献


  1. Anthropic、“Continue local sessions from any device with Remote Control”claude remote-controlclaude --remote-control/remote-control、プッシュ通知、要件、トラブルシューティング表、制約に関する正規のリファレンス。本エッセイ全体で引用しています。 

  2. Anthropic、“Use Claude Code Desktop”。3タブ構造(Chat、Cowork、Code)、セッション開始の設定、権限モード、差分ビュー、プレビューペイン、Git worktreeによる並行セッション、「Coming from the CLI?」比較表、Dispatch、コンピューター操作。 

  3. Claude Code v2.1.105〜v2.1.112のGitHubリリース:Remote Control経由のプッシュ通知(v2.1.110以降)、/recap + Session Recap、/ultrareview/less-permission-prompts、MaxのOpus 4.7向けAuto Mode、PreCompactフックでブロック可能。プッシュ通知ツールの発表についてはv2.1.110リリースノートを参照してください。 

  4. ローカルセッションストレージの規約:~/.claude/projects/<sanitized-project-path>/<session-id>.jsonl。セッションは進行中に追記されるJSONLファイルです。ローカルプロセスからのみ参照可能で、Anthropicアカウントには同期されません。 

  5. /extra-usageのRemote Controlクライアントサポートはv2.1.113で追加されました。Claude Codeリリース履歴を参照してください。それ以前のバージョンではローカルターミナルからのみ動作していました。 

関連記事

2つのMCPサーバーがClaude CodeをiOSビルドシステムに変えた

XcodeBuildMCPとAppleのXcode MCPは、Claude CodeにiOSビルド、テスト、デバッグへの構造化アクセスを提供します。セットアップ、実例、率直な学び。

3 分で読める

Claude Codeのカスタムスキル構築:完全チュートリアル

コードレビュースキルをゼロから構築。ディレクトリ構造、フロントマターフィールド、LLMベースのマッチング、コンテキスト予算、自動起動を解説。

4 分で読める

ブラインド・ジャッジ:36回の対決でClaude Code vs Codexを採点する

Claude Code vs Codex CLIを5つの次元で36回のデュエルにわたりブラインド採点しました。勝者よりも重要なのは、両エージェントの最も優れたアイデアを組み合わせるシンセシスです。

2 分で読める