楽天スーパーSALE開催中!ポイント最大47.5倍セール会場へ

Claude Codeをスマホから操作する|Remote Control設定でハマった3つの罠

Macで Claude Code に作業させながら、席を立ったあともスマホから続きを指示したい。

それを叶えるのが Remote Control です。

公式ドキュメントどおりにやれば数分で終わる……はずが、実際には3回つまずきました。

同じところで止まる人が多そうなので、原因と直し方をまとめます。

先に結論から。
つまずいたのはこの3つでした。

  1. デスクトップアプリしか入っておらず、claude コマンドが存在しなかった
  2. インストール後、開きっぱなしのターミナルでは PATH が古いままだった
  3. .zprofile に紛れ込んだ全角スペースが、毎回エラーを吐いていた
目次

Remote Control とは

claude.ai/code やスマホの Claude アプリから、自分のマシンで動いている Claude Code のセッションに接続する機能です。

重要なのは、処理はすべて手元の Mac で走るということ。

ファイルも MCP サーバーもローカルの環境がそのまま使えて、スマホ側は窓を覗いているだけです。
クラウド上で動く「Claude Code on the web」とはここが違います。

通信は手元からのアウトバウンド HTTPS のみで、待ち受けポートは開きません。

ノートを閉じてもネットが切れても、復帰時に自動で再接続してメッセージや権限確認を配送し直してくれます。

利用には Pro / Max / Team / Enterprise のいずれかが必要です(API キー認証では使えません)。

設定そのものは1行

自動接続を有効にするには、~/.claude/settings.json にこれを足すだけです。

{
  "remoteControlAtStartup": true
}

デスクトップアプリなら 設定 > Claude Code > Enable remote control by default が同じトグルです。

ここで注意点がひとつ。

この設定は「設定したあとに開いたセッション」にしか効きません。

すでに動いているセッションには適用されないので、「設定したのに何も起きない」の半分はこれが原因です。

罠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 コマンド)は別物です。

アプリを入れただけではコマンドは生えません。

Remote Control のセッションを立てるのは CLI か VS Code 拡張の役目なので、まず CLI を入れる必要がありました。

インストール

公式インストーラが推奨です。

ネイティブビルドが入り、バックグラウンドで自動更新されます。

curl -fsSL https://claude.ai/install.sh | bash

Homebrew でも入ります。

/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 は開き直すまで更新されない

インストーラがこう言ってきます。

Native installation exists but ~/.local/bin is not in your PATH. Run:

  echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc

~/.zshrc の末尾に追記します。

# Claude Code
export PATH="$HOME/.local/bin:$PATH"

……が、開きっぱなしのターミナルではまだ command not found のままです。

当たり前といえば当たり前ですが、シェルの起動ファイルはシェルを起動したときにしか読まれません

すでに開いているタブの PATH は、設定を書き換えた瞬間には変わらないのです。

対処は次のどれかです。

  • ⌘T で新しいタブを開く(一番確実)
  • source ~/.zshrc で読み直す
  • その場しのぎで export PATH="$HOME/.local/bin:$PATH" を直接打つ

私はここで2回同じエラーを踏みました。

「設定は正しいのに動かない」と思ったら、まずタブを開き直してみてください。

罠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 "$(brew shellenv)"  

brew shellenv は7行ほどの export 文を吐きます。

その後ろに全角スペースが連結されると、8行目に「全角スペースだけの行」ができる

zsh はそれをコマンド名だと解釈して探しに行き、見つからずに (eval):8: command not found を出していたわけです。

エラーメッセージの :8 が、まさにその行番号でした。

半角スペースなら区切り文字として無視されますが、全角スペースはただの文字なので区切りになりません。

ここが厄介なところです。

見つけ方

目視ではまず気づけません。

こう探します。

LC_ALL=C grep -n '[^ -~]' ~/.zprofile | cat -v

LC_ALL=C でバイト単位に落として、ASCII の印字可能文字(スペース〜チルダ)以外を含む行を、不可視文字を可視化して表示します。

.zshrc .zshenv .bash_profile あたりも一緒に見ておくといいでしょう。

なお、日本語のコメントを書いている行も当然ヒットします。

コメント行ではなく、コマンドが書かれている行に不可視文字が乗っていないかを見てください。

ちなみに同じ .zprofileeval "$(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

ログイン後はこうなります。

エラー3件が消えて、案内1行だけになれば成功です。

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 アイコン+緑の点でオンライン
  • ブラウザ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'
(空)

環境を継承しないシェルでは空。

つまりデスクトップアプリのプロセス環境だけに設定されていた値で、普通のターミナルから起動する分には自動更新は効きます。

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 '[^ -~]' で洗ってみることをおすすめします。

AI向けパソコンの、いまのおすすめ

用途別に定番を3台だけ挙げます。
そもそも買うべきか迷っている方はクラウドで足りる人・ローカルPCが必要な人の分かれ目から読んでみてください。

① ローカルLLMを本格的に動かす

メモリ帯域256GB/s・64GBのユニファイドメモリで、32Bクラスのモデルが快適に動きます。
ローカルAIを主目的にするなら、いま最もコスパの良い一台です。

② 手頃にAIを試してみる

ユニファイドメモリの広い帯域で、8Bクラスのモデルが実用速度で動きます。
合わなければ普段使いのPCとして使えるので、最もリスクの小さい入口です。

③ 画像生成AIをローカルで回す

画像生成の実用ラインであるVRAM 16GBを、デスクトップで確保できる構成です。
同じ予算のノートPCと比べてVRAMが倍になります。

▶ 16機種を用途・予算・形状で絞り込める比較データベースを見る

選び方をもっと詳しく

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

生成AI を学べる本と、活用に効く機材

生成AI は使い方の型を知っているかで結果が変わります。手を動かしながら読める本を中心にまとめました。

生成AI を学べる本

活用に効く機材

目次