Claude Code を使い込んでいると、「この前も同じ説明をしたのに」「プロジェクトの約束事を毎回言い直している」と感じることはないでしょうか。
Claude Code には、セッションをまたいで情報を覚えておく「メモリ機能」があります。しかも記憶のしくみは2種類。ひとつは自分で書く指示書(CLAUDE.md)、もうひとつはClaude が自分で学んで覚えていく「自動メモリ」です。
私自身、あるプロジェクトの運営作業で Claude Code を毎日使っていますが、方針や注意点を Claude が自動で覚えてくれているので、説明のやり直しがかなり減りました。この記事では、「メモリって結局なに?」を整理し、2種類の違い・置き場所・編集方法・つまずきどころまで、公式仕様ベースでまとめます。
結論:Claude Codeの「記憶」は2種類ある
まず全体像から。Claude Code のメモリ(永続する知識)には、性格の違う2つのしくみがあります。
| ① CLAUDE.md | ② 自動メモリ(Auto memory) | |
|---|---|---|
| 何者か | 人が書く指示書 | Claude が自分で記録する学習メモ |
| 管理する人 | あなた(人間) | Claude(自動) |
| 中身の例 | コード規約、ビルド手順、使うライブラリ | 気づいたビルドコマンド、デバッグの勘所、好みの形式 |
| 読み込み | セッション開始時に毎回 | セッション開始時に毎回 |
| 置き場所 | プロジェクト/ユーザー/組織の各CLAUDE.md | ~/.claude/projects/<プロジェクト>/memory/ |
ポイントは、両者は別物で、どちらかがもう一方を置き換えるものではないこと。「人が教える」CLAUDE.md と「Claude が覚える」自動メモリが、補い合って“記憶”を作っています。順に見ていきます。
① CLAUDE.md(人が書く指示書)
CLAUDE.md は、あなたが Claude に伝えたいルールを書いておくファイルです。セッション開始時に自動で読み込まれ、毎回説明しなくても前提として踏まえてくれます。
CLAUDE.md はスコープ(適用範囲)ごとに階層になっています。
| スコープ | 置き場所(Linux/Mac例) | 範囲 |
|---|---|---|
| 組織(管理ポリシー) | /etc/claude-code/CLAUDE.md 等 |
全ユーザー・全プロジェクト |
| ユーザー(個人) | ~/.claude/CLAUDE.md |
自分の全プロジェクト |
| プロジェクト | ./CLAUDE.md または ./.claude/CLAUDE.md |
そのプロジェクト(チーム共有可) |
| ローカル(自分だけ) | ./CLAUDE.local.md |
そのプロジェクト・自分のみ |
上の層ほど広く効き、下の層ほどそのプロジェクト専用、という住み分けです。チームで共有したいルールはプロジェクトの CLAUDE.md、自分の好みはユーザーの CLAUDE.mdに書く、と覚えておくと迷いません。
CLAUDE.md の具体的な書き方・テンプレートは、別記事【CLAUDE.mdの書き方・実例テンプレート】で詳しく解説しています。本記事は「メモリ全体の地図」に集中します。
② 自動メモリ(Claudeが自分で覚える)
ここが、意外と知られていない便利機能です。自動メモリ(Auto memory)は、作業の中で Claude が見つけた知識——たとえば「このプロジェクトのビルドはこのコマンド」「この環境のクセ」「あなたが好む書き方」——を、Claude が自分で記録して次回に活かすしくみです。
- 保存先は
~/.claude/projects/<プロジェクト>/memory/(git リポジトリ単位で管理)。 - セッション開始時に読み込まれるので、前回の学びを引き継いで作業できます。
- 人が逐一書かなくても育っていくのが、CLAUDE.md との大きな違いです。
実際、私が運営作業で使っているプロジェクトでも、「公開手順」「過去にハマった点」「方針」などを Claude が自動でメモしてくれていて、セッションを再開するたびに「前回の続き」からスムーズに動けます。毎回ゼロから説明し直す手間が消えるのが、いちばんの実用メリットでした。
閲覧・編集・オンオフ:/memory
自動メモリは中身を確認・編集できます。
/memoryコマンドで、記録されているメモリを一覧表示 → ファイルを開いて直接編集も可能。- 不要・的外れな記憶があれば、その場で直せます(たまに棚卸しするのがおすすめ)。
- 自動メモリ自体を使いたくない場合は、
/memoryのUIや設定(autoMemoryEnabledをfalse)でオフにもできます。
ヒント:自動メモリは「Claude が勝手に覚える」ぶん、たまに
/memoryで中身を見て、古くなった情報を直すと精度が保てます。放置すると、過去の前提のまま動くことがあります。
2つの違いと使い分け
整理すると、こうなります。
- CLAUDE.md(人が管理):あなたが「こう動いてほしい」を明示する指示書。規約・手順・前提など、確実に守らせたいことを書く。
- 自動メモリ(Claudeが管理):作業の中で Claude が「こうだったな」と学んだことの記録。育てるというより、育っていくもの。
使い分けの目安:
- ルール・規約・絶対に守ってほしいこと → CLAUDE.md に自分で書く
- 作業で判明した設定・手順・クセ → 自動メモリに任せて、ときどき
/memoryで確認・修正
両方が噛み合うと、「毎回の説明コストが減り、前回の続きから動ける」状態になります。
メモリの編集・追加方法
具体的な操作をまとめます。
| やりたいこと | 方法 |
|---|---|
| CLAUDE.md を新規作成 | テキストエディタで該当パスに作成(例:./CLAUDE.md) |
| CLAUDE.md を自動生成 | /init でプロジェクトを解析させ、初期 CLAUDE.md を生成 |
| 自動メモリを見る・直す | /memory で一覧 → 直接編集 |
| 他ファイルを取り込む | CLAUDE.md 内に @パス と書いてインポート(相対/絶対パス、最大4階層) |
インポート(@path)でファイルを取り込む
CLAUDE.md が長くなりすぎないよう、別ファイルに分けて読み込ませることもできます。
# CLAUDE.md の例
詳しい設計は @docs/architecture.md を、開発手順は @README を参照。
@パス と書くと、起動時にそのファイルの内容が展開されて読み込まれます。共通ルールを別ファイルにまとめて再利用したいときに便利です。
つまずきポイント&ベストプラクティス
最後に、公式が挙げる注意点と、実際に役立ったコツを。
- CLAUDE.md は簡潔に(目安200行以下):長すぎるとコンテキストを食い、指示の遵守度も下がります。「簡潔に、要点だけ」が鉄則。
- 具体的・検証可能に書く:「いい感じに整形」より「インデントは半角スペース2つ」のように、判定できる表現で。
- 機密情報は書かない:APIキーやパスワードはメモリに置かない。
- 矛盾を作らない:複数階層の CLAUDE.md に食い違う指示があると、Claude がどちらかを“なんとなく”選びます。定期的に見直して整合を。
- 自動メモリは棚卸しする:
/memoryでときどき中身を確認し、古い前提を更新する。 - CLAUDE.md と自動メモリを混同しない:前者は「人の指示」、後者は「Claude の学習」。役割が違うと理解しておくと、どちらを直せばよいか迷いません。
まとめ
- Claude Code の「記憶」は2種類:① CLAUDE.md(人が書く指示書)と ② 自動メモリ(Claude が自分で覚える学習)。
- CLAUDE.md はスコープ階層(組織/ユーザー/プロジェクト/ローカル)。確実に守らせたいルールを書く。
- 自動メモリは
~/.claude/projects/<プロジェクト>/memory/に Claude が自動記録。/memoryで閲覧・編集・オンオフ。 - 編集は
/init(生成)//memory(自動メモリ)/@パス(インポート)。 - コツは簡潔・具体的・機密を書かない・矛盾を作らない・たまに棚卸し。
「また同じ説明をしている」と感じたら、それはメモリの出番です。人が書く CLAUDE.md と、Claude が覚える自動メモリ——この2つを意識するだけで、毎回の作業がずっと軽くなります。
あわせて読みたい:
・CLAUDE.mdの書き方・実例テンプレート(人が書く指示書を深掘り)
・Claude Codeのサブエージェント実践|使い方・自作・使いどころ(コンテキストを汚さない別の仕組み)
・Claude Codeのスキル機能(Skills)入門|SKILL.mdで自分専用コマンドを作る(呼んだ時だけ読み込む“手順”の仕組み)
・Claude Code 1ヶ月のトークンコストを実測(メモリ肥大はコストにも影響)


コメント