Claude Codeには、あなたが書く指示(CLAUDE.md)とは別に、Claudeが自分で書きためるメモがあります。それがMEMORY.mdです(画面ではAuto-memoryと表示されます)。
CLAUDE.mdがあなたのルールブックなら、MEMORY.mdはClaudeがプロジェクトについて覚えたことを自動でためる長期メモ。毎回言うほどではないけれど、次も覚えていてほしいことが、ここにたまっていきます。
この記事では、そのMEMORY.mdを、実際に「覚えて」のように記録に関連する指示を出し動作検証を進めます。CLAUDE.mdとの違い、保存される場所、/memoryでの確認方法までを順に追います。
この記事は連載「AIにコードを書かせる前に知っておきたい設定ファイル」の第4回です。
第1回(CLAUDE.mdとは?)・第2回(settings.jsonって何?)・第3回(Claude Codeのrulesとは?)も公開しています。
CLAUDE.mdとMEMORY.mdは別物
Claude Codeの記憶は大きく2種類あります(公式ドキュメント)。
| CLAUDE.md | MEMORY.md | |
|---|---|---|
| 誰が書く | あなた | Claude(自動で追記) |
| 中身 | ルール・手順・プロジェクト方針 | 作業中に学んだこと・好み |
| 共有 | Gitに含めればチームで共有 | マシンローカル(共有されない) |
| 読み込み | セッション開始時に全文(長いと文脈を食う) | セッション開始時に読まれる |
CLAUDE.mdが「最初から決めておくルール」なら、MEMORY.mdは作業中にClaudeが「次も使えそう」と判断したことだけを残す場所です。毎セッション保存されるわけではありません。
実際に「覚えて」と頼んでみます。
「覚えて」と頼むと何が起きるか
準備
mkdir claude-memory-demo
cd claude-memory-demo
git init
code . # VSCodeで開き、Claude Codeパネルを起動
セッション内で/memoryを開きます。Auto-memory: onになっていればOKです。

図1:/memoryではAuto-memoryの状態(on)と、1. User memory(~/.claude/CLAUDE.md)・2. Project memory(./CLAUDE.md)・3. Open auto-memory folder(MEMORY.md)が確認できる。
① 実験前の状態を見る
MEMORY.mdの実体は、リポジトリ直下ではなくClaudeのデータディレクトリにあります。場所は/memoryのOpen auto-memory folderから開けます。
~/.claude/projects/<リポジトリ識別子>/memory/MEMORY.md
まだ何も指示していない新規プロジェクトでは、memoryフォルダ自体がまだ無いか、空のことが多いです。

図2:指示前はmemoryフォルダがまだ作られていない。
② 「覚えて」と指示する
次のように指示します。
このプロジェクトではパッケージマネージャに pnpm を使う。覚えておいて。

図3:「覚えて」と頼んだプロンプト。
③ Claudeが書いた内容を確認する
Claudeが以下2つのファイルを作成しています。MEMORY.mdの方には、package-manager-pnpm.mdへのリンクが1行あるだけでした。実際のメモ(このプロジェクトはpnpmを使う、npmやyarnは使わない、という内容)は、もう一方のpackage-manager-pnpm.mdに書かれています。

図4:指示直後のClaudeの応答。

図5:MEMORY.mdはこの短い一行だけ。

図6:別ファイル(package-manager-pnpm.md)の中身。
④ セッションを開き直して思い出すか確認
新しいセッションを開き、以下の指示を出します。
このプロジェクトのパッケージマネージャは何を使う想定?
新しいセッションなので本来は会話履歴は残っていないはずだが、pnpmと回答しているため、MEMORY.mdの内容を参照しているようです。

図7:別セッションでもMEMORY.md経由で文脈が引き継がれる。
公式ドキュメントによると、Claudeは毎回保存するわけではなく、「次の会話でも役立つか」で判断して書くとされています。残るのは、あなたの修正や好み、よく使うコマンド、デバッグで分かったことなど。今回のように「覚えて」と頼めば、記録されるようです。
MEMORY.mdの保存場所
MEMORY.mdの実体は~/.claude/projects/…/memory/にあり、リポジトリ直下ではありません。Gitリポジトリごとに、Claudeのデータディレクトリへ1フォルダ割り当てられます。
~/.claude/projects/<リポジトリ識別子>/memory/
├── MEMORY.md # 短い文章の一覧(毎セッション先頭で読まれる)
├── package-manager-pnpm.md # 中身を書く別ファイル(必要時だけ Claude が Read)
└── ...

図8:MEMORY.mdの実体は~/.claude/projects/…/memory/にある。リポジトリ直下ではない。
- 作業ツリー直下ではなく、Claudeのデータ領域に置かれる
- Gitリポジトリ単位で1フォルダ割り当てられる
なお、セッション開始時に読み込まれるのはMEMORY.mdの先頭200行(または25KB)まで、と公式ドキュメントに書かれています。それを超えた分は起動時には読まれないため、MEMORY.mdは短い文章の一覧とし、その詳細は別ファイルにしているようです。(CLAUDE.mdの方は長さに関係なく全文が読まれます)。
settings.jsonでの設定
auto memoryまわりは、プロジェクトの.claude/settings.jsonで設定できます。保存先を変えたいときはautoMemoryDirectoryにパス(絶対パスか~/で始まるパス)を、自動記録を止めたいときはautoMemoryEnabledをfalseにします。必要なものだけ書けばOKです。
{
"autoMemoryDirectory": "~/my-memory-dir",
"autoMemoryEnabled": false
}
いつCLAUDE.mdに書き、いつMEMORY.mdに任せるか
| 状況 | 向いている方 |
|---|---|
| チーム全員に守らせたいコーディング規約 | ./CLAUDE.mdまたは.claude/rules/ |
| 自分だけの好みを全プロジェクトに | ~/.claude/CLAUDE.md |
| 作業中に判明した「このrepoだけの癖」 | MEMORY.md(気に入ったら手動でCLAUDE.mdに昇格) |
| 毎回必ず守らせたい(曖昧さゼロ) | CLAUDE.mdに明文化。hookで強制する手もある |
MEMORY.mdは文脈として読まれるだけで、permissionsのように強制はされません。譲れないルールはCLAUDE.mdに書き、覚えさせたい補足はMEMORY.mdに任せます。
まとめ
- MEMORY.mdはClaudeが自動でためる長期メモ。実体は~/.claude/projects/<識別子>/memory/にあり、リポジトリごと・マシンローカル
- ~/.claude/CLAUDE.mdはあなたが書くユーザー共通指示で、MEMORYとは別物
- 覚えさせたい補足はMEMORY.md、譲れないルールはCLAUDE.md。/memoryで確認・編集
次のステップ
手元で/memoryを開き、自分のプロジェクトにMEMORY.mdがすでにあるか確認してみてください。中身は普通のMarkdownなので、古いメモはそのまま編集・削除できます。
連載ナビ
コメント