Claude Codeでセッションに名前をつけて管理する
Claude Codeのセッションに名前をつける5つの経路と、重複時の自動リネーム、名前をつけなかった場合に付く2種類の自動ラベルの違いを扱います。
複数のプロジェクトやタスクを並行して進めていると、claude --resumeのセッション一覧がすぐに埋まり、どれがどの作業だったか見分けがつかなくなります。Claude Codeのセッションには名前をつけられ、名前をつけたセッションはclaude --resume <name>や/resume <name>で狙って呼び戻せます。名前をつける経路は1つではなく、起動時・会話中・セッション一覧・他デバイスからのリネームまで5通りです。1つのプロジェクトを1つのセッションだけで進めているうちは名前の恩恵は分かりにくいものですが、複数のワークツリーやリポジトリでタスクを同時に走らせ始めた瞬間、セッション一覧の見分けやすさが作業効率を左右するようになります。
セッションに名前をつける5つの経路
| タイミング | 操作 |
|---|---|
| 起動時 | 操作claude -n auth-refactor |
| 会話中 | 操作/rename auth-refactor(プロンプトバーにも名前が表示される) |
| セッション一覧から | 操作セッションを選んでCtrl+R |
| planモードでの承認時 | 操作planモードでプランを承認すると、未命名の場合に限りプラン内容にもとづく自動タイトルが付く |
| claude.aiやClaude Appから | 操作Remote Controlセッションをリネームすると同じ名前がCLI側にも反映される(Claude Code v2.1.221以降) |
claude -n auth-refactorデスクトップアプリからも、並列セッション機能の一覧でセッションをリネームできます。名前をつけた後はclaude --resume auth-refactorまたは/resume auth-refactorで呼び戻せます。resumeが復元する状態や実行中セッションを再開できない制約など、resumeコマンド自体の細かな挙動は/resumeコマンドで過去の会話を再開するにまとまっています。デスクトップアプリのセッションは、デスクトップアプリ側で独自の履歴を持つ点に注意が必要です。CLI以外にも、Claude Code on the webやVS Code拡張はそれぞれ独自のセッション履歴を別に持っています。
起動時に名前をつけない場合、最も手軽に前回の続きへ戻る方法はclaude --continueです。これはカレントディレクトリで直近に使っていた対話セッションを、名前を気にせず自動で再開します。複数のタスクを並行させず、直前の続きだけに戻れれば十分な場合はこちらのほうが速く、名前を意識する必要があるのはセッションが複数に増えてからで構いません。
/clearしても名前は消えない
/clearで会話をリセットして新しく始めても、-nや/renameで設定した名前は新しい会話にそのまま引き継がれます。ただし、名前をつけていないセッションのAI生成タイトル(後述)は引き継がれません。逆に、リセットする前の会話のほうに名前を残しておきたいときは/clear release-prepのように名前を引数として渡します。この場合、直前までの会話がその名前で保存され、新しく始まる会話のほうは未命名です。長時間の調査セッションを/clearで区切りながら、区切りごとに前半の会話へ名前を残していく、といった使い方ができます。あとから経緯を振り返りたい調査タスクほど、この使い方は効いてきます。
名前が重複したらどうなるか
対話セッションを起動・再開する際や/renameで付けた名前が、同じマシン上ですでに動いている別のライブセッションと重複した場合、Claude Codeは元々その名前を使っていたセッション側に名前を残し、後から名乗った側をauth-refactor-graceful-unicornのような2語のサフィックス付き名前に自動でリネームして通知します。たとえばauth-refactorという名前ですでに動いているセッションがあるところに、別のワークツリーでclaude -n auth-refactorを実行すると、後から起動したほうだけが自動で別名にリネームされ、先に動いていたセッションの名前はそのままです。自分で名前を選び直したい場合は、通知の直後に/renameで新しい名前を付け直せます。v2.1.232より前のバージョンでは、この自動リネームは行われず両方のセッションが同じ名前のまま残っていました。
ただし次の3ケースでは重複していても自動リネームされず、一覧に同じ名前のセッションが複数残ることがあります。この3ケースに共通するのは、Claude Codeが重複チェックの対象を「明示的に名前をつけたセッション」に絞っている点です。
- AIが生成したタイトル(後述の「生成タイトル」)同士の重複はチェックしません。生成タイトルは会話ごとに自動で付くものなので、たまたま似た要約になっても衝突扱いにはなりません
- バックグラウンドセッションや
-pセッションを起動時に--nameで指定した場合はチェックしません。対話セッションと違って人が画面を見ながら気づく前提の機能ではないためです - 相手のセッションが古いバージョンのClaude Codeで動いている場合はリネームできません。自動リネーム自体がv2.1.232で入った機能なので、それより前のバージョンのプロセスには通知の手段がありません
名前をつけなかったセッションには2種類の自動ラベルが付く
名前を明示的につけなかったセッションにも、Claude Codeが自動で2種類のラベルを割り当てます。この2つは似ていますが役割が違います。
| ラベル | 内容 | --resume//resumeの呼び出しに使えるか |
|---|---|---|
| デフォルト表示名 | 内容作業ディレクトリ名+2文字のサフィックス(例: my-app-3f)。v2.1.196以降、名前をつけていない対話セッションに自動で付く。agent viewやclaude agents --jsonなどの実行中セッション一覧で識別に使う | --resume//resumeの呼び出しに使えるか使えない。渡してもセッションが見つからない |
| 生成タイトル | 内容最初のプロンプトの要約。バックグラウンドのリクエストとして小型・高速モデル(通常Haiku系)が生成する。セッションピッカーとステータスラインのsession_nameフィールドに表示される。planを承認すると、プランにもとづくタイトルに置き換わる | --resume//resumeの呼び出しに使えるか使える。名前をつけた場合と同じ方法で解決される |
デフォルト表示名は「今どのセッションが動いているか」を一覧で見分けるための識別子であって、呼び戻すためのハンドルではありません。狙ったセッションに確実に戻りたいなら、デフォルト表示名に頼らず/renameで名前を付けるか、生成タイトル(または名前をつけた文字列)を--resumeに渡します。名前をつけると、この2つの自動ラベルはどちらも置き換わります。
この違いは、複数のバックグラウンドタスクを同時に走らせているときに、実際に踏みやすい落とし穴になります。agent viewやclaude agents --jsonの出力でデフォルト表示名を見つけて「これだ」と判断しても、その文字列をそのまま--resumeに渡すとセッションが見つからず、Claude Codeは通常のセッションピッカーを開くわけでもなくエラーを返す、という失敗です。デフォルト表示名は前者(今の状況把握)、生成タイトルは後者(あとで戻る)に最適化されているため役割が分かれており、一覧での識別と呼び戻しは別の仕組みだと理解しておけば、この失敗を避けられます。
繰り返し戻る予定のバックグラウンドタスクほど、起動直後に--nameで名前を付けておくと、あとから一覧を見返したときの迷いが小さくなります。対話セッションでも同じで、/renameは会話の途中いつ実行しても構わないため、名前を付け忘れたことに気づいた時点で、遠慮なく/renameを打てば十分で、あらかじめ完璧な運用ルールを決めておく必要はありません。
ターミナルのタブタイトルにも名前が反映される
Claude Codeは既定でターミナルのタブタイトルに会話から生成したタイトルを表示し、/renameや--nameでセッションに名前をつけると、タブの表示もその名前に切り替わります。複数のターミナルタブを並べて作業しているなら、これだけでも「どのタブが今どの作業をしているか」が一目で分かるようになります。
生成タイトルの表示をタブ側だけ残したい場合は、settings.jsonでterminalTitleFromRenameをfalseに設定してください。
{
"terminalTitleFromRename": false
}この設定を入れても、セッションの名前自体は有効なままです。タブに出る文字列が生成タイトルに戻るだけで、/resume <name>やセッションピッカーでの名前検索にはいっさい影響しません。タブタイトルと--resumeに渡すハンドルは別の仕組みなので、片方だけを制御できます。
並行セッション運用で名前付けが効くタイミング
名前付けの効果が最も出るのは、複数のワークツリーやプロジェクトで同時にタスクを走らせているときです。セッションピッカーを開くには、セッション内から/resumeを引数なしで実行するか、シェルからclaude --resumeを実行します。開いたピッカーにはCtrl+Aで全プロジェクトのセッションを横断表示、Ctrl+Wで同一リポジトリの全ワークツリーを横断表示、Ctrl+Bで現在のGitブランチに絞り込む、という3種類の絞り込みショートカットがあり、もう一度同じキーを押せば元の表示に戻ります。Ctrl+Wは複数ワークツリーを持つリポジトリでだけ表示される、状況依存のショートカットです。
名前を付けておけば、この横断表示の中でも検索文字列を打つだけで目的のセッションに一足飛びで到達できます。ピッカーの検索は/か任意の印字可能文字(Spaceを除く)を押すと始まり、一致箇所がハイライトされる仕組みです。名前による解決は現在のリポジトリとそのワークツリー全体にまたがって行われるため、目的のセッションが別のワークツリーで動いていても、完全一致する名前をclaude --resume <name>や/resume <name>に渡せばそのまま呼び戻せます。
逆に名前を付けずデフォルト表示名だけに頼っていると、似たようなディレクトリ名のセッションが並んだときに見分けが付きにくくなります。たとえば同じリポジトリを複数のワークツリーにチェックアウトして並行作業していると、デフォルト表示名は作業ディレクトリ名に由来するため、ワークツリーごとの区別はサフィックスの2文字だけが頼りです。ブランチ名や作業内容がひと目で分かる名前を/renameで付けておけば、この曖昧さを避けられます。
なお、セッションの名前と、トランスクリプトが保存されるプロジェクトディレクトリの名前は別の仕組みです。後者は既定で作業ディレクトリのパス全体から導かれますが、CLAUDE_CONFIG_DIRと併せてCLAUDE_CODE_PROJECT_DIR_NAMEを設定すると自分で決められます(v2.1.234以降)。Claude Codeを組み込んだホストがセッションごとに設定ディレクトリを分ける用途を想定したもので、CLAUDE_CONFIG_DIRを設定せずに使うと全プロジェクトの記録が1つのディレクトリに混ざるため、この変数は単独では効きません。
まとめ
セッションに名前をつける経路は起動時の-n、会話中の/rename、セッションピッカーのCtrl+R、planモードの承認、Remote Control・デスクトップアプリからのリネームの5通りです。名前が重複すると後から名乗った側が自動でリネームされます(v2.1.232以降)。名前をつけなければデフォルト表示名(識別用、呼び戻せない)と生成タイトル(呼び戻せる)の2種類が自動で付きますが、複数プロジェクトを並行して扱うなら、/renameで自分の分かる名前を付けておくのが確実です。
単発のタスクを1つのセッションだけで片付けるうちは、claude --continueで十分に用が足ります。名前付けを検討する目安は、同時に開いているセッションの数が2つを超えたときです。その時点で/renameする習慣をつけておけば、後からセッション一覧が何十件に増えても、迷わず目的の会話に戻れます。