Claude Codeの メモリとは CLAUDE.mdと 自動メモリの 違い、 /memoryの 使い方
- メモリは、会話をまたいで知識を引き継ぐ仕組みです。
- 自分で書くCLAUDE.mdと、Claudeが書く自動メモリがあります。
- /memoryで見て直し、長い手順は入れません。

Claude Codeは、会話を新しく始めるたびに、前の会話を覚えていません。そこで、次の会話に知識を引き継ぐ仕組みが2つあります。自分で書くCLAUDE.mdと、Claudeが自分で書く自動メモリです。この2つをまとめて、公式は「Claudeがプロジェクトを覚える仕組み」と呼んでいます。
いま入っているメモリを見たり、開いて直したりするコマンドが/memoryです。「覚えておいて」と頼めば、Claudeが自動メモリに書きます。この記事では、置き場所、読み込まれ方、書くべきでないこと、スキルやMCPサーバーとの使い分けまでを説明します。パソコンのメモリ(RAM)を使いすぎるときの対処は、記事の後半の「パソコンのメモリ(RAM)を使いすぎるとき」にまとめました。
手順は、2026年10月26日に公式のClaudeがプロジェクトを覚える仕組み、拡張機能の使い分け、トラブル対応と照らし合わせました。
この記事はClaude Codeの話です。claude.aiやスマホのアプリで、Claudeが会話の中身を覚える「メモリ機能」は別のもので、次の記事で説明しています。
関連記事メモリの 2つの 仕組み
どちらも、会話の開始時に読み込まれます(CLAUDE.mdのうち、サブフォルダのものは、そのフォルダのファイルを扱うときに読み込まれます)。ただし、Claudeはこれらを「守らせる設定」ではなく参考にする文脈として扱います。確実に止めたい操作は、フックを使います。
| CLAUDE.md | 自動メモリ | |
|---|---|---|
| 書く人 | CLAUDE.mdあなた | 自動メモリClaude |
| 中身 | CLAUDE.md指示と | 自動メモリ学んだ |
| 範囲 | CLAUDE.mdプロジェクト、 | 自動メモリリポジトリごと |
| 読み込み | CLAUDE.md会話の | 自動メモリ会話の |
| 向いている内容 | CLAUDE.mdコーディングの | 自動メモリあなたの |
CLAUDE.mdを 置く 場所 (ユーザー・ プロジェクト・ ローカル)
公式が挙げる置き場所は次のとおりです。範囲の広いものから順に読み込まれ、狭いものが後に来ます。
| 範囲 | 置き場所 | 共有される相手 |
|---|---|---|
| 範囲組織の管理 | 置き場所macOSは/Library/、/etc/、C:\ | 共有される相手組織の全員 |
| 範囲ユーザー | 置き場所~/.claude/ | 共有される相手自分だけ |
| 範囲プロジェクト | 置き場所./CLAUDE.または./.claude/ | 共有される相手チーム |
| 範囲ローカル | 置き場所./CLAUDE. | 共有される相手自分だけ |
CLAUDE.local.mdは個人用なので、.gitignoreに入れておきます。作業フォルダとその上のフォルダにあるCLAUDE.mdは起動時に読み込まれ、サブフォルダのものは、そのフォルダのファイルをClaudeが読み書きしたときに読み込まれます。
リポジトリがCLAUDE.mdの代わりにAGENTS.mdを使っている場合、公式によると、Claude Codeはそれもプロジェクトの指示として読めます。条件は、公式のAGENTS.mdの説明を見てください。
ひな形は、次の記事にまとめています。
関連記事自動メモリは 何を 覚えるか
Claudeは、作業の中で、次の4種類のメモを自分用に残します。メモのファイルには種類(type)が書かれます。
userあなたの役割、得意なこと、作業の好みfeedbackあなたに直されたこと、よいと確認した進め方project進行中の作業、期限、コードやGitの履歴から分からない決定reference課題管理やダッシュボードなど、プロジェクトの外の情報の場所
コードから読み取れること(構成、ファイルの場所、デバッグの直し方)や、CLAUDE.mdにすでにあることは、保存しません。毎回何かを保存するわけでもなく、次の会話で役に立つかどうかで決めます。
保存される 場所と MEMORY.md
プロジェクトごとに~/.claude/projects/<project>/memory/というフォルダができます。名前はGitのリポジトリから決まるので、同じリポジトリのworktreeやサブフォルダは、1つのフォルダを共有します。
~/.claude/projects/<project>/memory/
├── MEMORY.md # 索引。1行に1件。毎回読み込まれる
├── user_role.md # 1件のメモ
├── feedback_testing.md # 1件のメモ
└── ...要点
200行
MEMORY.mdが会話の初めに読まれるのは、先頭の200行か25KBの、先に届いたほうまで
- CLAUDE.mdの長さの目安
- 200行未満
- @での取り込みの深さ
- 4段まで
- 読み飛ばされるCLAUDE.md
- 4MiBを超えるもの
数値を表で見る
| 項目 | 量 | 中身 |
|---|---|---|
| CLAUDE.mdの長さの目安 | 200行未満 | 長いほど文脈を使い、指示が守られにくくなる |
| MEMORY.mdが読み込まれる量 | 先頭の200行か25KB | どちらか先に届いたところまで。それより後は読まれない |
| @での取り込みの深さ | 4段まで | 分けて取り込んでも、一緒に読まれるので使う文脈は減らない |
| 読み飛ばされるCLAUDE.md | 4MiBを超えるもの | 読み込まれない |
読み込まれるのは、MEMORY.mdの先頭200行か25KBまでです。詳しい内容は別のファイルに分けられ、必要なときにClaudeが読みに行きます。ファイルはふつうのMarkdownなので、自分で読んで、直して、消せます。そのPCの中だけに保存され、別のPCやクラウドとは共有されません。
MEMORY.mdは、自動メモリの索引です。Claudeが書き、1行に1件の短い見出しを並べます。会話中に「Saved 2 memories」や「Recalled 2 memories」のような表示が出たら、Claudeがこのフォルダに書いたか、読んだところです。
保存先を変えたいときは、settings.jsonにautoMemoryDirectoryを書きます。
{
"autoMemoryDirectory": "~/my-custom-memory-dir"
}オンとオフ
自動メモリは、ローカルのセッションでは初期状態でオンです。公式によると、セルフホスト環境のセッションでは、初期状態でオフです。/memoryの中の切り替えでオフにでき、設定は~/.claude/settings.jsonのautoMemoryEnabledに保存されます。プロジェクトだけで切るなら、そのプロジェクトの設定に書きます。
{
"autoMemoryEnabled": false
}環境変数CLAUDE_CODE_DISABLE_AUTO_MEMORY=1でも切れます。
/memoryで 見る・ 直す
/memoryは、CLAUDE.mdやCLAUDE.local.mdなどの置き場所を、ユーザーとプロジェクトの別に一覧にします。まだ存在しないファイルも並び、選ぶと作ってから開きます。自動メモリのオンとオフの切り替えと、自動メモリのフォルダを開く項目もあります。
読み込まれたCLAUDE.mdやルールのファイルを確かめるには、/contextを実行します。「覚えさせたい」ときの頼み方は、公式が次のように説明しています。
- 「pnpmを使って、npmは使わないで」のように頼むと、Claudeは自動メモリに保存します
- CLAUDE.mdに入れたいときは、「これをCLAUDE.mdに追加して」と頼むか、
/memoryから開いて自分で書きます
#を頭に付けて覚えさせる方法は、2026年10月26日時点の公式のメモリの説明にはありません。 古い解説で見かけても、いまは「覚えておいて」と頼む形で使うのが公式の説明です。
ほかの ファイルを 取り込む (インポート)
CLAUDE.mdの中で@パスと書くと、そのファイルが一緒に読み込まれます。
READMEは @README を、使えるコマンドは @package.json を見て。
# 追加の指示
- gitの手順は @docs/git-instructions.md相対パスは、書いたファイルから見た位置で決まります。取り込んだファイルがさらに取り込む入れ子は、4段までです。コードの書式の中(バッククォートで囲んだ部分)の@は、取り込みになりません。パスにスペースがあるときは、スペースの前に\を付けます。
取り込んでも、読み込まれる量は減りません。 整理には役立ちますが、取り込んだファイルは、取り込んだCLAUDE.mdと一緒にコンテキストに入ります。プロジェクトの外(ホームフォルダなど)を指す取り込みは、初めて見つかったときに確認の画面が出ます。
書くべきでないこと
公式の説明と、そこから言えることを分けて書きます。
公式の説明にあるのは、次のことです。
- 200行を超える長いCLAUDE.mdは、コンテキストを多く使い、守られにくくなります。目安は1ファイル200行以内です
- 手順が何段もあるものや、コードの一部にしか関係しないものは、CLAUDE.mdではなく、スキルかパスを限ったルール(
.claude/rules/)に移します - コードから読み取れる内容(フォルダの構成、依存の一覧、設計の概要)は不要です。
/doctorの点検は、こうした内容を削る案を出します - 毎回必ず起きてほしい処理や、確実に止めたい操作は、メモリではなくフックを使います
- 矛盾した指示は、どちらかが適当に選ばれます。古い指示や矛盾は、
/doctor prompt-audit(Claude Code v2.1.283以降)で見つけられます
ここからは編集部の考えです。公式の説明には書かれていませんが、プロジェクトのCLAUDE.mdはGitでチームに共有されるので、パスワードやAPIキーなどの秘密の値は書かないほうが安全です。個人の事情は、Gitに入れないCLAUDE.local.mdに書きます。
フックについては、次の記事にまとめています。
関連記事スキルや ルールとの 使い分け
CLAUDE.md、.claude/rules/のルール、スキルは、どれも指示を書いておくものです。違いは、いつ読み込まれるかです。公式の拡張機能の使い分けでは、次のように分けています。
| 種類 | 読み込まれるとき | 向いている内容 |
|---|---|---|
| 種類CLAUDE.md | 読み込まれるとき毎回の会話 | 向いている内容決まりと |
| 種類ルール | 読み込まれるとき毎回か、 | 向いている内容言語や |
| 種類スキル | 読み込まれるとき呼んだ | 向いている内容手順 |
| 種類自動メモリ | 読み込まれるとき毎回の | 向いている内容好み、 |
スキルは、会話の開始時には名前と説明だけが読み込まれ、使うときに中身が入ります。そのため、たまにしか要らない資料や、/deployのように呼び出す手順は、CLAUDE.mdではなくスキルに置きます。公式の目安は、同じ手順を3回目に貼り付けたらスキルにする、です。
スキルの作り方は、次の記事にまとめています。
関連記事MCPサーバーで メモリを足す
Claude Codeのメモリは、CLAUDE.mdと自動メモリの2つで、どちらもMarkdownのファイルです。これとは別に、MCPサーバーをつないで、会話をまたいで情報を残す道具を足すこともできます。
MCPの公式リポジトリ(modelcontextprotocol/servers)には、「Knowledge Graph Memory Server」という見本のサーバーがあります。説明は「ローカルの知識グラフを使った、永続メモリの基本的な実装」です。人や物(エンティティ)、そのつながり(リレーション)、1つずつの事実(オブザベーション)を、JSONLのファイルに保存します。保存先は環境変数MEMORY_FILE_PATHで変えられます。
READMEにClaude Codeでの追加手順は書かれていません。Claude Codeの公式の書き方に当てはめると、次のようになります。
claude mcp add memory -- npx -y @modelcontextprotocol/server-memoryこのサーバーをnpx経由で動かすには、READMEによるとNode.js 24以上が必要です。このコマンドに範囲の指定を付けないと、そのプロジェクトで自分だけが使えるlocalの範囲に入ります。公式は、つなぐ前にそのサーバーを信頼できるか確かめるよう書いています。
Basic Memory、codebase-memory-mcpなど、第三者が作ったメモリ用のMCPサーバーもあります。この記事では中身や安全性を確かめていないので、使う前にそれぞれのREADMEを読んでください。
MCPとスキルの違いは、公式によると「MCPは外の道具やデータにつなぐもの、スキルはその使い方などの知識を足すもの」です。MCPの基本は、次の記事にまとめています。
関連記事圧縮や クリアの あとも 残るか
会話を/compactで圧縮しても、プロジェクトのルートのCLAUDE.mdは、Claudeが読み直して、また文脈に入れます。会話の中だけで伝えた指示は、圧縮で消えることがあります。 残したい指示は、CLAUDE.mdに書きます(公式のトラブル対応)。
圧縮とクリアの使い分けは、用語集の/compactと/clearにあります。コマンド全体は、次の記事を見てください。
関連記事設定ファイル全体との関係は、設定の記事にまとめています。
関連記事パソコンの メモリ (RAM)を 使いすぎるとき
「Claude Codeのメモリ不足」「メモリ使用量が多い」と言うときは、ここまでのメモリではなく、パソコンのメモリ(RAM)の話です。公式の動作環境は、4GB以上のRAMです。
公式のトラブル対応によると、大きなコードベースを扱うと、多くのメモリやCPUを使うことがあります。重いときの手順は次のとおりです。
/compactをこまめに実行して、会話の量を減らす- 大きな作業の切れ目で、Claude Codeを閉じて起動し直す
- 大きなビルドのフォルダを
.gitignoreに入れる claude --safe-modeで起動し直し、プラグイン、MCPサーバー、Hooksのどれかが原因かを確かめる
1つの会話のメモリ(ヒープ)が2.5GBを超えると、警告が出ます。Claude Codeを閉じてからclaude --continueで起動すると、同じ会話を新しいプロセスで続けられます。フルスクリーン表示でなければ、/compactでもメモリが空きます。
メモリリークを 疑うとき
上の手順でも使用量が高いままなら、/heapdumpを実行します。コマンドの一覧には出ないので、最後まで打ち込みます。デスクトップ(デスクトップのフォルダがないLinuxではホームフォルダ)に、2つのファイルが書き出されます。
.heapsnapshotのファイル 会話の中身や認証情報まで入るので、人に渡さない-diagnostics.jsonのファイル 要約の元になる統計で、会話や認証情報は入らない
会話の中にも、全体のメモリの量や、増え方が速いといったリークの兆しをまとめた要約が出ます。報告するときは、GitHubのIssueに-diagnostics.jsonだけを付けます。既知の不具合も、このリポジトリで探せます。
重いときの対処は、トラブル対応の記事にもまとめています。
関連記事よく ある質問
Claude Codeの メモリとは 何ですか?
会話をまたいで知識を引き継ぐ仕組みです。自分で書くCLAUDE.mdと、Claudeが自分で書く自動メモリの2つがあります。どちらも、会話の開始時に読み込まれます(サブフォルダのCLAUDE.mdは、そのフォルダを扱うとき)。
メモリを 見たり 直したりするには?
/memoryを実行します。CLAUDE.mdなどの一覧が出て、選ぶとエディタで開きます。自動メモリのフォルダを開いたり、オンとオフを切り替えたりもできます。
自動メモリが 勝手に 保存した 内容を 消せますか?
消せます。保存先は~/.claude/projects/<project>/memory/のふつうのMarkdownなので、/memoryから開いて直すか、ファイルを消します。
CLAUDE.mdと 自動メモリは、 どちらに 書けばいいですか?
チームで守るルールや手順は、CLAUDE.mdに自分で書きます。あなたの好みや直された内容は、自動メモリにClaudeが書きます。「これをCLAUDE.mdに追加して」と頼めば、CLAUDE.mdに入れられます。
スキルと メモリは、 どう 使い分けますか?
毎回知っていてほしい決まりはCLAUDE.mdに、たまにしか要らない資料や呼び出す手順はスキルに置きます。スキルは、使うときだけ中身が読み込まれます。
Claude Codeが パソコンの メモリを 使いすぎる ときは?
/compactを実行するか、Claude Codeを閉じてclaude --continueで続けます。それでも高いままなら、/heapdumpの結果のうち-diagnostics.jsonだけを付けて、GitHubのIssueで報告します。
#で 始めて 覚えさせる ことは できますか?
2026年10月26日時点の公式のメモリの説明には、書かれていません。「覚えておいて」と頼めば自動メモリに、「CLAUDE.mdに追加して」と頼めばCLAUDE.mdに入ります。


