
Claude Codeの会話履歴の保存場所と保持期間について調査してみた
こんにちは、つくぼし(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でトランスクリプトの書き込み自体を無効化する
会話履歴はデフォルト30日で自動削除される
この会話履歴(セッションファイル)は、無期限に残るわけではありません。
公式ドキュメントによると、Claude Codeは起動時にcleanupPeriodDays設定より古いセッションファイルを自動削除します。
- デフォルト値:
30(日) - 最小値:
1 - 削除タイミング: Claude Codeのスタートアップ時
実際に私の環境でも、残っていた最古のセッションファイルはちょうど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)でした!







