MemoryLake
すべての記事に戻る
Pain Point2026年5月22日8 分で読了

Claude Codeはなぜコマンド履歴を忘れるのか?

あなたは昨日、美しいリファクタリングを行いました。今日は同じリポジトリでClaude Codeを起動し、続けるように頼みましたが、何をしたのか、何がうまくいったのか、なぜ最初の3つのアプローチを捨てたのか全く分かりません。シェルの履歴はターミナルにありますが、理由は消えてしまいました。

これは回帰ではありません。Claude Codeのセッションモデルの構築方法であり、記憶させるためのクリーンな方法があります。

短い答え

Claude Codeは、各呼び出しが一時的なセッションであり、1つのシェルプロセスに結びついているため、コマンド履歴を忘れます。以前のコマンド、出力、またはその背後にある理由を保存するための組み込みストアはありません。/resumeCLAUDE.mdは単一のリポジトリ内で役立ちますが、どちらもマシン、チーム、またはプロジェクトを超えて構造化されたコマンド履歴を持続させることはできません。修正方法は、Claude Codeに毎回起動時に読み取ることができる外部の記憶レイヤーを与えることです。

Claude Codeがコマンド履歴を忘れる理由

Claude Codeは、あなたのターミナル内で実行されるCLIエージェントです。このモデルの3つの設計選択が、あなたが経験する忘却を生み出します:

1. セッションはシェルプロセスに結びついています。 ディレクトリでclaudeを起動すると、会話はそのプロセスの記憶に存在します。ターミナルを閉じたり、電源が切れたり、新しいタブを開いたりすると、作業コンテキストは消えてしまいます。Anthropicは、最も最近のセッションを再開するための/resume--continueを文書化していますが、これらはあなたと共に移動しないローカルのトランスクリプトに依存しています。

2. 一級の「コマンド履歴」オブジェクトがありません。 Claude Codeは、あなたのメッセージとその応答の生のトランスクリプトを保存しますが、「発行されたコマンド、観察された出力、下された決定」の構造化されたログは保存しません。/resumeを使用しても、チャットテキストが戻ってくるだけで、どのbashコマンドが実行されたか、どのテストが合格したか、どのアプローチを拒否したかのクエリ可能な記録は得られません。

3. `CLAUDE.md`はリポジトリごとのガイダンスであり、記憶ではありません。 リポジトリのルートにあるCLAUDE.mdファイルは、Claude Codeが毎回起動時に読む静的な指示シートです。「pnpmを使用し、npmではない」といった指示には優れていますが、「昨日migrate:upを試みたが、postgres拡張で失敗したことを覚えておいてください」といった指示には無意味です。

その結果:午後6時にあなたのペアプログラマーだったモデルは、午前9時には礼儀正しい見知らぬ人になります。

Claude Codeがコマンド履歴を忘れると失うもの

新しいセッションごとに10〜20分を再発見に費やし、そのコストは実際のプロジェクト全体に累積します:

  • 繰り返される行き止まり。 あなたはすでにpnpm build --filter webが正しい呼び出しであることを証明しました。新しいセッションは、ルートからnpm run buildを提案し、午前2時に失敗したのと同じ方法で失敗します。
  • 失われた理由。 「私たちはVercelビルドキャッシュのためにenv-varパスを選びました」という理由は、シェルの履歴だけでは再構築できません。それがないと、エージェントは決定済みの決定を再訴訟します。
  • チームの引き継ぎが壊れる。 同じリポジトリをクローンするチームメイトはCLAUDE.mdを取得しますが、なぜ3つのマイグレーションがコメントアウトされているのかを説明するコマンド履歴は得られません。

修正方法は「/resumeを実行することを忘れないでください」ではなく、プロジェクトの記憶を単一のシェルセッションから切り離すことです。

Claude Codeの組み込みの回避策

Anthropicは、持続性に部分的に対処する3つのものを出荷しました。どれもプロジェクトの記憶ではありません。

`/resume`と`--continue`は、最後のセッションのトランスクリプトを再オープンすることを可能にします。同じマシン、同じシェル、同じ時間内で中断されたリファクタリングを再開するのに便利です。ラップトップを切り替えたり、チームメイトに引き継いだり、3週間前に何が起こったかを思い出したりする際には無意味です。トランスクリプトは急速に蓄積されるため、「私たちが認証を修正したセッション」を見つけるのは手動でスクロールする必要があります。

`CLAUDE.md`は、すべてのセッションにプロジェクトの慣習を読み込みます — コーディングスタイル、ビルドコマンド、注意点。「コミット前に常に型チェックを実行する」という指示には適していますが、コマンド履歴には不適切です。なぜなら、それは手動でキュレーションされ、静的だからです。昨日のbash履歴をそこに入れたい場合は、自分で書き込む必要があります。

ネイティブMCPサポートにより、Claude Codeはモデルコンテキストプロトコルサーバーに接続できます。これは、実際に通り抜けることができるドアです。Claude Codeのドキュメントは、公式ガイドのdocs.anthropic.com/en/docs/claude-codeでMCPのセットアップをカバーしています。MCPは、記憶レイヤーが接続する統合ポイントです。

Claude Codeの組み込みの記憶が不足している点

より深刻な問題は、コマンド履歴がセッション資産ではなくプロジェクト資産であることです。あなたはラップトップでClaude Codeを実行し、その後デスクトップで、次にCIボックスで実行します。あなたのチームメイトは新しいクローンから実行します。これらのシェルは状態を共有せず、CLAUDE.mdは自ら成長することができません。

Claude Codeはツールを超えても機能しません。プロジェクトの途中でCursor、Cline、または通常のbashシェルに切り替えると、持ち越したいコンテキストは消えてしまいます。プロジェクトの記憶はエディタの外に存在する必要があります。

MemoryLakeがClaude Codeのコマンド履歴忘却を修正する方法

MemoryLakeは、Claude Codeが起動時に読み取るクロスモデルの記憶レイヤーです。/resumeと手書きのCLAUDE.mdに依存するのではなく、プロジェクトに独自の記憶を与え、すべてのセッション — あなたのものでもチームメイトのものでも — が完全なコマンド履歴を読み込んで開始します。

  • 構造化されたコマンドと決定のログ。 実行されたすべてのコマンド、すべてのテスト結果、そして「なぜこの方法でやったのか」というメモは、プロジェクト内の記憶として保存されます。取得は、ターンごとに関連するスライスのみを表示するため、エージェントはすでに排除したものを再提案するのをやめます。
  • マシンとチームメイト間で同じ記憶。 新しいラップトップにサインインすると、プロジェクトの状態はすでにそこにあります。同じリポジトリに対してclaudeを実行しているチームメイトは、手動でCLAUDE.mdを更新する必要なく、同じ履歴を取得します。
  • 生のプロンプトの10,000倍の取得範囲。 MemoryLakeは、数十億のトークンからプロジェクトの記憶を読み取り、Claude Codeにこのターンで重要なものだけを提供します。再度貼り付けたトランスクリプトに対して支払うのをやめ、コンテキストウィンドウに当たるのをやめます。

MemoryLakeは、LoCoMoの長文コンテキストベンチマークで94.03%を記録し、2026年時点で発表された最高の結果であり、ミリ秒単位の取得とAES-256のエンドツーエンド暗号化を提供します。

MemoryLakeをClaude Codeに接続する3つのステップ

  1. プロジェクトを作成し、コンテキストを読み込む。 MemoryLakeにサインインし、プロジェクト管理を開き、「プロジェクトを作成」をクリックし、「Claude Code — モノレポリファクタリング」などの名前を付けます。既存のCLAUDE.md、ADRs、ランブック、以前のセッションのトランスクリプトをドキュメントドライブにドロップします。プロジェクトと共に移動するように、記憶タブを通じて定常ルールと最近のコマンド結果を追加します。
  2. MCPサーバーエンドポイントを生成する。 プロジェクト内のMCPサーバータブを開き、「MCPサーバーを追加」をクリックし、「Claude Code統合」などの名前を付けて「生成」をクリックします。MemoryLakeはAPIキーID、シークレット、およびエンドポイントURLを返します。Bearerトークンをすぐにコピーしてください — 一度だけ表示されます。
  3. ネイティブMCPを介してClaude Codeを接続する。 ターミナルでclaude mcp add memorylake <endpoint>をエンドポイントURLと共に実行するか、~/.claude.jsonを編集してBearerトークンを使用してMemoryLakeサーバーを追加します。Claude Codeを再起動します。すべての新しいセッションは、最初のプロンプトの前にプロジェクトからコマンド履歴、決定、慣習を読み込みます。

よくある質問

Claude Codeは以前のセッションを記憶していますか?

Claude Codeは最近のセッションのローカルトランスクリプトを保持しており、/resumeまたは--continueで再オープンできます。マシン、リポジトリ、またはチームメイト間で構造化されたクエリ可能な履歴を維持することはありません — それには外部の記憶レイヤーが必要です。

Claude Codeにコマンド履歴を記憶させるにはどうすればよいですか?

Claude CodeをMemoryLakeのような記憶レイヤーに接続します。claude mcp add memorylake <endpoint>を実行すると、すべての新しいセッションがプロジェクトのコマンドログ、決定、慣習を最初のプロンプトを入力する前に読み込みます。

なぜClaude Codeは私が実行したばかりのことを忘れ続けるのですか?

claudeの呼び出しは1つのシェルプロセスに結びついています。ターミナルを閉じると、作業状態が終了します。CLAUDE.mdは慣習を再読み込みしますが、新しいコマンドの結果で自動的に更新されることはありません。

CLAUDE.mdとMemoryLakeの違いは何ですか?

CLAUDE.mdはリポジトリごとに手動で編集する静的な指示ファイルです。MemoryLakeは、決定と結果を自動的にキャプチャし、プロジェクト間でスケールし、Cursor、Cline、Claude Desktop、そしてMCP対応ツールに持ち運ぶことができるライブで構造化された記憶ストアです。

私のClaude Codeプロジェクトの記憶をチームと共有できますか?

はい。MemoryLakeを使用すると、プロジェクトの記憶は単一のラップトップではなく、共有プロジェクトに存在します。チームメイトを招待すると、彼らはそのリポジトリでClaude Codeを開いた瞬間に同じコマンド履歴、決定、慣習を取得します。