Claude Codeの会話履歴は30日で消える ― 保存期間を延ばす設定
「先月、あの用事の進め方をClaude Codeと相談したはず」。そう思って過去の会話を探したのに、一覧に出てこない。私はこの状況に当たりました。調べてみると、原因は2つありました。一覧に出るのは今開いているフォルダの会話だけだったことと、古い会話が自動で削除されていたことです。
Claude Codeは、設定を変えない限り、一定の日数を過ぎた会話の記録を消します。この記事では、公式ドキュメントで確かめた既定値、保存期間を延ばす設定、増える容量の目安、会話の開き直し方をまとめます。
会話の記録は30日で消える
公式ドキュメントでは、会話(セッション)は「プロジェクトのフォルダに結びついた、保存された会話」と説明されています。作業中は継続的にローカルへ保存され、終了したあとや /clear をしたあとでも戻れます。
ただし、この記録を何日残すかを決める設定 cleanupPeriodDays の既定値は 30 です。公式は、記録の削除を「最後に使った日」で判断する、と説明しています。つまり、作ってから30日ではなく、最後に触ってから30日です。1か月使わなかった会話は消える、と覚えておくと分かりやすいです。
しかも、この削除は静かに行われます。公式の説明では、削除はセッションを始めたあとに裏で実行され、メッセージを出さずに記録を消します。消えた会話は /resume の一覧にも出なくなります。気づいたときには無い、ということになりやすいのはこのためです。
消えるのは会話の本文だけではありません。公式の一覧では、サブエージェントの記録、大きな出力を別ファイルに逃がしたもの、編集前のファイルのスナップショットなども、同じ期間で掃除される対象に入っています。
どこに保存されているか
公式によると、既定では次の場所にJSONL形式で保存されます。
~/.claude/projects/<project>/<session-id>.jsonl
<project> は、作業フォルダのパスの英数字以外を - に置き換えた名前です。Windowsでは ~ はユーザーのフォルダ($env:USERPROFILE)です。つまり、フォルダごとに別々の置き場所に保存されます。
なお、このファイルの中身の形式はClaude Codeの内部用で、バージョンによって変わると公式にあります。直接読むスクリプトを組むより、/export で書き出すほうが安全です。
保存期間を延ばす設定
保存期間は settings.json の cleanupPeriodDays で変えられます。公式の設定の一覧では、型は日数の数値、既定は30、最小は1です。設定ファイルは次の場所に置けます。
| 呼び方 | 場所 | 効く範囲 |
|---|---|---|
| User | ~/.claude/settings.json | 自分の全プロジェクト |
| Project | .claude/settings.json | そのプロジェクト(共有) |
| Local | .claude/settings.local.json | そのプロジェクト(自分だけ) |
cleanupPeriodDays は、公式の範囲の表で「どのファイルでも書ける」とされています。ただ、保存期間はプロジェクトごとではなく自分の環境全体で決めたいことが多いので、私はユーザー全体の設定に書きました。ファイルが無ければ、次の内容で作ります。
{
"cleanupPeriodDays": 365
}
すでに settings.json に別の設定が書かれている場合は、ブロックごと貼り足すとJSONの形が壊れます。外側の { } の中に、カンマで区切って1項目として足してください。
{
"(すでにある設定)": "…",
"cleanupPeriodDays": 365
}
設定ファイルは起動時に読み直される、と公式にあるので、保存したあとに新しく起動した会話から有効になります。
会話が消えるまでの流れ(既定のまま)
- 1. 会話する~/.claude/projects/ に自動で保存される
- 2. しばらく使わない最後に使った日から数えて30日
- 3. 掃除される会話の記録が削除され、一覧に出なくなる
- 4. 対策cleanupPeriodDays を増やしておく
注意が要る値: 0 は使えない
「0にすれば無期限に残るのでは」と考えがちですが、公式の説明では、最小値は1で、0 を設定すると検証エラーになります。さらに公式は、設定にエラーがあるなどで保存期間を安全に決められないときは、Claude Codeが掃除そのものを一時停止する、と説明しています。私の環境でも、0は設定エラーとして扱われました。
長く残したいときは、0 ではなく大きな日数を書きます。公式の説明でも、長く残すなら 3650 のような大きな値を選ぶよう案内されています。私は1年分として365にしました。
延ばすと増えるもの: ディスク容量
保存期間を延ばせば、その分だけ記録が溜まります。公式の一覧どおり、会話の本文のほかに大きなツール出力やスナップショットも含まれます。
私の環境では、設定を変える前の ~/.claude/projects がおよそ825MBでした。これが30日分です。単純に12倍すると1年分で約10GBになる計算です。持ち歩くノートPCで空き容量が少ないなら、365日にする前に、いまのフォルダの大きさを確かめておくと安心です。足りなくなったら、日数を下げます。
反対に、機密に当たる内容(パスワードを貼った、など)を会話に出した場合は、長く残すほどディスクに平文で残ります。公式も、ツールを通ったものは平文で記録されると注意しています。その場合は短めの日数にするか、公式の claude purge で消せます。
消える前の会話を開き直す方法
削除された会話は戻せませんが、残っている会話は、公式の方法で開き直せます。
| コマンド | 動作 |
|---|---|
claude --continue | いまのフォルダでいちばん新しい会話を開く |
claude --resume | 会話の一覧(ピッカー)を開く |
claude --resume <名前> | 名前をつけた会話を直接開く |
/resume | 会話の途中から別の会話に切り替える |
一覧に出るのは、既定では今いるフォルダの会話です。見つからないときは、一覧で Ctrl+A を押すと、このPCのすべてのプロジェクトの会話に広げられます。探しやすくするため、/rename で会話に名前をつけておくのもおすすめです。名前をつければ claude --resume <名前> で戻れます。
家の用事の自動化では、同じフォルダで何度も会話を始めることになります。決まりごとは会話に頼らず CLAUDE.mdに「家のルール」を書いておくと、毎回言わなくて済む のようにファイルへ書いておくと、会話が消えても困りません。定期実行の組み方は WindowsのタスクスケジューラでClaude Codeを毎日自動で動かす にまとめています。
まとめ
- Claude Codeの会話の記録は、既定では最後に使ってから30日で自動削除される
- 保存場所は
~/.claude/projects/<project>/<session-id>.jsonl。フォルダごとに分かれる ~/.claude/settings.jsonに"cleanupPeriodDays": 365のように書くと延ばせる。0は検証エラーなので使わない- 延ばすほど容量が増える。私の環境では30日分で約825MBだった
- 開き直しは
--continue、--resume、/resume。見つからないときは一覧でCtrl+A