Macで Claude Code に作業させながら、席を外したあともスマートフォンから続きを指示したい場面があります。
その操作を実現するのが Remote Control 機能です。
公式ドキュメントの手順通りなら数分で完了する設定ですが、実際には3か所でつまずきました。
同様のエラーで止まりやすいポイントについて、原因と対処法をまとめます。
まずは結論として、
つまずいた3つの原因を挙げます。
- デスクトップアプリのみを導入しており、
claudeコマンドが存在しなかった - インストール後、起動したままのターミナルでは PATH が反映されていなかった
.zprofileに混入した全角スペースが原因でシェル起動時にエラーが発生していた
Remote Control とは
claude.ai/code やスマートフォンの Claude アプリから、ローカルマシンで起動している Claude Code セッションに接続して操作する機能です。
処理はすべて手元の Mac 上で実行されます。
ローカルのファイルや MCP サーバー環境をそのまま利用でき、スマートフォン側はインターフェースとして機能します。
クラウド上で実行される「Claude Code on the web」とは仕組みが異なります。
通信はローカル側からのアウトバウンド HTTPS 接続のみを利用し、インバウンドの待ち受けポートは開放しません。
Mac のスリープやネットワーク切断が発生しても、復帰時に自動で再接続され、メッセージや承認要求が再送されます。
利用には Pro、Max、Team、Enterprise のいずれかのプラン契約が必要です。
API キー認証では利用できません。
設定そのものは1行
自動接続を有効にするには、設定ファイル ~/.claude/settings.json に設定キーを追加します。
{
"remoteControlAtStartup": true
}デスクトップアプリを使用している場合は、設定 > Claude Code > Enable remote control by default をオンに切り替えても同様に反映されます。
設定時の注意点が1点あります。
この設定は、設定変更後に新しく起動したセッションにのみ反映されます。
起動済みのセッションには適用されないため、設定しても反映されない場合はセッションの再起動が必要です。
罠1:デスクトップアプリに CLI は同梱されていない
設定を有効化したものの画面上にセッション情報が表示されず、ターミナルで claude rc を実行するようメッセージが表示されました。
指定されたコマンドを実行すると、次のエラーが発生します。
$ claude rc
zsh: command not found: claudeパスを確認したところ、実行ファイルが存在していませんでした。
$ which claude
claude not found~/.local/bin、/opt/homebrew/bin、npm グローバル、Claude.app のバンドル内を確認しても配置されていません。
デスクトップアプリ(Claude.app)と CLI(claude コマンド)は別製品として提供されています。
アプリをインストールしただけでは CLI コマンドは配置されません。
Remote Control のセッションを待受起動するには CLI または VS Code 拡張機能が必要となるため、個別に CLI のインストールを行います。
CLI のインストール
公式インストーラを使用した導入が推奨されています。
ネイティブバイナリが配置され、バックグラウンドでの自動更新が有効になります。
curl -fsSL https://claude.ai/install.sh | bashHomebrew 経由での導入にも対応しています。
/opt/homebrew/bin 配下に配置されるため PATH 追加は不要ですが、自動更新機能は働きません。
brew install --cask claude-code公式インストーラによる配置先は ~/.local/bin/claude で、実体は ~/.local/share/claude/versions/<version> へのシンボリックリンクです。
Version: 2.1.258
Location: ~/.local/bin/claude罠2:開いたままのターミナルでは PATH が更新されない
インストーラ実行時に、環境変数 PATH に関する案内が出力されます。
Native installation exists but ~/.local/bin is not in your PATH. Run:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc~/.zshrc の末尾に PATH 設定を追記します。
# Claude Code
export PATH="$HOME/.local/bin:$PATH"設定を書き換えても、すでに開いているターミナル上では command not found のエラーが継続します。
シェルの設定ファイルは、新しいシェルプロセスを起動したタイミングで読み込まれます。
起動中のターミナルセッションでは、設定ファイルを編集しても即座に PATH は更新されません。
反映させるには次のいずれかの操作を行います。
- ⌘T で新しいタブを開く(推奨・確実)
source ~/.zshrcを実行して設定ファイルを再読み込みする- 現在のシェルセッションで直接
export PATH="$HOME/.local/bin:$PATH"を実行する
設定変更後にターミナルを開き直さず、複数回同じエラーを発生させてしまいました。
設定を正しく記述したにもかかわらずコマンドが認識されない場合は、ターミナルのタブを開き直してください。
罠3:設定ファイルに全角スペースが混入していた
ターミナル起動時に、毎回以下のエラー行が出力されていました。
(eval):8: command not found: 調査したところ、原因は ~/.zprofile の1行目にありました。
cat -v を実行して制御文字・不可視文字を表示すると確認できます。
$ sed -n 1p ~/.zprofile | cat -v
eval "$(/opt/homebrew/bin/brew shellenv)" M-cM-^@M-^@行末に出力されている M-cM-^@M-^@ は、UTF-8 バイト列の E3 80 80 にあたり、全角スペース(U+3000)を表しています。
日本語入力の状態でファイルを編集し、確定時のスペースが末尾に残った状態でした。
エラーが発生する原因
eval において、シェルの eval コマンドは渡された引数を空白区切りで連結したうえでコマンド文字列として評価・実行します。
eval "$(brew shellenv)" brew shellenv は通常、環境変数設定用の複数行の export コマンドを出力します。
出力の末尾に全角スペースが存在すると、連結処理によって最終行に全角スペースのみで構成された行が生成されます。
zsh は全角スペースをコマンド名として解決しようとし、該当コマンドが存在しないため (eval):8: command not found というエラーを出力します。
エラー行に表示されている :8 は、連結後に評価された行番号を示していました。
半角スペースはコマンド引数の区切り文字として処理されますが、全角スペースはシェル上で通常の文字(トークン)として扱われるため区切り文字になりません。
目視での確認が難しく原因特定に時間を要しやすい点です。
不可視文字の検出手順
通常のエディタ表示では混入に気づきにくいケースがあります。
ターミナルから以下のコマンドを実行して検出します。
LC_ALL=C grep -n '[^ -~]' ~/.zprofile | cat -vLC_ALL=C ロケールで評価して ASCII 印字可能文字(スペースからチルダまで)以外のバイトを含む行を抽出し、不可視文字を可視化して表示します。
.zshrc .zshenv .bash_profile などの起動ファイルも合わせて確認することをおすすめします。
なお、設定ファイル内に日本語コメントを記述している行も本検索に一致します。
コメントアウトされた行を除外し、コマンド実行行に意図しない不可視文字が含まれていないかを確認してください。
今回の調査時、同じく .zprofile 内に eval "$(brew shellenv)" の記述が計7回重複して記述されている状態も見つかりました。
Homebrew の再セットアップや自動設定スクリプトの実行を繰り返したことで追記されたと考えられます。
致命的な動作不良には至りませんが、PATH 内で /opt/homebrew/bin が重複登録される原因になります。
認証ログインとワークスペースの信頼設定
CLI インストール完了後、アカウントログインを行います。
claude auth loginデスクトップアプリ側の認証情報は CLI と共有されません。
アプリ版でログイン済みであっても、CLI 側で個別の認証操作が必要です。
現在の認証状態および動作環境は claude doctor コマンドで診断できます。
未ログイン状態では警告およびエラーが表示されます。
Remote Control
Remote Control requires a claude.ai subscription. Run claude auth login to sign in.
- Not signed in to claude.ai
- claude.ai subscription auth not active
- Sign-in is missing the user:profile scope認証完了後は表示が切り替わります。
未認証警告が解消され、正常なステータスが表示されればログイン完了です。
Remote Control
Control this session from claude.ai/code or the Claude mobile app続いて、作業対象となるプロジェクトのディレクトリへ移動して起動します。
cd ~/path/to/project && claude初回起動時にディレクトリの信頼確認プロンプトが表示されるため、承認を行います。
ホームディレクトリ直下では信頼状態が永続化されないため、対象プロジェクトの専用ディレクトリに移動してから起動してください。
接続状態の確認方法
正常に接続できているかは以下の3か所で確認できます。
- ターミナル画面:プロンプト下部のフッター領域に
/rc activeと表示されます。ウィンドウ幅が狭い場合は表示が省略されることがあります。 - スマートフォンアプリ:Claude アプリの Code タブにアクティブなセッション一覧が表示されます。
PCアイコンと緑色のインジケータが表示されていればオンライン状態です。 - Webブラウザ:claude.ai/code にアクセスすると、同様にセッション一覧が表示されます。
一覧に表示されない場合は、ターミナルで /remote-control を実行して手動で接続を確立します。
セッション URL と QR コードが出力されるため、スマートフォンで QR コードを読み取ると対象セッションへ直接アクセスできます。
進行中のセッションをそのままリモートへ引き継ぐ手順
すでにターミナルで対話中のセッションをスマートフォンへ引き継ぎたい場合は、入力欄で次のコマンドを実行します。
/remote-control短縮コマンドとして /rc も利用可能です。
それまでの対話コンテキストを保持したままリモート接続へ切り替わります。
セッションを識別しやすくしたい場合は、/remote-control プロジェクト名 のように引数で名前を指定して起動できます。
作業端末でバックグラウンド待受用のセッションを立ち上げておく場合は、以下のコマンドで起動します。
claude remote-control待受状態で起動し、スペースキーを押すことで接続用 QR コードを再表示できます。
補足:claude doctor の診断結果は実行元プロセスの環境変数に依存する
デスクトップアプリ内のターミナル環境から claude doctor を実行したところ、以下の出力を確認しました。
Auto-updates: disabled (set by env: DISABLE_AUTOUPDATER)ネイティブインストーラでセットアップしたにもかかわらず自動更新が無効と判定されたため確認したところ、設定ファイルおよびログインシェルの双方に DISABLE_AUTOUPDATER の設定は記述されていませんでした。
$ env -i HOME="$HOME" /bin/zsh -ic 'echo $DISABLE_AUTOUPDATER'
(空)クリーンな環境変数で起動したシェルでは空値として扱われます。
この設定値は、デスクトップアプリのプロセス環境変数限定で付与されていたものであり、標準ターミナルから CLI を直接起動して利用する場合には自動更新機能が正常に動作します。
claude doctor コマンドは呼び出し元プロセスの環境変数を読み込んで判定を行うため、実行元の環境によって診断結果が変化します。
正確な環境診断を行う際は、標準のターミナルアプリから直接コマンドを実行してください。
接続後に切断が発生した場合の対処については、以下の関連記事も参照してください。

導入と設定の記事は、ほかにもあります。




まとめ
Remote Control は設定項目自体は1行であり、外部ポート開放を不要とする安全な接続設計になっています。
セットアップ時につまずきやすい要因は、事前の環境構築やシェル設定に集中しています。
| エラー・症状 | 発生原因 | 対処方法 |
|---|---|---|
command not found: claude | デスクトップアプリに CLI バイナリが含まれていない | 公式インストーラ等で CLI を個別インストールする |
インストール完了後も command not found | 起動済みシェルの PATH に反映されていない | ターミナルの新規タブを開き直す |
(eval):8: command not found | .zprofile 内に全角スペースが混入している | LC_ALL=C grep コマンド等で検索して削除する |
| 設定ファイルを変更したのに自動接続されない | 変更前に起動していた既存セッションには設定が反映されない | セッションを再起動するか、セッション内で /rc |
| CLI 実行時にログインを求められる | デスクトップアプリと CLI で認証情報が共有されない | claude auth login |
特に全角スペースの混入は、日本語入力環境下でシェルの起動ファイルを編集する際に起こりやすいトラブルです。
原因が特定しづらいシェルエラーに遭遇した際は、まず LC_ALL=C grep -n '[^ -~]' などのコマンドで不可視文字が混入していないか確認することをおすすめします。
