朝、いくつかのリポジトリを順番に手当てしていく日があります。
私自身、個人開発で運営している Dolice Labs の複数サイトを一つずつ見て回るとき、これまでは一つのリポジトリを終えるたびにセッションを畳み、次のディレクトリでまた立ち上げ直していました。
立ち上げ直した瞬間に失われるものがあります。直前まで温まっていたプロンプトキャッシュです。同じ前提を読み込ませ直し、同じ説明を繰り返し、待ち時間とトークンをそのつど払い直していました。
2026 年 6 月 18 日、Claude Code に /cd が追加されました。実行中のセッションを別の作業ディレクトリへ移すコマンドです。一見すると地味ですが、複数リポジトリを横断する運用にとっては、待ち時間と費用の構造そのものを変える追加でした。
同じ作業ディレクトリに縛られていた頃の不便
/cd が無かった頃の横断作業は、おおよそ次のような流れでした。
# リポジトリ A を処理 → セッション終了
claude --resume # ディレクトリ A で再開、キャッシュは温まっている
# リポジトリ B へ移るには、セッションを畳んで cd して立ち上げ直す
cd ../repo-b
claude # まっさらな起動。プロンプトキャッシュは破棄され、再構築から
問題は最後の一行です。ディレクトリを変えるたびにプロセスを起動し直すため、それまでの会話の文脈もキャッシュも引き継げません。
cwd を起点にツールが動く設計上、別リポジトリのファイルを安全に触るには起動し直すのが無難でした。けれども起動し直すと、毎回 system prompt とプロジェクト規約の読み込みが走ります。リポジトリが 4 つあれば、その立ち上げコストを 4 回払う計算になります。
/cd が実際に変えること
/cd は、走っているセッションを保ったまま作業ディレクトリだけを差し替えます。公式の挙動として、押さえておきたい点が四つあります。
観点 再起動していた頃 /cd で移った場合
プロンプトキャッシュ 破棄され再構築 作り直さず温存
会話の文脈 途切れる そのまま継続
移動先の CLAUDE.md system prompt として読み込み メッセージとして追記
セッションの保存先 各ディレクトリで独立 移動先プロジェクトへ再配置
このうち最初の二つが、横断作業の体感を最も大きく左右します。
プロンプトキャッシュを温存できる意味
プロンプトキャッシュは、同じ接頭辞を繰り返し送るときに効きます。キャッシュにヒットした入力トークンは、通常の入力より大幅に安く、応答も速く返ります。
横断作業では、共通の前提(コーディング規約、好みのレビュー観点、過去のやり取り)がそのまま接頭辞になります。再起動はこの接頭辞を毎回ゼロに戻していました。/cd は接頭辞を保ったまま cwd だけを差し替えるため、キャッシュの恩恵を持ち越せます。
ざっくりした費用感を、自分の手元の数字で見積もってみます。
共通前提の接頭辞: 約 12,000 トークン
横断するリポジトリ: 4 つ
再起動方式: 12,000 トークン × 4 回 = 48,000 トークンを毎回フル単価で
/cd 方式: 初回 12,000 トークン + 以降 3 回はキャッシュ読み出し単価
キャッシュ読み出しが入力単価の約 1/10 とすると
48,000 → 12,000 + (12,000 × 3 × 0.1) = 15,600 トークン相当
おおよそ 7 割近い削減(約 70% の節約に相当します)
数字は前提の取り方で動きますが、効きどころははっきりしています。共通接頭辞が大きく、横断する数が多いほど、/cd の温存効果は積み上がります。待ち時間も同じ理屈で短くなります。
移動先 CLAUDE.md が「メッセージ」として届く設計
ここが、運用設計でいちばん注意したい挙動です。
/cd で移った先の CLAUDE.md は、system prompt を置き換えるのではなく、会話に追記されるメッセージとして届きます。つまり、移動元の規約は消えず、移動先の規約が「あとから足された指示」として積み重なります。
利点は、横断中に文脈が途切れないことです。直前のリポジトリで合意した方針を保ったまま、次のリポジトリ固有のルールを足せます。
落とし穴も同じ構造から生まれます。移動元と移動先で相反する規約があると、両方が会話に残ったまま競合します。たとえば移動元が「常体で書く」、移動先が「敬体で書く」と定めていれば、後から届いた指示が前を上書きするとは限りません。
私はこの挙動を踏まえ、各リポジトリの CLAUDE.md の冒頭に「このリポジトリでの上書き事項」を短く明示する運用に切り替えました。横断中でも、どの指示が最新の意図かを取り違えないための一文です。
セッションの再配置と --resume / --continue
/cd で移ると、セッションは移動先プロジェクトのストレージへ再配置されます。あわせて --resume と --continue も移動先から解決されるようになります。
# セッション中に作業ディレクトリを移す
/cd ../repo-b
# このセッションは repo-b のプロジェクト履歴に属するようになる
# 後日 repo-b で続きを開くとき
claude --continue # repo-b 側からこのセッションが見える
運用上の含意は二つあります。
一つは、横断作業の履歴が「最後に居たプロジェクト」に紐づくという点です。あとから振り返るとき、どのリポジトリのプロジェクト履歴を開けば良いかを意識しておく必要があります。
もう一つは、複数リポジトリを行き来した長いセッションは、再開の起点が一箇所に集約されるという点です。私の場合は、横断作業の起点を決め打ちして、そこへ最後に /cd で戻ってから畳むようにしています。
複数リポジトリを横断する実際の手順
私が日々の横断作業で踏んでいる流れを、再現できる形でまとめます。
1. 共通前提を最初のディレクトリで温める
最初のリポジトリで、横断作業に共通する前提(レビュー観点や禁止事項)を一度通します。この時点でプロンプトキャッシュが温まります。
2. /cd で次のリポジトリへ移る
セッションを畳まず、/cd で次のディレクトリへ移ります。共通前提は接頭辞として残り、移動先の CLAUDE.md が追記で届きます。
3. 各リポジトリの「上書き事項」を先頭で確認する
移動先固有のルールを最初に読み合わせ、共通前提とぶつかる箇所だけを明示的に確定させます。ここを飛ばすと、後で指示の混線に気づきにくくなります。
4. 起点に戻ってから畳む
すべて終えたら、起点のディレクトリへ /cd で戻ってからセッションを終了します。再開の入口を一つに保つための習慣です。
ポストセッションフックに終了処理を寄せる
同じ 6 月 18 日の更新で、セッション終了後に走るポストセッションフックも入りました。横断作業の「後片付け」を Claude Code 側へ寄せられる余地が広がります。
これまで私は、各リポジトリの作業後に .next を消し、更新ログを手で残していました。終了処理をフックに寄せると、横断のたびに同じ後始末を繰り返さずに済みます。
settings.json での設定例です。
{
"hooks" : {
"PostSession" : [
{
"matcher" : "*" ,
"hooks" : [
{
"type" : "command" ,
"command" : ".claude/teardown.sh"
}
]
}
]
}
}
呼び出す側のスクリプトは、後始末に徹します。
#!/usr/bin/env bash
# .claude/teardown.sh — セッション終了後の後片付け
set -euo pipefail
# ビルド成果物を掃除(次回の容量不足を避ける)
rm -rf ./.next 2> /dev/null || true
# 終了ログを日付つきで残す(TZ を固定して前日ログ上書きを防ぐ)
TS = "$( TZ = Asia/Tokyo date '+%Y-%m-%d %H:%M')"
echo "[ $TS ] session closed in $( basename " $PWD ")" >> ./.claude/session.log
あわせて入った設定の安全モードは、壊れた構成を隔離して立ち上げ続ける仕組みです。自動運用では、設定ミスでセッション全体が止まるのが最も痛い事故なので、隔離して走り続けてくれる挙動は素直にありがたい改善でした。
移行で気をつけている点
最後に、/cd を運用へ取り込むときに私が注意している点を挙げます。
第一に、相反する規約の同居です。前述のとおり移動先 CLAUDE.md は追記で届くため、移動元の方針が残ります。横断する各リポジトリの規約は、競合しない粒度で書いておくのが安全だと考えています。
第二に、再配置の把握です。長い横断セッションは最後に居たプロジェクトへ紐づくため、再開の起点を決めておかないと履歴を探すことになります。
第三に、温存しすぎないことです。文脈を持ち越せるのは利点ですが、無関係な前提を引きずったまま別領域へ移ると、判断にノイズが乗ります。話題が大きく変わるときは、温存より素直な再起動を選ぶこともあります。
第四に、温存の判断基準を一つ持っておくことです。私は「次のリポジトリでも同じ前提の 7 割以上が役立つか」を目安にしています。役立つなら /cd で持ち越し、半分も使わないなら素直な再起動を推奨する、という単純な線引きです。横断のたびに迷わないための、自分なりの判断基準になっています。
/cd は派手な機能ではありません。それでも、複数リポジトリを行き来する個人開発の現場では、待ち時間と費用の積み重なりを静かに削ってくれる追加でした。同じように横断作業を続けている方の運用設計の一助になれば幸いです。お読みいただきありがとうございました。