はじめに
Claude Code を日常的に使っていると、こんな経験はないでしょうか。
- 「このプロジェクトのテストは
npm run test:e2eで実行するんだけど、毎回伝えないといけない」 - 「前のセッションでデバッグした内容を、また一から説明し直している」
- 「コーディング規約を毎回 CLAUDE.md に書くのは面倒だけど、Claude に覚えてほしい」
MEMORY.md は、こうした「セッション間の記憶喪失」を解決する Claude Code の永続メモリ機能です。Claude が会話の中で学んだことを自動的にファイルに記録し、次回以降のセッションで活用します。
この記事では、以下の内容を解説します。
- MEMORY.md の基本的な仕組みと保存場所
- CLAUDE.md との違いと使い分け
-
/memoryコマンドによる管理方法 - Auto Dream(記憶の自動整理)機能
- 効果的に活用するための実践 Tips
MEMORY.md とは
MEMORY.md は、Claude Code がプロジェクトごとに自動で作成・管理するメモリファイルです。セッション中に得た知見やユーザーの好みを記録し、次のセッション開始時に自動で読み込まれます。
保存場所
MEMORY.md はローカルマシンの以下のパスに保存されます。
~/.claude/projects/<project-hash>/memory/
├── MEMORY.md # メインのメモリファイル(インデックス)
├── debugging.md # トピック別ファイル(例: デバッグ知見)
├── api-conventions.md # トピック別ファイル(例: API の規約)
└── testing.md # トピック別ファイル(例: テスト戦略)
<project-hash> はプロジェクトのパスからハッシュ化された値です。同一 Git リポジトリ内のワークツリーやサブディレクトリはすべて同じメモリディレクトリを共有します。
何が記録されるか
Claude は会話の中で「今後のセッションでも役立ちそうな情報」を自動的に判断して記録します。例えば以下のような内容です。
# Project Memory
## ビルド・テスト
- テストは `npm run test:e2e` で実行(単体テストは `npm test`)
- ビルド前に必ず `npm run lint` を通す
## コーディング規約
- エラーハンドリングは Result 型を使う(例外は使わない)
- API レスポンスの型定義は `types/api/` に配置
## デバッグ履歴
- Redis 接続エラーは `REDIS_URL` の末尾スラッシュが原因だった
- CI が落ちる場合は Node.js バージョン(v20 必須)を確認
記録内容はあくまで Claude が自動で判断します。機密情報(API キーやパスワード)が記録されないよう注意しましょう。不要な記録は /memory コマンドで削除できます。
MEMORY.md の動作の仕組み
Auto Memory
Auto Memory は Claude Code v2.1.59 以降でデフォルト有効になった機能です。特別な設定なしで、Claude が会話中に重要と判断した情報を自動的に MEMORY.md へ書き込みます。
動作の流れは次のとおりです。
- セッション中に Claude がユーザーの修正やフィードバックを受ける
- 「これは今後も役立つ」と判断した情報を MEMORY.md に記録
- 次のセッション開始時に MEMORY.md を自動読み込み
- 読み込んだ情報をもとに、最初からプロジェクトの文脈を理解した状態で応答
セッション開始時のログに Recalled memory と表示されれば、メモリが正常に読み込まれています。書き込み時には Writing memory と表示されます。
読み込み制限
セッション開始時に読み込まれるのは MEMORY.md の先頭 200 行または 25KB(いずれか小さい方)です。
この制限があるため、MEMORY.md 自体は簡潔なインデックスとして維持し、詳細な情報はトピック別ファイルに分割するのがベストプラクティスです。
トピックファイル
情報量が増えてくると、Claude は自動的にトピック別のファイルを作成します。
~/.claude/projects/<project-hash>/memory/
├── MEMORY.md # 簡潔なインデックス(各トピックへの参照)
├── architecture.md # アーキテクチャに関するメモ
├── debugging.md # デバッグで得た知見
└── workflow-preferences.md # ワークフローの好み
MEMORY.md にはトピックファイルへの参照が記載され、必要に応じて Claude が適切なトピックファイルを読み込みます。
CLAUDE.md と MEMORY.md の違い
CLAUDE.md と MEMORY.md は、どちらもセッション開始時に読み込まれるという点では似ていますが、その役割は明確に異なります。
| 項目 | CLAUDE.md | MEMORY.md |
|---|---|---|
| 誰が書くか | 開発者(人間) | Claude(自動) |
| 目的 | 指示・ルールを伝える | 学習した知見を蓄積する |
| 内容の例 | コーディング規約、アーキテクチャ方針 | ビルドコマンド、デバッグ履歴、好み |
| スコープ | プロジェクト / ユーザー / 組織 | プロジェクト × ローカルマシン |
| Git 管理 | リポジトリにコミット(チーム共有) | ローカルのみ(共有されない) |
| 配置場所 | プロジェクトルート | ~/.claude/projects/<hash>/memory/ |
| 読み込み | 全文 | 先頭 200 行 / 25KB |
使い分けの指針
一言でまとめると、CLAUDE.md は「指示書」、MEMORY.md は「学習ノート」 です。
CLAUDE.md に書くべきもの:
- チームで共有すべきルール(コーディング規約、ブランチ戦略)
- プロジェクトの技術スタック・アーキテクチャ方針
- Claude への明示的な指示(「テストは必ず書く」「日本語でコミットメッセージを書く」など)
MEMORY.md に任せるもの:
- 個人の作業環境固有の情報(ローカルの DB ポートなど)
- セッション中に発見したデバッグの知見
- 繰り返し修正したコーディングの好み
- プロジェクト固有のコマンドやワークフロー
併用の例
CLAUDE.md(Git 管理、チーム共有)
├── "テストは Jest を使用し、カバレッジ 80% 以上を維持する"
├── "API エンドポイントは RESTful 設計に従う"
└── "コミットメッセージは Conventional Commits 形式で書く"
MEMORY.md(ローカル、個人の学習記録)
├── "テスト実行時に --runInBand フラグを付けないと CI が不安定になる"
├── "ユーザーは import 文の自動ソートを好む"
└── "Redis の接続エラーは docker compose up -d を忘れていることが多い"
/memory コマンド
Claude Code のセッション中に /memory コマンドを実行すると、メモリファイルの管理画面が開きます。
基本操作
> /memory
このコマンドで、現在のプロジェクトに紐づくメモリファイルの一覧が表示されます。ここから以下の操作が可能です。
- 閲覧: メモリファイルの内容を確認する
- 編集: 不要な記録を削除したり、内容を修正する
- 削除: 不要になったトピックファイルを丸ごと削除する
Auto Memory の有効 / 無効切り替え
/memory コマンドから Auto Memory のオン・オフを切り替えることもできます。設定ファイルで直接変更する場合は、以下のキーを使用します。
{
"autoMemoryEnabled": false
}
Auto Memory を無効にしても、既存の MEMORY.md は削除されません。再度有効にすれば、以前の記録を引き続き活用できます。
定期的なメンテナンス
メモリは自動で蓄積されるため、定期的に /memory で内容を確認することをおすすめします。
- 古くなった情報(変更されたコマンドやワークフロー)の削除
- 重複した記録の整理
- 機密情報が含まれていないかの確認
Auto Dream — 実験的な記憶整理機能
概要
Auto Dream は 2026 年 3 月からロールアウトが始まった実験的な機能です。人間の睡眠中の記憶整理になぞらえた仕組みで、Claude が蓄積したメモリを自動的に整理・統合します。
主な機能は以下の 3 つです。
- プルーニング: 古くなったメモや重複した情報を自動で削除
- 統合: 関連する情報を整理して再構成
- 最適化: トピックファイルの構造を見直し、検索効率を向上
発動条件
Auto Dream は以下の条件を満たしたときに自動で実行されます。
- 一定数以上のセッションが蓄積されている
- 前回の整理から十分な時間が経過している
Auto Dream は 2026 年 3 月時点でサーバーサイドのフィーチャーフラグで制御される実験的機能です。すべてのユーザーに提供されているわけではなく、動作が変更される可能性があります。
実践 Tips — MEMORY.md を効果的に使うために
基本は Claude に任せる
MEMORY.md の最大の利点は自動化です。手動で管理する必要はありません。普段どおり Claude Code を使っているだけで、自然と有用な情報が蓄積されていきます。
明示的に「覚えて」と伝える
特に重要な情報は、Claude に直接伝えることで確実に記録させることができます。
> このプロジェクトの API テストは Redis が必要だから覚えておいて
MEMORY.md は 200 行以内に保つ
読み込み制限(200 行 / 25KB)があるため、MEMORY.md 自体は簡潔なインデックスにとどめましょう。詳細な情報は Claude がトピックファイルに自動分割します。
CLAUDE.md と組み合わせる
チーム共有のルールは CLAUDE.md、個人の学習記録は MEMORY.md と、役割を分けて併用するのが効果的です。
手動で大量に書き込まない
MEMORY.md は Claude が管理するファイルです。大量の情報を手動で書き込むと、Claude の自動整理と競合する可能性があります。明示的なルールは CLAUDE.md に書きましょう。
機密情報を含めない
MEMORY.md はローカルファイルですが、セッションのコンテキストとして読み込まれます。API キー、パスワード、個人情報などの機密情報は記録しないようにしましょう。もし記録されてしまった場合は /memory コマンドで速やかに削除してください。
複数マシン間での同期を期待しない
MEMORY.md はローカルマシン固有のファイルです。Git 管理されないため、別のマシンで同じプロジェクトを開いても記録は共有されません。マシン間で共有したい情報は CLAUDE.md に記載しましょう。
まとめ
Claude Code の MEMORY.md は、セッション間の「記憶の断絶」を解消する強力な機能です。
- MEMORY.md は Claude が自動で学習内容を記録するローカルファイル
- CLAUDE.md は開発者が書く「指示書」、MEMORY.md は Claude が書く「学習ノート」
-
/memoryコマンドで管理でき、Auto Dream による自動整理も実験中 - 基本は Claude に任せつつ、定期的に内容を確認するのがベストプラクティス
普段どおり Claude Code を使い続けるだけで、セッションを重ねるごとに Claude がプロジェクトへの理解を深めていく — MEMORY.md はそんな体験を実現する仕組みです。