Claude Code セッションの JSONL ファイルの場所を探すには?
ローカルセッションの既定の保存先は ~/.claude/projects/ です。CLAUDE_CONFIG_DIR を設定すると基準ディレクトリが変わります。保存の無効化や保持期間による削除があるため、すべての履歴が永久に残るとは限りません。クラウドやリモート環境では実行場所を確認してください。
まずディレクトリ命名規則を理解する
~/.claude/projects/ の各サブディレクトリは 1 つのプロジェクト(作業ディレクトリ)に対応します。ディレクトリ名はプロジェクトパスから変換されます:/、_ などの英数字以外の文字がすべてハイフン - に置き換えられるのです。例:
プロジェクトパス セッションディレクトリ
/Users/you/Documents/my_app → -Users-you-Documents-my-app
/home/you/projects/shop-api → -home-you-projects-shop-api
1 セッション = 1 ファイル:<sessionId>.jsonl(9a1b2c3d-… のような UUID)。
ケース 1:sessionId が分かる — find で一発
find ~/.claude/projects -name "<sessionId>.jsonl"
sessionId はどこで手に入る? 最も簡単なのは会話中にスラッシュコマンド /status を入力すること — 出力に現在の Session ID が含まれます。ほかに claude --resume のセッション一覧、エラーメッセージ、ビューアのサイドバーの「Session ID」欄でも確認できます。
ケース 2:sessionId が分からない — 内容で逆引き
会話の内容(当時の質問など)を覚えていれば、grep します:
# 全セッションからキーワードを検索し、一致したファイルを一覧
grep -l "ログイン画面の修正" ~/.claude/projects/*/*.jsonl
# 特定プロジェクトのディレクトリのみ検索
grep -l "ログイン画面の修正" ~/.claude/projects/-Users-you-Documents-my-app/*.jsonl
ケース 3:時刻で最近のセッションを探す
# 最近更新されたセッションファイル 10 件を一覧
ls -t ~/.claude/projects/*/*.jsonl | head -10
グラフィカルな方法:CCViewer に任せる
コマンドを打ちたくない? CCViewer なら ~/.claude/projects/ フォルダ全体を選択(またはドロップ)できます。すべての .jsonl を再帰的にスキャンし、プロジェクト別にグループ化、時刻でソートし、各セッションのタイトル・パス・時間範囲・メッセージ数・コストを表示 — ファイルの場所を知らなくてもクリックで開けます。
macOS のコツ:隠しフォルダを開く
- Finder で ⌘⇧G を押し、
~/.claude/projectsと入力して Enter; - ファイルダイアログでは ⌘⇧. で隠しフォルダを表示(
.始まりのディレクトリはデフォルトで非表示)。
セッションファイルはブラウザ内で解析・表示されます。公開サイトでは Microsoft Clarity を自動で読み込み、ページ操作を記録します。オフライン版では解析を読み込みません。
セッションファイルはブラウザ内で解析・表示されます。公開サイトでは Microsoft Clarity を自動で読み込み、ページ操作を記録します。オフライン版では解析を読み込みません。