
Claude Codeの会話履歴の保存場所と保持期間(cleanupPeriodDays)について調査してみた
こんにちは、つくぼし(tsukuboshi0755)です!
先日、過去のClaude Codeの会話履歴から掘り起こそうとしたところ、1ヶ月以上前の履歴が見当たらない事に気づきました。
調べてみると、Claude Codeの会話履歴はデフォルトで30日経過すると自動削除される仕様を初めて知りました。
そこで本記事では、Claude Codeの会話履歴がどこにどんな形式で保存されているのかと、保持期間を制御するcleanupPeriodDays設定について紹介します!
会話履歴の保存場所
Claude Codeの会話履歴は、以下のパスにセッション単位のJSONLファイルとして保存されています。
~/.claude/projects/<作業ディレクトリをエンコードした名前>/<セッションID>.jsonl
公式ドキュメントではprojects/<project>/<session>.jsonlという構成が示されています。
手元の環境で確認したところ、ディレクトリ名はClaude Codeを起動した作業ディレクトリの絶対パスをハイフン区切りへ変換した名前でした。
例えば/Users/username/myappで起動したセッションの履歴は、以下のようなディレクトリに保存されます。
~/.claude/projects/-Users-username-myapp/
├── 0a8f2f2b-xxxx-xxxx-xxxx-xxxxxxxxxxxx.jsonl
├── 10023f4b-xxxx-xxxx-xxxx-xxxxxxxxxxxx.jsonl
└── ...
会話履歴はプロジェクト(作業ディレクトリ)ごとに分かれて保存されるため、複数のリポジトリで作業している場合はディレクトリも複数できます。
JSONLファイルに記録される内容
公式ドキュメントによると、このJSONLファイルにはすべてのメッセージ・ツール呼び出し・ツール実行結果を含む完全な会話トランスクリプトが記録されます。
注意したいのは、トランスクリプトが暗号化されない平文で保存される点です。
ツールが.envファイルを読み取ったり、コマンド出力に認証情報が含まれたりした場合、その値もそのままトランスクリプトに書き込まれると公式ドキュメントに明記されています。
露出を減らす手段は、公式で以下が案内されています。
cleanupPeriodDaysを短くして保持期間を絞る- 環境変数
CLAUDE_CODE_SKIP_PROMPT_HISTORYでトランスクリプトの書き込み自体を無効化する
cleanupPeriodDaysとは
この会話履歴(セッションファイル)は、無期限に残るわけではありません。
cleanupPeriodDaysはこの保持期間を制御するsettings.jsonの設定キーで、Claude Codeの起動時に、指定した日数より古いセッションファイルが自動削除されます。
主な仕様は以下の通りです。
| 項目 | 内容 |
|---|---|
| 設定キー | cleanupPeriodDays |
| デフォルト値 | 30(日) |
| 指定できる値 | 1以上の整数(日数) |
| 設定スコープ | ユーザー設定(~/.claude/settings.json)・プロジェクト設定(.claude/settings.json)・ローカル設定(.claude/settings.local.json)のいずれでも指定可能 |
| 削除タイミング | Claude Codeの起動時 |
デフォルトは30のため、何も設定しなければ30日より古い会話履歴は起動時に自動削除されます。
私の環境でも、最古のセッションファイルはちょうど30日前のものでした!
$ ls -lt ~/.claude/projects/*/*.jsonl | tail -1
-rw------- 1 username staff 5315939 6月 5 00:13 /Users/username/.claude/projects/-Users-username-myapp/a24cd078-xxxx.jsonl
設定方法
保持期間は~/.claude/settings.jsonのcleanupPeriodDaysで変更でき、例えば90日に延長したい場合は以下のように設定します。
{
"cleanupPeriodDays": 90
}
過去の作業履歴をふりかえりやネタ出しに活用したい場合は、早めに延長しておくと安心ですね。
注意点
削除された履歴は復元できない
削除は起動時に実行されるため、後から保持期間を延長しても既に削除された履歴は復元できないので、履歴を活用したい方には削除される前の早めの設定変更をオススメします。
逆に履歴を残したくない場合
反対に、履歴の書き込み自体を止める方法もあります。
- 環境変数
CLAUDE_CODE_SKIP_PROMPT_HISTORYを設定する - 非インタラクティブモード(
-p)では--no-session-persistenceフラグを使用する
共有マシンなどでは、こちらを検討してください。
参考資料
最後に
今回は、Claude Codeの会話履歴の保存場所と、デフォルト30日で自動削除される保持期間の仕様について紹介しました。
会話履歴には過去の設計判断や調査の経緯が詰まっているため、消えてから気づくと結構ショックです。
ふりかえりやネタ出しに履歴を活用したい方は、ぜひcleanupPeriodDaysの設定を見直してみてください!
以上、つくぼし(tsukuboshi0755)でした!









