SaaS・IT

Claude Codeでセッションを再開する実践|continue・resume

Claude Codeは過去の会話を保存し--continue/--resumeで前回の続きを即再開できる。3つの再開方法の違い、CI・ヘッドレス実行での使い方、保存場所と30日保持の仕様を公式準拠で解説。

Claude Codeでセッションを再開する実践|continue・resume

「昨日の続き、どこまでやったっけ」を毎朝ゼロから思い出していませんか。Claude Code は過去の会話をまるごと保存していて、--continue--resume で前の作業をそのまま開き直せます。本記事では、この2つのフラグと /resume スラッシュコマンドの違い、ヘッドレス実行(CI)での使い方、保存場所と保持期間まで、公式仕様にもとづいて整理します。

結論:3つの再開方法を使い分ければ、文脈の作り直しはほぼゼロになる

結論:Claude Code のセッション再開は「直近に戻る」「過去から選ぶ」「会話中に乗り換える」の3パターンで、入口がそれぞれ違います。これを覚えるだけで、毎朝のコンテキスト再構築という無駄が消えます。

  • 要点1claude --continue-c)は、そのディレクトリの最新の会話を選択画面なしで即再開する。
  • 要点2claude --resume-r)は過去セッションの一覧から選んで再開する。名前やセッションIDを直接指定もできる。
  • 要点3:どちらも -p(print/ヘッドレス)と組み合わせられるので、CIや夜間バッチで「前回の続き」を機械的に走らせられる。

対象読者:複数プロジェクトを並行で触る開発者、Claude Code をCI/自動化に組み込みたいエンジニア、チーム導入を検討中のPM。今日できること:いま作業中のディレクトリで claude --continue を一度叩いて、昨日の会話が復元される感覚をつかむ。

そもそもなぜ「セッション再開」が効くのか

Claude Code を毎回新規で立ち上げると、プロジェクトの構成、これまでの設計判断、試して失敗したアプローチを、また一から説明し直すことになります。これが地味に重い。とくに込み入ったリファクタやデバッグの途中で席を立つと、翌日には「どのファイルを見ていたか」「何を保留にしたか」が頭から抜けています。

Claude Code は会話を1セッションずつローカルに記録しているので、再開すればその文脈ごと戻れます。新しく文脈を組み立てるコスト(人間の手間も、説明のためのトークンも)を払わずに済む。これは長丁場の作業ほど効いてきます。コンテキストの節約という観点では、Claude Code のコスト最適化ガイドで扱うトークン管理とも地続きの話です。

--continue:直近の会話に1コマンドで戻る

いちばん使うのはこれです。作業していたディレクトリで次を叩くだけ。

# 最新の会話をそのまま再開(選択画面は出ない)
claude --continue

# 短縮形も同じ
claude -c

ポイントは選択画面を挟まず、そのディレクトリで最後に開いていた会話へ直行すること。「さっきの続きをすぐ再開したい」用途に最適です。逆に言うと、過去のどれを開くか選びたいときには向きません(それは次の --resume の役割)。

なお、過去の会話一覧から選び直したいだけなら、会話を立ち上げてから /clear で新規にする、という整理もできます。/clear は文脈を空にして仕切り直すコマンドで、それまでの会話はローカルに保存されたまま後から再開可能です。「いったんまっさらにしたいが履歴は消したくない」場面で使えます。

--resume:過去のセッションを一覧から選ぶ

複数の会話を行き来したいときは --resume です。引数なしで叩くと、過去セッションの選択画面(ピッカー)が開きます。

# 過去セッションの一覧から選んで再開
claude --resume

# 短縮形
claude -r

# 名前やセッションIDを直接指定して再開することもできる
claude --resume "リファクタ作業のセッション名"

--continue が「最新に直行」なのに対し、--resume は「どれを開くか自分で選ぶ」。3日前に途中で止めた調査の会話に戻る、別ブランチで進めていた実装を開く、といった使い方になります。名前やIDが分かっていれば一覧を経由せず一発で開けるので、よく戻るセッションは指定で呼ぶと速いです。

/resume:いまの会話を閉じずに別の会話へ乗り換える

3つ目は、すでに Claude Code を起動した状態から使うスラッシュコマンドです。

# 起動中のセッション内で実行
/resume

これはアクティブな会話の中から、別の保存済み会話へ切り替えるためのもの。いったんターミナルを抜けて claude --resume で入り直す必要がなく、作業の流れを止めずに会話を乗り換えられます。CLIフラグの --resume とは入口が違うだけで、「過去の会話を開く」という目的は同じです。

3つの違いを表で整理します。

方法 入口 挙動 向いている場面
claude --continue-c ターミナル(起動時) そのディレクトリの最新の会話へ直行 さっきの続きを即再開
claude --resume-r ターミナル(起動時) 一覧から選択/名前・IDで指定 過去の特定の会話に戻る
/resume 起動中のセッション内 会話を閉じずに別会話へ乗り換え 作業中に別の文脈へ切替

ヘッドレス(CI・バッチ)で「前回の続き」を自動実行する

ここからが自動化勢に効く話です。--continue--resume は、非対話の -p--print)モードと組み合わせられます。

# 最新の会話を引き継いで、1回だけ実行して結果を返す
claude --continue -p "前回の修正の続きで、残りのテストを通して"

# 名前指定したセッションをヘッドレスで継続
claude --resume "nightly-refactor" -p "lint の指摘を順に潰して"

これにより、CIのジョブやcronから「同じ文脈を維持したまま」Claude Code を走らせられます。たとえば夜間バッチで特定セッションを継続させ、翌朝その結果を確認する、といった運用が組めます。-p での自動実行を本格的に設計するなら、権限やサンドボックスの設計も併せて固めておくのが安全です。

注意点として、-p や Agent SDK 経由で作られたセッションは、対話モードのピッカー一覧には基本的に出てきません。ただしセッションIDが分かっていればIDで再開できます。スクリプトから扱う場合は、起動時にIDを固定しておくと後追いしやすくなります。

# セッションIDを指定して開始(UUID形式)
claude --session-id "550e8400-e29b-41d4-a716-446655440000"

セッションはどこに保存され、いつまで残るのか

会話はローカルにJSONL形式で保存されます。保存先はおおむね次の形です。

# プロジェクトごとのディレクトリ配下に、セッションIDのjsonlとして保存される
~/.claude/projects/<プロジェクト>/<セッションID>.jsonl

プロジェクトの区切りは作業ディレクトリから決まります。保持期間は既定で30日で、設定の cleanupPeriodDays で変更できます。「先週のあの会話、もう消えた?」と不安になったら、まず保持期間の設定を確認しましょう。ここを延ばしておけば、長めのプロジェクトでも過去のやり取りに戻れます。プロジェクト固有の前提を毎回読ませる設計は、CLAUDE.md 設計・運用ガイドの方針とも噛み合います。再開(過去の会話に戻る)と、巻き戻し(会話やコードを途中の状態に戻す)は別機能なので、状態を1手前に戻したいときはClaude Code rewind で巻き戻すガイドのほうを参照してください。

つまずきやすいポイントと回避策

現場で実際にハマったパターンを、失敗→正解の形で残しておきます。

❌ 失敗1:--continue で「別プロジェクトの会話」が出てこないと悩む

❌ ディレクトリAで作業した会話を、ディレクトリBで claude --continue しても出てこず「履歴が消えた」と誤解する。
⭕ セッションはプロジェクト(作業ディレクトリ)単位で保存される。続きを開きたいなら、その会話を始めたディレクトリで叩く。別の場所から探すなら --resume でIDや名前を指定する。

❌ 失敗2:過去のどれを開くか選びたいのに --continue を使う

❌ 3日前のセッションに戻りたいのに --continue を叩き、最新の別作業が開いてしまう。
⭕ 「どれを開くか選ぶ」なら --resume。一覧から選ぶか、分かっていれば名前・IDで直接指定する。--continue はあくまで「最新に直行」と割り切る。

❌ 失敗3:-p で作ったセッションが一覧に出ず「保存されてない」と思い込む

❌ CIで -p 実行したセッションが対話モードのピッカーに現れず、記録されていないと判断する。
-p・SDK 経由のセッションはピッカーに出ないだけで、IDがあればIDで再開できる。スクリプト側で --session-id を固定しておけば後から確実に追える。

❌ 失敗4:保持期間を確認せずに「会話が勝手に消えた」と騒ぐ

❌ しばらく開かなかった会話が見当たらず、バグだと決めつける。
⭕ 既定の保持期間は30日。長く残したいなら cleanupPeriodDays を延ばす。重要なやり取りは、再開前提にせず別途メモやCLAUDE.mdへ要点を移しておくと安全。

セキュリティ・運用上の注意

セッションのJSONLには、会話で扱ったコードやファイルの内容、コマンド出力がそのまま残ります。機密を含むやり取りをした端末では、保存ファイルもテキストと同じ取り扱いで管理すべきです。チームで共有マシンを使う場合は、保持期間の方針(必要以上に長く残さない)と、保存先ディレクトリへのアクセス権を整理しておくと事故を防げます。

よくある質問

--continue--resume はどちらを覚えればいいですか?

まず --continue-c)だけ覚えれば日常の8割はカバーできます。「さっきの続きをすぐ開く」が最頻出だからです。複数の会話を行き来し始めたら --resume を足す、という順番が無理がありません。

会話中に別のセッションへ移りたいときは?

起動中なら /resume を使います。ターミナルを抜けて入り直さなくても、保存済みの別会話へ切り替えられます。CLIの --resume と目的は同じで、入口が「会話の中か外か」だけの違いです。

CIから前回の文脈を引き継いで実行できますか?

できます。claude --continue -p "..."claude --resume "名前" -p "..." のように、再開フラグと -p(ヘッドレス)を組み合わせます。夜間バッチで同じセッションを継続させる、といった自動化に向いています。

過去のセッションはどれくらい残りますか?

既定では30日です。設定の cleanupPeriodDays で変更できます。長期プロジェクトで頻繁に過去へ戻るなら、ここを延ばしておくと安心です。

まとめ:再開フラグは「文脈を作り直さない」ための地味な必須技

セッション再開は派手な機能ではありません。けれど「昨日の続き」をゼロから組み立て直す手間が消えるだけで、毎日の立ち上がりが目に見えて軽くなります。最新へ直行する --continue、過去から選ぶ --resume、会話中に乗り換える /resume——この3つの入口さえ押さえれば、文脈の再構築コストはほぼ払わずに済みます。

今日からできる3アクション:

  • いま作業中のディレクトリで claude --continue を叩き、前回の会話が復元される感覚を確かめる。
  • 複数の会話を持っているなら claude --resume でピッカーを開き、過去のどれにでも戻れることを体感する。
  • cleanupPeriodDays の設定を確認し、自分のプロジェクトに合った保持期間に調整する。

次回予告:再開した会話が長くなってきたときに効く「/compact による文脈の圧縮」を、コスト管理とあわせて扱う予定です。

Claude Code をチームに本格導入し、セッション運用や自動化を業務に定着させたい場合は、Uravation の Claude Code 個別指導・導入支援も活用できます。現場のコードと業務に合わせた実装伴走を行っています。

著者プロフィール

佐藤傑(さとう・すぐる)。株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援を手がける。著書『AIエージェント仕事術』(SBクリエイティブ)。SoftBank IT連載を執筆。

出典

Next Step

この事例を、自社の業務に置き換える。

対象業務、利用データ、評価基準、社内展開の順番まで整理すると、Claude Code導入の失敗を減らせます。

導入を相談する