Claude Media
Remote Controlのセッション名prefixでClaude Codeを見分ける

Remote Controlのセッション名prefixでClaude Codeを見分ける

名前を付けないRemote Controlセッションの自動名は、既定ではホスト名始まりです。CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIXとフラグで接頭辞を変え、複数マシンの一覧を見分けます。

このTipsでできること

Remote Controlのセッションに名前を付けなかった場合、claude.ai/codeやClaudeアプリの一覧にはmyhost-graceful-unicornのような自動名が並びます。先頭のmyhostは、既定ではそのマシンのホスト名です。この先頭部分をCLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIXで差し替えると、ノートPC・検証機・サーバーのセッションを一覧で見分けやすくなります。

自動名の先頭を決める2つの手段

接頭辞を指定する手段は、環境変数とCLIフラグの2つです。どちらも指すのは同じ値で、対象は「明示的な名前が無いときに作られる自動名」だけです。

手段効く範囲使いどころ
CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX効く範囲環境変数を読む起動すべて使いどころマシンごとの恒久設定
--remote-control-session-name-prefix <prefix>効く範囲1回の起動使いどころその場だけ変えたいとき

環境変数の説明には「フラグは同じ値を1回の起動について設定する」とあります。環境変数とフラグが食い違った場合にどちらが勝つかは、env-varsの該当行にもRemote Controlのページにも書かれていません。食い違いを起こさないために、恒常的な値は環境変数、その日だけの値はフラグ、と役割を分けておく方法があります。

フラグはRemote Controlのサーバーモード(claude remote-control)のフラグ表に載っています。

claude remote-control \
  --remote-control-session-name-prefix mac-work

この例で作られる自動名の先頭はmac-workになります。ドキュメントの自動名の例はmyhost-graceful-unicornの1つだけで、接頭辞と残りの部分の区切り方を説明した文はありません。

マシンごとの恒久設定はsettings.jsonのenvに置く

毎回フラグを打つ代わりに、~/.claude/settings.jsonのenvキーへ書くと、claudeをどう起動しても有効になります。

{
  "env": {
    "CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX": "mac-work"
  }
}

シェルのexportでも設定できます。ただし、同じ変数をシェルとenvブロックの両方に書いた場合は、多くのセッションで設定ファイル側の値が使われます。環境変数の一般的な優先順位はClaude Codeの環境変数の記事にまとまっています。マシンが違えば~/.claude/settings.jsonも別ファイルなので、各マシンで別の値を入れれば、一覧上の接頭辞がそのままマシン名の代わりになります。

チームで共有する.claude/settings.jsonに書くと全員が同じ接頭辞になり、見分ける目的を果たせません。個人の~/.claude/settings.jsonか、.claude/settings.local.jsonが向いています。

接頭辞が効く場面と効かない場面

接頭辞は自動名の先頭にだけ付きます。セッション名は次の順で決まり、接頭辞が顔を出すのは4番目だけです。

  1. --name、--remote-control、/remote-controlに渡した名前
  2. /renameで付けたタイトル
  3. 既存の会話履歴にある、最後の意味のあるメッセージ
  4. 自動生成名(myhost-graceful-unicornの形。myhostはホスト名か指定した接頭辞)

したがって、claude remote-control --name "検証機"のように名前を明示したセッションには、接頭辞は付きません。すでに会話履歴のあるセッションを/remote-controlでつないだ場合も、3番目の履歴由来のタイトルが優先されます。

もう1点、見逃しやすい挙動があります。明示的な名前を付けていないと、最初のプロンプトを送った時点でClaude Codeがタイトルをプロンプトの内容に合わせて更新します。つまり接頭辞付きの自動名は、会話を始めるまでの仮の名前になる場合があります。常に一覧でマシンを区別したいなら、接頭辞に頼らず次のように名前を直接決めるほうが確実です。

claude remote-control --name "mac-work: blog"

VS Code拡張の/remote-controlは名前の引数を受け付けず、タイトルは会話履歴か最初のプロンプトから決まります。名前の付け方そのものは/renameコマンドの記事に譲ります。

複数マシンで一覧を見分ける運用例

サーバーモードを複数のマシンで常駐させる場合は、サーバー起動時に自動名の先頭を決めておくと、立ち上がった直後の一覧が読みやすくなります。

運用

接頭辞の付け方の選択肢

  • マシン用途で分ける

    mac-work・mac-home・ci-boxのように、役割が分かる短い語にします。

  • ホスト名のままにする

    既定のままでもmyhostが付くため、ホスト名が既に分かりやすいなら設定は不要です。

  • 案件で分ける

    プロジェクトごとの.claude/settings.local.jsonに入れると、同じマシンでも案件単位で見分けられます。

一覧上の見分けは、claude.ai/codeやClaudeアプリで「コンピューターのアイコンと緑の状態点が付いたセッションがオンライン」という表示とあわせて読みます。セッション自体の特定は、スクリプトからならCLAUDE_CODE_BRIDGE_SESSION_ID、ターミナル側ならセッションを見分ける方法が受け持ちます。

サーバーモードで複数セッションを持つとき

接頭辞を最も使いたくなるのは、claude remote-controlをマシンに常駐させる運用です。サーバーモードは1つのプロセスで複数のセッションを受け持てるため、一覧に同じマシン由来のセッションが並びます。関係するフラグは次のとおりです。

フラグ内容
--spawn <mode>内容same-dir(既定)は全セッションが同じディレクトリを共有。worktreeは新しいセッションごとにgit worktreeを作る。sessionは1セッションだけ受け付ける
--capacity <N>内容同時セッション数の上限。既定は32。--spawn=sessionとは併用できない
--[no-]create-session-in-dir内容起動時に現在のディレクトリへセッションを1つ先に作る。既定でオン

--create-session-in-dirが既定でオンなので、サーバーを起動した直後の一覧にも、名前未指定のセッションが1つ現れます。このセッションの名前が、接頭辞の効果を最初に確かめられる場所です。--nameを付けて起動すると、このセッションはその名前になります。

一覧に並ぶセッションが増えるほど、先頭の数文字で「どのマシンのものか」を判断できる価値が上がります。--spawn worktreeで作業ツリーを分ける場合も、一覧に出る名前の決まり方はタイトル決定順のままです。接頭辞は、ディレクトリや作業ツリーの違いまでは示しません。

常駐させる場合は、プロセスが止まるとセッションがオフラインになる点も押さえておきます。リモートマシンのターミナルで動かすなら、SSHを切っても続くようにtmuxかscreenの中で起動します。サーバーが受け持つセッションの1つが異常終了したときは、つないだデバイスからそのセッションへメッセージを送ると再び動き出し、サーバーの再起動は要りません(Claude Code v2.1.238以降)。ネットワークが約10分途切れると、サーバーのプロセス自体が終了します。

サーバーを止めて再開したときの名前

サーバーをCtrl+Cで止めると、受け持っていたセッションは手元のスマートフォンやブラウザーから応答しなくなります。同じディレクトリで次のコマンドを実行すると、約4時間以内なら戻せます。

  • claude remote-control: サーバーが受け持っていたセッションをすべて戻す
  • claude remote-control --continue: サーバーが最初に起動したセッションだけを戻す
  • claude remote-control --session-id <id>: 指定したIDのセッションだけを戻す。IDはclaude.ai/codeのURLで/code/と?の間にある部分

再開は新しい自動名を作る操作ではありません。戻したセッションは、一覧に載っていた既存のセッションです。そのため、接頭辞を設定し直しても、すでに一覧にあるセッションの名前は書き換わりません。新しい接頭辞を試したいときは、4時間を過ぎてからclaude remote-controlで新しいセッションを作るか、別のディレクトリで起動します。

出先のデバイスから名前を付け直す

自動名が気に入らない場合は、claude.aiやClaudeアプリの側から名前を変えられます。ドキュメントには、claude.aiやClaudeアプリでセッションの名前を変えると、claude --resumeに表示されるローカルのタイトルも更新されると書かれています。

モバイルやWebからは/renameも使えます。引数に新しい名前を渡す形です。一方で/resumeはターミナルからしか動きません。/resumeで別の会話に切り替えても、つないでいるデバイスには切り替え先の会話のタイトルや過去の履歴が届かない点には注意が必要です。一覧の名前だけを見て「今どの会話が開いているか」を判断すると、ずれることがあります。

自動接続を使うときの一覧の増え方

毎回--remote-controlを付ける代わりに、/configの「Enable Remote Control for all sessions」をオンにすると、対話セッションの起動時に自動で接続します。~/.claude/settings.jsonのremoteControlAtStartupをtrueにする方法もあります。

この設定では、対話型のClaude Codeプロセス1つにつきリモートセッションが1つ登録されます。複数のインスタンスを動かせば、それぞれが別のセッションとして一覧に並びます。1つのプロセスから複数のセッションを持ちたい場合は、サーバーモードを使います。自動接続で増えたセッションを見分けたいなら、接頭辞の設定と/renameを組み合わせる運用が考えられます。

プロジェクトの.claude/settings.jsonに書いたremoteControlAtStartupは、falseだけが有効でtrueは無視されます。チェックイン済みのファイルから、リポジトリを開いた全員の接続を勝手にオンにはできない設計です。

つまずきやすい点

  • 接頭辞を変えても、すでに作られたセッションの名前は変わりません。変更後に作られる自動名から反映されます
  • 環境変数はシェルの起動時に読まれるため、exportした後に起動したclaudeから効きます。envブロックの値は、起動中のセッションでもファイル保存時に反映されます
  • 接頭辞に使える文字や長さの制限は、ドキュメントに記載がありません。空白を含めるとコマンドの引数が分かれるため、ハイフン区切りの英数字にしておく方法があります
  • Remote Control自体が使えない構成(DISABLE_GROWTHBOOKなど)では、接頭辞を設定しても効果以前に接続ができません。接続側の条件はRemote Controlの無効化設定の記事で扱っています

まとめ

自動名の先頭は、環境変数でマシンごとに固定し、フラグで一時的に上書きする使い分けが基本です。ただし接頭辞が効くのは名前未指定の自動名だけで、最初のプロンプトでタイトルが置き換わることもあります。確実に区別したい運用では--nameで名前を決め、接頭辞は名前未指定で起動する場合の保険として使うのが現実的です。

この記事を共有:XはてブLinkedIn