Claude Codeのhistory(会話履歴)とは?
Claude Codeには、過去のセッションをすべて記録・再利用できる仕組みが備わっています。前回の記事ではセッションの基本的な開始・終了を扱いましたが、今回はその裏側にある履歴管理の全体像を深掘りしていきます。
室谷Claude Codeのhistory機能、これ実は地味に奥が深いんですよね。MYUUUのチームで使い込んでいくと「あのセッションどこ行った?」ってなることが多くて・・・
テキトー教師.AI(ドットエーアイ)のコミュニティのメンバーさんでも同じ声が多いですね。「昨日やってた作業を続けたいのに、どうやって再開するの?」って。
最初はみんな毎回ゼロから始めちゃってるんですよ。
最初はみんな毎回ゼロから始めちゃってるんですよ。
室谷それ、めちゃくちゃもったいないですよね。Claude Codeってセッション間でコンテキストが切れるのが最大の弱点と言われてるんですが、historyの使い方を覚えるとかなりカバーできるんです。
テキトー教師整理すると、Claude Codeの履歴管理には3つのレイヤーがあります。「コマンド入力の履歴(history.jsonl)」「セッションの会話トランスクリプト」「セッションのインデックス(sessions-index.json)」の3層構造ですね。
室谷この構造を理解しておくと、後で詳しく話す「どこに何が保存されているか」がわかりやすくなりますね。それぞれ役割が違うので。
テキトー教師そうなんですよ。「履歴を見たい」といっても、コマンドの入力履歴を見たいのか、会話の内容を再開したいのかで、使うコマンドが全然違います。
この違いをわかってない人が多くて、講座でも最初にここを整理しています。
この違いをわかってない人が多くて、講座でも最初にここを整理しています。
Claude Codeの会話履歴はどこに保存されている?
室谷まず「Claude Codeのhistory file、どこに保存されてるの?」という基本から押さえましょう。これ、意外と知られていないんですよね。
テキトー教師~/.claude/ディレクトリ配下に全部入っています。構造を説明しますね。| ファイル/ディレクトリ | 内容 |
|---|---|
~/.claude/history.jsonl | グローバルな入力履歴(全プロジェクト共通) |
~/.claude/projects/ | プロジェクト別のセッションデータ |
~/.claude/projects/{project-path}/ | 各プロジェクトのセッションファイル群 |
~/.claude/projects/{project-path}/{session-id}.jsonl | セッションの全会話トランスクリプト |
~/.claude/projects/{project-path}/sessions-index.json | セッションのメタデータ(要約・件数・ブランチ等) |
![]() |
室谷history.jsonlはグローバルな入力ログで、どのプロジェクトで何を入力したかを時系列で記録しているものです。MYUUUのエンジニアはこれが1,000件超えてる人が普通にいますね(笑)
テキトー教師sessions-index.jsonの方が個人的には便利だと思っていて、セッションの自動生成サマリー、メッセージ数、Gitブランチ名、作成日時・更新日時が入っています。--resumeでピッカーを開いたときに表示されているのがこの情報ですね。
室谷{session-id}.jsonlが実際の会話の全記録で、これを読み込み直すと「あのときClaude Codeと詰めた実装の詳細」が全部復元されるわけです。コンテキストを丸ごと引き継げる。
テキトー教師project-pathはスラッシュをダッシュに変換した形式で保存されているので、例えば
/Users/you/Code/my-appプロジェクトだと-Users-you-Code-my-appというディレクトリ名になります。地味に最初知らなくて迷う人が多いポイントですね(笑)claude code historyを確認・参照する方法

室谷実際にどうやってhistoryを確認するか、コマンドを整理していきましょう。ざっくり言うと「
--resumeか-cかCtrl+Rか」の3択です。
テキトー教師目的別に使い分けるのが大事ですね。「直前のセッションを続けたい」「特定のセッションを探したい」「過去の入力を使い回したい」で全然違うコマンドになります。
室谷まず一番使うのが
claude -c(またはclaude --continue)です。これは現在のディレクトリで最後に使ったセッションをそのまま再開するコマンドです。# 直前のセッションを再開(一番よく使う)
claude -c
claude --continue
# 特定のセッションを再開(IDまたは名前で指定)
claude -r "auth-refactor"
claude --resume auth-refactor
# セッションIDで直接指定
claude --resume abc123def456
# ピッカーを開いて一覧から選ぶ
claude --resume
claude -r
テキトー教師claude -cは「今日のランチ前にやってた作業を午後から続ける」みたいなときの必須コマンドですね。受講生さんに最初に教えるのがこれです。
室谷--resumeのピッカーがまた良くなっていて、セッションの自動サマリー、メッセージ件数、Gitブランチ名、タイムスタンプが全部表示されます。Aキーで「このディレクトリ」と「全プロジェクト」を切り替えられるのも便利で。
テキトー教師Bキーで現在のGitブランチのセッションだけに絞り込めるのも知っておくといいですね。feature/login-fixブランチで作業していたセッションだけをフィルタリングして表示できます。ブランチとセッションが紐づいてるのが地味に便利で。
室谷セッション内から再開したい場合は
/resumeコマンドが使えます。一度別の作業をしていて「あ、さっきのやつに戻りたい」ってなったとき、Claude Codeを終了せずにその場でピッカーが開けるんです。
テキトー教師これ、追加されてから作業の切り替え効率が全然変わったと思いますよ。コンテキストを捨てないまま別のセッションに移れるというか・・・
室谷「セッションのfork」という機能もあって、
--fork-sessionフラグを使うと、既存セッションから新しいIDで分岐できます。「この実装の方針を2パターン試したい」みたいなときに使うと便利ですね。# セッションをフォーク(新しいIDで分岐)
claude --resume abc123 --fork-session
テキトー教師これは試験的なアプローチの探索に向いてますね。元のセッションを汚さずに別の方向を試せる。
Gitのブランチみたいな概念をセッションに持ち込んでる感じです。
Gitのブランチみたいな概念をセッションに持ち込んでる感じです。
claude code history viewerの使い方
室谷「claude code history viewer」というキーワードで検索してくる人が一定数いるんですが、これは視覚的にhistoryを参照したいという需要ですよね。
テキトー教師ターミナルのコマンドだけじゃなくて、GUIで会話一覧をブラウジングしたいという人向けですね。実は選択肢がいくつかあって、まずVS Code拡張機能の「Claude Code and Codex Assist」(作者: agsoft)が有名です。
室谷VS Codeのサイドバーに会話履歴のビューアーが追加されて、セッション一覧・差分・検索・ワンクリック再開ができるやつですね。VS Codeで作業してる人には便利そうです。
テキトー教師Claude Code Web(ブラウザ版)でも過去のセッション履歴を確認できます。Claude.aiにアクセスすれば、ブラウザ上でセッション管理ができるので。
室谷ターミナル派で、GUIは要らないけど一覧性は欲しいという場合は、カスタムの
/historyコマンドを作る方法もあります。~/.claude/commands/ディレクトリに設定ファイルを置くと、任意のClaude Codeセッション内で呼び出せるスキルになる仕組みを使うんです。
テキトー教師これ、
講座でも紹介しているんですが、これを入れるだけでだいぶ使いやすくなるんですよ。
~/.claude/history.jsonlを直接読んでくれる自作コマンドですね。グローバルな入力履歴を「いつ」「どのプロジェクトで」「何を聞いたか」という形で一覧表示してくれます。講座でも紹介しているんですが、これを入れるだけでだいぶ使いやすくなるんですよ。
室谷セッションIDがわかれば
claude --resume <session-id>でそのまま再開できるので、「あのコードの実装、どうやったっけ?」を探せる仕組みになるわけです。claude code historyのclear・削除方法
室谷次に「clear」の話をしましょう。Claude Codeのhistory clearは2パターンあって、意味が全然違います。
これ混乱しやすいんですよね・・・
これ混乱しやすいんですよね・・・
テキトー教師整理しますね。「現在のセッションのコンテキストをリセットする
/clear」と「会話トランスクリプトファイル自体を削除するrm」はまったく別のことです。
室谷/clearコマンドはセッションを終了させるものではなくて、「Claude Codeが今この会話で覚えていること」をリセットするだけです。ファイルは残る。これ、頻繁に使うコマンドで・・・
テキトー教師タスクの切り替えのたびに使うのがおすすめですね。「認証機能の作業が終わった、次はパフォーマンス改善に移る」ってときに
受講生さんに「コンテキストはスパゲッティになる」って言ってるんですが・・・
/clearを入れると、前のコンテキストをClaude Codeが引きずらなくなります。受講生さんに「コンテキストはスパゲッティになる」って言ってるんですが・・・
室谷わかります(笑)。無限に文脈を積み上げると、古い情報が邪魔をし始めるんですよね。
テキトー教師実際のclear・削除の操作をまとめるとこうなります。
# セッション内コマンド
/clear # 現在の会話コンテキストをリセット(ファイルは残る)
/compact # 会話を要約して圧縮(コンテキストを節約しつつ記憶を保持)
# ファイルレベルの削除(ターミナルで実行)
# 特定セッションの削除
rm ~/.claude/projects/{project-path}/{session-id}.jsonl
# 全入力履歴の削除
rm ~/.claude/history.jsonl
# 全セッションデータの削除(核オプション)
rm -rf ~/.claude/projects/*/
室谷「全削除は深夜の作業中にやるな」という鉄則がありますね(笑)。Claude Codeは再起動すれば空のファイルを作り直してくれるので機能は壊れませんが、全部消えます。
テキトー教師/compactは「会話が長くなってきたけど、脈絡はある程度保ちたい」というときに使います。フォーカスを指定することもできて、/compact focus on the auth changesのように書くと、要約時に認証まわりの変更だけを残しつつ圧縮してくれます。セッションに名前をつけて管理する(/rename・--name)
室谷historyを効率的に使うための重要テクニックとして、セッションへの命名があります。これ、やってない人が圧倒的に多いんですよね。
テキトー教師名前がないセッションって、後から見返したときに「何をやってたセッションか」がわからないんですよ。自動生成のサマリーがあるとはいえ、タスク名がついてた方が圧倒的に見つけやすい。
室谷セッション開始時に名前をつけるなら
--nameフラグ(または-n)を使います。# 起動時に名前をつける
claude -n "auth-refactor"
claude --name "payment-webhook-debug"
# セッション中に名前を変更
/rename payment-flow-fix
テキトー教師/renameはセッション途中で「あ、これは認証ではなくてセッション管理の問題だった」と気づいたときに名前を修正できるのがいいですね。あとはターミナルのタイトルバーにも反映されるので、複数のターミナルウィンドウを使ってる人には特に便利です。
室谷MYUUUでは「{機能名}-{日付}」の命名規則で統一するようにしています。
これで後から
auth-0406とかpayment-0405みたいな感じで。これで後から
claude --resumeのピッカーを見たときにすぐ見つけられる。
テキトー教師命名のコツとして、タスクの「ゴール」を書くのがおすすめです。「ログインページ」じゃなくて「ログインページ-JWT認証修正」みたいに。
後から見て何が解決できたかがわかるので。
後から見て何が解決できたかがわかるので。
会話を保存・エクスポートする方法
室谷「会話の内容をファイルに保存したい」「チームメンバーに共有したい」という場面で使うのが
/exportコマンドです。
テキトー教師/exportはセッションの全会話をMarkdownファイルに書き出してくれます。ファイル名を指定するか、省略するとクリップボードにコピーされます。# Markdownファイルに書き出し
/export my-session.md
# クリップボードにコピー(ファイル名省略)
/export
室谷大きなリファクタリングの前にエクスポートしておくと、「なぜこの設計にしたか」の経緯が残るんですよね。コードの変更履歴はGitで追えますが、設計の意思決定プロセスはClaude Codeのセッション内にしかない場合が多いので・・・
テキトー教師PRレビューのときに「このPRで何をやったか」のコンテキストをチームに共有したい場合にも使えますね。Discordに貼るとか、Notionにまとめるとか。
室谷セッションを別のマシンに移したいときも、エクスポートが使えます。厳密にはセッションの「引き継ぎ文書」として、新しいマシンで同じプロジェクトのClaude Codeセッションを始めるときに読み込ませる形になります。
テキトー教師~/.claude/projects/ディレクトリを丸ごとバックアップする方法もありますね。TimeMachineとかrsyncでバックアップしておけば、環境を移行したときに全セッションを引き継げます。ただ容量が結構大きくなるので、定期的にいらないものを削除する管理が必要ですが。
セッション内でのコマンド履歴検索(Ctrl+R)
室谷次は入力の履歴検索の話をしましょう。Claude Codeではbashのリバースサーチと同じ
Ctrl+Rが使えます。
テキトー教師これ、みんな意外と知らないんですよね。「さっきのあのプロンプト、もう一回入れたいけど長くて打ちたくない」という場面で使えます。
室谷Ctrl+Rを押して検索キーワードを入力すると、過去に入力したコマンドの中でマッチするものを表示してくれます。Ctrl+Rを繰り返すと古い方向に遡れる。一致したらTabかEscで決定、Enterで即実行です。
テキトー教師「コマンド履歴」とは言いますが、Claude CodeではshellコマンドだけでなくClaude Codeへのプロンプト入力も履歴に入ります。なので「あのデバッグプロンプトをもう一度」みたいな使い方ができるんです。
室谷/history系の検索はプロジェクト横断でグローバルに検索できますが、Ctrl+Rは現在のセッション内の履歴(と前回セッション分)が対象です。目的に応じて使い分けですね。auto-compactionとコンテキスト管理
室谷セッションの長期利用で必ず直面するのがコンテキスト上限の問題です。Claude Codeにはauto-compactionという自動圧縮の仕組みがあって・・・
テキトー教師これ、コミュニティのメンバーさんがよく驚くポイントですね。会話が長くなったとき、「突然Claude Codeが遅くなった」「何か処理してる」という感覚があったら、それがauto-compactionです。
室谷仕組みとしては、コンテキストウィンドウの上限に近づいたときに3層のパイプライン(MicroCompact→AutoCompact→Full Compact)が動いて、古い会話を要約してコンテキストを解放するものです。作業は継続できるので、突然中断されるわけじゃないんですが、処理に少し時間がかかります。
テキトー教師このツイートでも触れられているんですが、「セッション間のコンテキスト維持」は2026年現在でもClaude Codeの最大の課題の一つです。auto-compactionはセッション内でコンテキストを維持する仕組みで、セッションをまたいだコンテキスト維持とは別の話です。
室谷セッションをまたいだコンテキスト維持の実践的な解決策として、以下の3つが有効です。
- CLAUDE.mdに「永続的に覚えておいてほしいこと」を書く(セッションをまたいで読み込まれる)
- セッション終了前に重要な決定事項や実装の方針をファイルとして書き出す
--resumeや--continueで過去のセッションを再開する
テキトー教師CLAUDE.mdは本当に強力なんですよ。auto-compactionで古いメッセージが要約されても、CLAUDE.mdに書いてあることは毎回読み込まれるので消えない。
「このプロジェクトの命名規則」「エラーハンドリングのルール」など、セッションをまたいで守ってほしいことはCLAUDE.mdに移してしまうのがおすすめです。
「このプロジェクトの命名規則」「エラーハンドリングのルール」など、セッションをまたいで守ってほしいことはCLAUDE.mdに移してしまうのがおすすめです。
室谷--resumeでセッションを再開しても、コンテキストの中身は「最後にどこまで話したか」の状態ではなく、auto-compactionが入った場合は要約された状態になっていることもあります。だから大事な情報はファイルに書き出しておくのが安心なんですよね・・・セッション間でコンテキストを引き継ぐ実践テクニック
室谷セッションのコンテキスト管理、もう少し実践的に掘り下げましょう。LlamaIndex創業者のJerry Liu氏も「セッション間のコンテキスト維持が最大の課題」と言っているくらいで・・・
テキトー教師教える立場から言うと、これを最初に解決できた人とできなかった人で、Claude Codeの体験が全然違いますね。「Claude Code使ってみたけど毎回ゼロから始まるのが面倒」という人は、ほぼここで躓いてます。
室谷実践的な方法として、セッション終了前に「context handoff」用のファイルを生成する習慣が効きます。
# セッション終了前にこのプロンプトを実行
# "今日の作業サマリーと次のセッションで続ける内容を ./session-handoff.md に書いてください"
テキトー教師このhandoffファイルをGitにコミットしておくと、別のマシンで作業を再開するときも「git pull → claude -c」で引き継げます。チーム開発だと特に効果的ですね。
室谷あとはObsidianとの組み合わせも面白くて、出力ファイルをObsidianのVaultに保存しておくと、ローカルのMarkdownとして整理・参照できます。Claude Code→ファイル出力→Obsidianで閲覧・整理、という流れですね。
テキトー教師実務的には「会話の中身を保存する」より「判断の根拠だけを保存する」方が使いやすいと思っています。Claude Codeとの全会話をまるごと残すと膨大になりますが、「今日の実装でなぜAアーキテクチャを選んだか」だけを記録しておけば、次のセッションでその選択を前提に話を進められる。
セッション名とIDの管理・検索
室谷セッションIDの話もしましょう。UUIDみたいな長い文字列なんですが、これをどう扱うかで検索のしやすさが変わります。
テキトー教師-nで名前をつけておけばclaude --resume "auth-refactor"と名前で再開できるので、IDを覚える必要はないんですよね。でも複数のプロジェクトにまたがって作業してると、名前が被ることがあって・・・
室谷その場合はピッカーで選べばいいですが、ピッカーに出てくる情報が「サマリー + 日時 + ブランチ」なので、セッション数が多いと探しにくくなる。だから命名を工夫するか、定期的に不要なセッションを削除するのが現実的ですね。
テキトー教師sessions-index.jsonを直接確認する方法もあります。プロジェクトディレクトリの中にあるJSONファイルなので、jqコマンドで整形して見ると全セッションの一覧が確認できます。# セッション一覧をJSONで確認
cat ~/.claude/projects/{project-path}/sessions-index.json | python3 -m json.tool
# jqが入っている場合
cat ~/.claude/projects/{project-path}/sessions-index.json | jq ".sessions[] | {id, summary, created_at}"
室谷これで「直近1週間のセッション一覧」を全部確認して、いらないものをまとめて削除するみたいなメンテナンスができますね。
claude code release history(バージョン・リリース履歴)
室谷「claude code release history」というKWも入ってるんですが、こちらはClaude Codeの機能追加・バージョンアップの履歴を知りたいという需要ですね。会話の履歴とは別の話です。
テキトー教師バージョンを確認するなら
claude --versionかclaude -vで現在のバージョンが表示されます。リリース履歴の詳細は公式のが一番正確ですね。
室谷Changelogを見ると、session management周りの機能改善が結構頻繁に入ってますよね。
history関連の機能は割と進化が早い分野です。
/resumeのUI改善、--fork-sessionの追加、--from-prフラグなど。history関連の機能は割と進化が早い分野です。
テキトー教師リリース状況を追うのに便利なのが
claude updateコマンドで、最新版にアップデートしながらChangelogのURLを表示してくれます。.AIコミュニティでも新機能が出るたびに盛り上がっているんですが・・・
室谷「claude code 歴史」というKWも調べてくる人がいるんですが、これはClaude Codeがいつ登場したかという製品の歴史を知りたいという人ですね。Claude Codeは2025年に一般公開されたAnthropicのAIコーディングエージェントで、以降急速に機能が拡充してきています。
テキトー教師歴史という意味では、登場当初は主にCLIツールとしての利用が中心でしたが、今ではVS Code拡張・デスクトップアプリ・ブラウザ版と多様な使い方ができるようになりましたね。session管理やhistory機能もどんどん充実してきています。
よくある質問(FAQ)
Q. Claude Codeの会話履歴はいつまで保存される?
室谷明示的に削除しない限り永続的に保存されます。
ディスク容量の問題が出てきたら手動で古いものを削除する必要がありますね。
~/.claude/ディレクトリがあれば半永久的に残ります。ディスク容量の問題が出てきたら手動で古いものを削除する必要がありますね。
テキトー教師自動での有効期限はないので、管理が必要です。ただ
セッションのトランスクリプトの方が大きくなりやすいので、長大なセッションが溜まってきたら整理しましょう。
history.jsonlはテキストベースなので容量は意外と小さく、1,000件超えても数MBレベルです。セッションのトランスクリプトの方が大きくなりやすいので、長大なセッションが溜まってきたら整理しましょう。
Q. claude -cで再開できない場合は?
室谷claude -cは「現在のディレクトリで最後のセッション」を再開します。別のディレクトリに移動していたり、そのプロジェクトで一度もセッションを開いていない場合は機能しません。その場合は
claude -rのピッカーから全プロジェクトの一覧を見て選ぶのが確実です。
テキトー教師もしくは
Aキーで全プロジェクト表示に切り替えてから検索するか、セッションIDがわかればclaude --resume <ID>で直接指定できます。Q. 別のマシンでセッション履歴を引き継ぐには?
室谷~/.claude/ディレクトリを丸ごと転送する方法が一番シンプルですね。rsyncやクラウドストレージで同期する形です。
テキトー教師Gitで管理する場合は
プロジェクトの
.gitignoreに~/.claude/projects/が入っていないか確認が必要です。デフォルトでは入っていないので意図せずGitに追跡されてしまうことも。プロジェクトの
.claude/ディレクトリとホームの~/.claude/は別物なので注意してください。Q. セッション履歴からプライバシー情報を削除したい
室谷特定のセッションファイルを削除するのが確実です。
~/.claude/projects/{project-path}/{session-id}.jsonlを削除すれば、そのセッションの全会話が消えます。
テキトー教師history.jsonlは入力テキストのログで、APIキーなどの機密情報をプロンプトに含めてしまった場合はそちらも削除が必要ですね。テキストエディタで開いて該当行を削除するか、ファイルごと削除してClaude Codeを再起動すれば空のファイルで再始動します。Q. VSCode上でClaude Codeのhistoryを見るには?
テキトー教師VS Code拡張機能「Claude Code and Codex Assist」(agsoft)が便利です。サイドバーからセッション一覧を閲覧・再開できます。
VS Codeのマーケットプレイスで「claude code history」と検索すると見つかります。
VS Codeのマーケットプレイスで「claude code history」と検索すると見つかります。
室谷.AI公式の拡張機能ではないので、あくまでサードパーティ製ですが、コミュニティでも評判がいいツールです。Claude Code本体の機能でも
claude --ideフラグでVS Codeと連携できるので、そちらも合わせて試すといいですね。まとめ:Claude Code historyの使い方
室谷今回はClaude Codeのhistory機能を全部解説しました。重要なポイントをおさらいすると・・・
テキトー教師「会話履歴の参照・再開」と「コマンド入力の履歴」は別物という認識が最初の大事なポイントですね。
室谷整理するとこうなります。
| 目的 | コマンド |
|---|---|
| 直前のセッションを続ける | claude -c または claude --continue |
| セッション一覧から選んで再開 | claude -r または claude --resume |
| 名前でセッションを再開 | claude --resume "セッション名" |
| セッションIDで直接再開 | claude --resume abc123 |
| セッション内から別セッションへ | /resume |
| セッションに名前をつける | claude -n "名前" |
| セッション内で名前変更 | /rename 新しい名前 |
| 会話をファイルに保存 | /export ファイル名.md |
| 現在のコンテキストをリセット | /clear |
| コンテキストを圧縮・節約 | /compact |
| 過去の入力を検索 | Ctrl+R |
| セッションをフォーク | claude --resume ID --fork-session |
テキトー教師個人的に一番おすすめのワークフローは「タスク単位でセッションを作って命名、終わったら
/exportでサマリーを残す、次のセッションでそのファイルを参照する」ですね。
室谷長期プロジェクトでClaude Codeを使うなら、「CLAUDE.mdに永続的ルールを書く + セッション命名 + 要所でエクスポート」の3つを習慣にするのがマジで効きます。MYUUUのチームでも標準化してる方法です。
テキトー教師historyの使い方をマスターすると、「毎回ゼロから説明し直す」ストレスがなくなって、Claude Codeとの作業がずっと連続したものになりますよ。Claude Codeは「記憶がないAI」ではなく、「履歴を活用して記憶させるAI」という使い方が正解なので。
室谷次回はClaude Codeのauto memoryとCLAUDE.mdの組み合わせで、セッションをまたいだ記憶をどう設計するかを深掘りしていきます。

