6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeの会話、compactしたら全部消えてませんか? - cc-search-pluginで過去のコンテキストを自動復元

6
Last updated at Posted at 2026-03-09

はじめに

Claude Code を日常的に使っていると、避けて通れないのがコンテキストウィンドウの限界です。

会話が長くなると /compact で圧縮するか、Claude Code が自動的にコンパクションを実行します。コンパクション後、AI は会話の要約を保持しますが、細かいやり取りや具体的な指示は失われます。

さらに厄介なのはセッションをまたいだ記憶です。Claude Code には /resume で前回のセッションを引き継ぐ機能がありますが、完全に新しいセッションを開始した場合、前回の会話は参照できません。「昨日の続きをやって」と言っても、Claude は昨日何を話したか知りません。

以前、cc-search というWebビューアーを作って、過去の会話履歴をブラウザで横断検索できるようにしました。

今回は、その検索機能を Claude Code プラグイン として組み込み、会話の中から直接使えるようにしたものが cc-search-plugin です。

cc-search-plugin とは

cc-search-plugin は、Claude Code のプラグインシステムを使って 2 つの機能を提供します。

1. compact 後の自動コンテキスト注入

/compact を実行すると、プラグインの hook が自動的に発火し、直近のメッセージ原文をコンテキストに注入します。これにより、compact の要約では失われがちな具体的なやり取りの内容が補完されます。

2. 過去の会話の手動検索

history-recall スキルを使って、過去のセッションをキーワード検索したり、前回の会話を呼び出したりできます。「前回の会話を呼び出して」のように自然文で Claude に依頼すると自動的にスキルが発火します。ブラウザを開く必要はありません。

Claude Code のメモリ機能との関係

cc-search-plugin の位置づけを理解するには、まず Claude Code が公式に提供するメモリ機能を知る必要があります。公式ドキュメントによると、Claude Code には 2 つのメモリシステムがあり、どちらもセッション開始時に読み込まれます。

1. CLAUDE.md ファイル — ユーザーが書く永続的な指示

CLAUDE.md は、プロジェクトや個人のワークフローに対して Claude に 永続的な指示 を与えるマークダウンファイルです。Claude はすべてのセッションの開始時にこれを読みます。

配置場所によってスコープが異なります:

スコープ 場所 用途
プロジェクト指示 ./CLAUDE.md または ./.claude/CLAUDE.md プロジェクトのコーディング標準、アーキテクチャ、ワークフロー
ユーザー指示 ~/.claude/CLAUDE.md すべてのプロジェクト共通の個人的な好み
ローカル指示 ./CLAUDE.local.md git にチェックインしない個人的な設定
管理ポリシー /Library/Application Support/ClaudeCode/CLAUDE.md(macOS) 組織全体のポリシー

さらに .claude/rules/ ディレクトリを使えば、特定のファイルパスにスコープしたルールも定義できます。例えば src/api/**/*.ts にマッチするファイルを Claude が読み込んだときに適用されるルール、といった使い方が可能です。

/compact を実行しても CLAUDE.md は完全に生き残ります。compact 後、Claude はディスクから CLAUDE.md を再度読み込み、セッションに再注入します。つまり CLAUDE.md に書いた指示は compact で失われることはありません。

CLAUDE.md に書くべき内容の例:

# プロジェクト指示
- TypeScript を使用、strict モード必須
- テストは `npm test` で実行
- コミット前に `npm run lint` を通す
- API ハンドラーは `src/api/handlers/` に配置

2. 自動メモリ — Claude が自分で書くメモ

自動メモリは、Claude が作業中に 自分自身のためにメモを保存する 仕組みです。ビルドコマンド、デバッグの洞察、アーキテクチャノート、コードスタイルの好みなどを、Claude が将来の会話で役立つと判断した場合に自動的に記録します。

ストレージの場所:

~/.claude/projects/<project>/memory/
├── MEMORY.md          # インデックス(すべてのセッションに読み込まれる)
├── debugging.md       # デバッグパターンの詳細メモ
├── api-conventions.md # API 設計の決定
└── ...                # Claude が必要に応じて作成

MEMORY.md の最初の 200 行のみがセッション開始時に読み込まれます。200 行を超える内容はセッション開始時には読み込まれません。Claude は詳細なメモを別のトピックファイル(debugging.md 等)に移動し、必要な時にオンデマンドで読みます。

自動メモリに保存される内容の例:

  • 「このプロジェクトではビルドに pnpm build を使う」
  • 「認証周りのテストは Redis が必要」
  • 「ユーザーは 2 スペースインデントを好む」

3. 会話コンテキスト — セッション中の実データ

これは公式のメモリ機能ではありませんが、最も情報量が多いのが 会話コンテキスト です。セッション中にやり取りされる実際のメッセージ、コード変更、エラーメッセージ、設計議論のすべてが含まれます。

そして、これが 最も脆弱 です。

  • /compact を実行すると AI 要約に圧縮され、細かいやり取りは失われる
  • セッションを終了すると完全に消失する
  • CLAUDE.md にも自動メモリにも、具体的な会話内容は保持されない

3 つのメモリ機構の全体像

また、compact 実行時の動作フローは以下のようになります:

メモリ機構 誰が書くか 保持する内容 compact 後 セッション間
CLAUDE.md ユーザー プロジェクトのルール・指示 完全に生き残る 永続
自動メモリ Claude 学んだパターン・洞察 影響なし 永続(200行制限)
会話コンテキスト 会話中に蓄積 実際のやり取り全体 AI 要約に圧縮 消失
cc-search-plugin プラグインが自動 直近メッセージの原文 コンテキストに注入 検索で復元可能

cc-search-plugin が埋めるギャップ

CLAUDE.md は「何をすべきか」を定義します。自動メモリは「何を学んだか」を記録します。しかし 「何を話したか」 はどちらにも保持されません。

例えば:

  • 「昨日、認証機能のバグを直した時にどういう議論をしたか」
  • 「先週のリファクタリングで、なぜこのアプローチを選んだか」
  • 「3日前に試して失敗した実装方法は何だったか」

これらの情報は CLAUDE.md に書くような静的なルールではなく、自動メモリが記録するパターンでもありません。具体的な会話の流れ そのものです。

cc-search-plugin は、この消失する会話コンテキストに対して 2 つのアプローチで対処します:

  1. compact 後の自動注入: AI 要約に加えて、直近メッセージの原文をコンテキストに追加。要約で失われた細部を補います
  2. セッション間の検索: history-recall スキルで過去の会話をキーワード検索し、必要な文脈を復元します

参考: Claude Code のメモリ機能の詳細は 公式ドキュメント を参照してください。/memory コマンドで現在読み込まれているメモリファイルの確認や、自動メモリのオン・オフ切り替えができます。

デフォルト compact と cc-search-plugin の違い

/compact を実行した後、デフォルトの動作と cc-search-plugin がそれぞれ何を保持するかを比較します。

観点 デフォルト compact cc-search-plugin
情報源 AI が会話全体を推論・要約 JSONL ファイルから直近 N 件を機械的に抽出
カバー範囲 会話全体を要約 直近10件のメッセージ(設定可能)
内容の忠実度 要約(意図・判断理由を含むことが多い) 原文テキスト(500文字で切り詰め)
判断理由・文脈 要約に含まれる場合がある 保存されない(生のやり取りのみ)
情報量 多い(詳細なサマリー) 少ない(~50行のコンパクトな出力)
信頼性 AI の要約精度に依存 原文そのまま
過去セッション検索 不可 キーワード検索可能

デフォルト compact は「何をなぜやったか」の全体像を保持するのに優れています。一方、cc-search-plugin は「直近の実際のやり取り」を正確に保持します。

両者は補完関係にあります。 AI の要約で失われがちな具体的な指示やコードスニペットを、cc-search-plugin が原文で補います。

インストール方法

前提条件

  • Claude Code がインストール済みであること
  • Node.js 18 以上 がインストール済みであること

Claude Code のインストールがまだの場合は、公式ドキュメントを参照してください。

Step 1: マーケットプレースを追加する

Claude Code のセッション内で、以下のコマンドを入力します。

/plugin marketplace add nogataka/cc-search-plugin

このコマンドにより、GitHub リポジトリがマーケットプレース(プラグインのカタログ)として登録されます。

マーケットプレースとは?
Claude Code のプラグインは、npm のようなレジストリではなく、GitHub リポジトリ単位で管理されます。/plugin marketplace add でリポジトリを登録すると、そのリポジトリに含まれるプラグインが Discover タブに表示されるようになります。

Step 2: プラグインをインストールする

/plugin install cc-search-plugin@cc-search-marketplace

このコマンドにより、プラグインがインストールされ、hooks(自動コンテキスト注入)と skills(手動検索)が登録されます。

インストール後、Claude Code の再起動が必要な場合があります。hooks や skills がうまく動作しない場合は、セッションを一度終了して再起動してみてください。

Step 3: 動作確認

インストールが完了したら、動作を確認します。

自動コンテキスト注入の確認:

/compact

コンパクション後、プラグインが直近のメッセージ原文を Claude のコンテキストに注入します。CLI 上に直接表示されるわけではありませんが、Claude が直近の会話内容を把握している状態になります。

手動検索の確認:

「前回の会話を呼び出して」と Claude に伝えると、history-recall スキルが発動し、前回のセッション内容を表示します。

アンインストール

不要になった場合は以下のコマンドで削除できます。

/plugin uninstall cc-search-plugin

使い方

自動コンテキスト注入(何もしなくてOK)

インストール後は特に意識する必要はありません。/compact を実行するか、Claude Code が自動的にコンパクションを行うたびに、hook が発火して直近のメッセージがコンテキストに追加されます。動作の流れは前述の mermaid 図を参照してください。

前回の会話を呼び出す

新しいセッションを開始した後、前回の会話内容を知りたいときは:

「前回の会話を呼び出して」

Claude が history-recall スキルを使って、前回のセッション内容を取得・表示します。

過去の会話をキーワード検索する

特定のトピックについて過去に話した内容を探したいときは:

「認証機能について前に話したよね?」

Claude がキーワード検索を行い、該当するセッションと前後のコンテキストを返します。

プロジェクト一覧を確認する

どのプロジェクトの会話が保存されているか確認したいときは:

「どのプロジェクトの会話がある?」

データソース

すべてのデータは Claude Code のローカル JSONL ファイル(~/.claude/projects/)から直接読み取ります。

  • 外部サービスへの通信はありません
  • データベースのセットアップは不要です
  • 読み取り専用で、会話ファイルを変更することはありません

cc-search(Web ビューアー)との使い分け

ツール 用途 形態
cc-search(Webビューアー) 過去の会話をブラウザで閲覧・検索。ツール使用の詳細やAPIコストも確認できる npx @nogataka/cc-search で起動
cc-search-plugin(Claude Code プラグイン) Claude Code の会話内から直接、過去の会話を検索・コンテキスト注入 Claude Code にインストール

cc-search はブラウザで視覚的に会話を閲覧したいとき、cc-search-plugin は Claude Code のセッション内で文脈を維持したいときに使います。両方インストールしても競合しません。

まとめ

Claude Code の会話コンテキストは、compact やセッション終了で失われます。CLAUDE.md や自動メモリはルールとパターンを保持しますが、具体的な会話内容は保持しません。

cc-search-plugin は、この「会話コンテキストの消失」を緩和するプラグインです。

  • compact 後に直近メッセージの原文を自動注入
  • 過去の会話をキーワード検索
  • セッション間でコンテキストを引き継ぎ
/plugin marketplace add nogataka/cc-search-plugin
/plugin install cc-search-plugin@cc-search-marketplace

この 2 コマンドで使い始められます。


GitHub: https://github.com/nogataka/cc-search-plugin
cc-search(Webビューアー): https://github.com/nogataka/cc-search

Issue や PR も歓迎です。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?