Claude CodeのMEMORY.mdは200行まで|整え方
「Claude Codeに覚えさせたはずのことを、次のセッションで忘れている」「MEMORY.mdって勝手に増えていくけど、放っておいて大丈夫?」——auto memory(Claude Codeが自分で書くメモ)を使い始めると、誰もがこの不安を抱えます。
結論から言うと、Claude CodeのMEMORY.mdは先頭200行か25KBの、先に来たほうまでしか毎回読まれません。だからMEMORY.mdは「1件1行の索引」にとどめ、中身は話題ごとのファイルへ移すのが正しい置き方です。上限を超えても書き込み自体は成功するので、気づかないうちに新しい記憶から見えなくなります。
株式会社Fyveは、Claude Codeを社内の無人ジョブと日々の開発の両方で動かしています。この記事では、公式ドキュメントの仕様と、Anthropicが2026年11月6日に公開した記憶の研究、そして私たちの実際のMEMORY.mdの中身をもとに、上限の意味と整え方、止め方までをまとめます。
Claude Codeの記憶は2つある:CLAUDE.mdとauto memory
まず、MEMORY.mdがどこに位置するかを整理します。Claude Codeのセッションは毎回まっさらな文脈から始まり、知識をセッションの外へ持ち越す仕組みは公式ドキュメント上で2つに分かれています。
CLAUDE.md | auto memory(MEMORY.md) | |
|---|---|---|
書く人 | 自分 | Claude |
中身 | 指示・決まり | 学んだこと・パターン |
範囲 | プロジェクト・ユーザー・組織 | リポジトリごと(worktree間で共有) |
読み込み | 毎セッション(ファイル全体) | 毎セッション(先頭200行か25KB) |
出典は公式ドキュメント「How Claude remembers your project」です(2026年11月8日に確認)。どちらも「設定」ではなく「文脈」として扱われる点も押さえておきたいところです。絶対に止めたい操作があるなら、記憶に書くのではなくPreToolUseのフックで止める、と公式も書いています。
CLAUDE.mdの書き方そのものは、別の記事で詳しく扱っています。
auto memoryが保存する4種類のメモ
auto memoryは、作業中にClaudeが「次の会話でも役に立つ」と判断したことを、1件1ファイルで保存します。ファイルの冒頭(frontmatter)の type に、次の4種類のどれかが入ります。
- user:あなたの役割・得意分野・仕事の好み
- feedback:あなたが直した点・「それでいい」と認めたやり方
- project:コードやgitの履歴からは分からない、進行中の作業・期限・決定
- reference:プロジェクトの外にある情報の置き場(課題管理やダッシュボードなど)
逆に、コードから読み取れること(構成・ファイルの場所・不具合の直し方)や、CLAUDE.mdにすでに書いてあることは保存しない、と公式は説明しています。毎回何かを保存するわけでもありません。
保存場所と、共有される範囲
保存先は ~/.claude/projects/<project>/memory/ です。<project> はgitのリポジトリから決まるので、同じリポジトリ内のworktreeやサブディレクトリはすべて1つの記憶フォルダを共有します。gitの外では、プロジェクトのルートが使われます。
ここで見落としやすいのが、auto memoryはその機械だけのもの(machine-local)だという点です。別のMacやクラウドの環境とは共有されません。この性質が、後で書く私たちの使い分けの理由になっています。
なお、会話の記録は cleanupPeriodDays の保存期間を過ぎると消されますが、memoryフォルダのファイルはこの掃除の対象外です。自分かClaudeが消すまで残ります。
MEMORY.mdは先頭200行か25KBまでしか読まれない
本題の上限です。公式ドキュメントには、MEMORY.mdの先頭200行か先頭25KBの、先に来たほうがすべての会話の最初に読み込まれ、それより後ろはセッション開始時に読まれない、とあります。

この上限で困るのは、切れるのが末尾だという点です。新しく覚えたことほど後ろに足されるので、MEMORY.mdが膨らむと「いちばん最近直してもらったこと」から順に見えなくなります。冒頭の「覚えさせたはずなのに忘れている」の正体は、多くの場合これです。
上限を超えたときに出るエラー
以前は、上限を超えたMEMORY.mdは次の読み込みで黙って切られていました。公式のエラー一覧によると、v2.1.210より前は、書き込みの時点で何の知らせもなかったとされています。今は、書き込みで上限を超えると、Claudeに次のエラーが返ります。
Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.押さえておきたい点は3つです。
- 書き込みは成功している:エラーといっても、保存が止まるわけではありません。読み込みの時に後ろが落ちる、という警告です
- 140行未満に書き直すよう求める:200行ちょうどではなく、余裕を持たせた数字が示されます。上限に近づいた段階では、エラーより穏やかな「索引を縮めて」という知らせが出ます
- ターミナルには表示されない:エラーはClaudeに渡されるだけで、画面に帯として出るわけではありません。会話の記録を見ないと気づけないことがあります
もう1つ、数え方の変更もあります。v2.1.211からは、frontmatterとブロック単位のHTMLコメントは読み込みの前に取り除かれ、上限の計算に入りません。それより前の版では、ファイルをそのまま測っていたため、中身が収まっていても注記のせいでエラーになることがありました。古い版を使っている人は、まず版を上げるのが先です。
この上限はMEMORY.mdだけの話
混同しやすいので、CLAUDE.mdとの違いも書いておきます。200行・25KBの上限はMEMORY.mdにだけかかるものです。起動時に読まれるCLAUDE.mdは、4MiB以下なら全文がClaudeに渡り、4MiBを超えるファイルは丸ごと読まれません。
ただし、全文が読まれるからといってCLAUDE.mdを長くしてよいわけではありません。公式は「1ファイル200行未満」を目安に挙げ、長いファイルは文脈を食い、指示が守られにくくなると書いています。数字は同じ200ですが、MEMORY.mdは「そこで切れる」、CLAUDE.mdは「そこを超えると効きが落ちる」で、意味が違います。

Anthropicの研究が示す「毎回読む層は小さく」の理由
この上限は、ただのメモリ節約ではありません。Anthropicは2026年11月6日に「The components of agent memory」という記事を公開し、エージェントの記憶をどう組み立てるかを実験の数字つきで説明しています。記事の中でも、Claude Codeのauto memoryはMEMORY.mdの先頭200行か25KBしか読まない、と明記されています。

記憶の4層
記事は、記憶を下から次の4層に分けています。
- 作業の記録:検索できるセッションのログ
- 作業中に書くメモ:Claudeが働きながら残すメモ
- 構造にまとめた記憶:wikiのように、話題ごとのページをつないだもの
- 毎回読み込む層:セッションの最初に必ず入る文脈
そして、セッションの外でログとメモを見直し、層の間で情報を整理し直す工程を「dreaming」と呼んでいます。メモをログと突き合わせて直す、まとまったページを作る、大事なメモを上の層へ上げる、といった作業です。
上の図の右側は、この4層をClaude Codeの置き場所に私が対応づけたものです。公式の対応表ではありません。また、dreamingはClaude Codeに標準で付いている機能として紹介されているものではないので、Claude Codeで同じことが自動で起きるとは考えないでください。
記事の推奨:上は小さく、詳しくは下へ、リンクを残す
記事の実務的な結論は、「毎回読み込む層は小さく保ち、詳しい中身は下の層へ移して、上にはリンクを残す」です。MEMORY.mdを「何を知っていて、どこにあるか」を示す索引として扱う、という説明もあります。200行の上限は、この考え方をそのまま仕様にしたものと読めます。
ほかにも、手元の運用に効く推奨がいくつかあります。
- メモは最初から間違っていたり、時間とともにずれたりするので、記録と突き合わせて直す
- 対象ごとに1ページを持たせ、大事な文言は要約せず原文のまま引く(共有ページに書かせた要約では、57件の事実のうち41件しか残らなかった)
- リンク切れを直し、足りない索引ページを足す見直しを、後から別に回す
保存の決まりを縛りすぎると、記憶が効かなくなる
MEMORY.mdを整えたくなると、「失敗だけを書いて」「この形式でだけ書いて」と保存の決まりを細かく決めたくなります。ここは注意が必要です。
記事の実験では、「失敗だけを記録して」と指示すると、記憶による点の伸びがOpus 5で0.234、Opus 4.7で0.150下がりました。記事は、この決まりの下で両モデルとも記憶による伸びの多くを失った、と書いています。強いモデルほど、何を残すべきかを自分で判断させたほうがよい、という結論です。
一方で、弱いモデルには促しが効く、という結果も出ています。Sonnet 4.6は、記憶を読んで自分の仮説を確かめるよう促すと、点が0.330から0.641に上がりました。記事はこれを「ベンチマークの点をほぼ倍にした」と表現しています。
手元に落とすと、こうなります。CLAUDE.mdには「記憶は何のためにあるか」は書いてよい。ただし「何をどの形式で保存するか」を細かく縛るのはやめる。軽いモデルで回す作業では、「作業の前に記憶を読んで確かめて」と一言添える。
MEMORY.mdを小さく保つ手順
ここからは実際の手順です。順番に進めれば、10分ほどで今のMEMORY.mdの状態を確かめて整えられます。
1. /memoryで中身を開く
セッションの中で /memory を実行すると、CLAUDE.md・CLAUDE.local.md・auto memoryの場所が一覧で出ます。auto memoryのフォルダを開く選択肢もあり、選んだファイルはエディタで開けます。すべてただのMarkdownなので、読んで、直して、消して構いません。
行数とサイズはターミナルで測るのが早いです。
wc -l -c ~/.claude/projects/<project>/memory/MEMORY.md
ls ~/.claude/projects/<project>/memory/ | wc -l1つ目で行数とバイト数、2つ目で記憶のファイルの数(索引を含む)が分かります。<project> の部分は、/memory から開いたフォルダのパスで確かめてください。
2. MEMORY.mdを1件1行の索引にする
公式のフォルダ構成の例は、次の形です。
~/.claude/projects/<project>/memory/
├── MEMORY.md # 索引。1件1行。毎セッション読まれる
├── user_role.md # 1件の記憶
├── feedback_testing.md # 1件の記憶
└── ... # Claudeが作るほかの話題のファイルMEMORY.mdの各行は「見出しへのリンク+短い説明」だけにします。たとえば次のような形です。
- [テストの方針](feedback_testing.md) — pnpmを使う・結合テストはRedisが要る
- [リリース前の確認](project_release.md) — 本番の確認手順と担当MEMORY.mdの中に、手順や理由の長い説明が書かれていたら、それを話題のファイルへ移し、索引には1行だけ残します。話題のファイルは起動時には読まれず、Claudeが必要なときに通常のファイル操作で開きます。だから、ファイルを増やしても毎回の文脈は増えません。
自分で整理するのが手間なら、Claudeに「MEMORY.mdを1件1行の索引に書き直して。詳しい内容は話題ごとのファイルへ移して、古いものや重複は統合するか消して」と頼めば十分です。エラーが出たときに公式が案内しているのも、同じやり方です。
3. 古い・重複した記憶を消す
記憶のファイルは、保存期間の掃除の対象外です。放っておくと、終わった案件や古い決定がずっと残ります。月に1度など、時期を決めて見直すのがおすすめです。
- もう事実でないもの:方針が変わった、ツールを乗り換えたなど。間違った記憶は、無い記憶より害があります
- 重複しているもの:同じ話題のファイルが2つある場合は1つにまとめ、索引の行も1行にします
- CLAUDE.mdに移すべきもの:チーム全員に守ってほしい決まりは、auto memoryではなくCLAUDE.mdへ。auto memoryはその機械だけのものなので、他の人や他のマシンには届きません
4. 必要なら止める・置き場所を変える
auto memoryは、手元のセッションでは既定でオンです。止め方は3通りあります。
やりたいこと | 方法 |
|---|---|
自分の全プロジェクトで切り替える |
|
このプロジェクトだけ止める | プロジェクトの設定に |
環境変数で止める |
|
保存先を変えたい場合は、settings.json に autoMemoryDirectory を書きます。値は絶対パスか ~/ で始まるパスです。ただし、リポジトリに入っている設定ファイルでこれを指定した場合は、フックと同じく、そのフォルダを信頼したときにだけ有効になります。
もう1つ、無人で回す人に関係する注意があります。公式によると、別のClaude Codeのセッションから起動されたセッション(ClaudeがBashから claude を実行した場合など)や、バックグラウンドのセッションでは、トグルでauto memoryを切ることはできても、そこから入れ直すことはできません。入れ直すには、ターミナルで直接 claude を起動したセッションのトグルを使います。
サブエージェントとauto memory
サブエージェントを使っている人は、記憶の受け渡しも押さえておきましょう。
- メインの会話のauto memoryは、サブエージェントには読み込まれません。例外は、親の会話をそのまま引き継ぐforkだけです
- サブエージェントに自分の記憶を持たせたいときは、定義ファイルのfrontmatterに
memoryフィールドを書きます。範囲はuser(~/.claude/agent-memory/<エージェント名>/)、project(.claude/agent-memory/<エージェント名>/・バージョン管理で共有できる)、local(.claude/agent-memory-local/<エージェント名>/・共有しない)の3つです - サブエージェントの記憶にも、MEMORY.mdの先頭200行か25KBという同じ上限がかかります
- auto memory自体をオフにしていると、
memoryフィールドは効きません
「レビュー係のサブエージェントに、指摘の傾向を覚えさせたい」といった使い方なら、project にしておくとチームで同じ記憶を育てられます。
私たちの運用:無人ジョブのMac miniのMEMORY.mdは4行
最後に、私たちの実際の状態をお見せします。私たちは、記事の下調べやSNSの定期投稿などの無人ジョブを、専用のMac mini上のClaude Code(この記事を書いた時点で v2.1.296)で毎日回しています。2026年11月8日に、その機械のauto memoryを測りました。
測ったもの | 結果 | 測り方 |
|---|---|---|
MEMORY.mdの行数 | 4行 |
|
MEMORY.mdのサイズ | 732バイト |
|
memoryフォルダのファイル数 | 5本(索引を含む) |
|
200行・25KBの上限には、まだまったく届いていません。中身は、1件1行の索引と、話題ごとの4本のファイルです。それぞれのファイルの冒頭には type: project のような種類が入っていて、公式の形そのままになっています。
記憶とCLAUDE.mdを、機械をまたぐかどうかで分ける
行数が少ないのは、置き場所を意識して分けているからです。判断の基準は「その知識は、別のマシンでも要るか」です。
- どのマシンでも守る決まり:CLAUDE.mdや
.claude/rules/に書き、gitで管理します。私たちは日中の開発をノートPCで、無人ジョブをMac miniで回しているので、両方に届くのはgitに乗ったものだけです - その機械だけの事実:auto memoryに任せます。たとえば「この機械の既定のPython 3は3.9なので、新しい書き方のスクリプトが落ちる。別の環境のPythonで回す」という記憶は、Mac miniでしか意味がありません
auto memoryがmachine-localであることは、欠点にも見えますが、こう分けると利点になります。その機械にしか関係しない事実が、他の機械の文脈を汚しません。
もう1つ、無人ジョブならではの事情もあります。私たちのジョブは、毎回の開始時にリポジトリをリモートの最新の状態に戻してから動きます。memoryフォルダはリポジトリの外(~/.claude/ の下)にあるので、このリセットでは消えません。前の回にClaudeが覚えた「その機械の癖」は、次の回にも残ります。逆に言えば、間違った記憶も残り続けるので、見直しは人がやる必要があります。
設定ファイル全体の中での位置
MEMORY.mdは、Claude Codeが読む設定ファイルの1つにすぎません。CLAUDE.md・rules・skillsなど、ほかのファイルとの役割分担は、こちらの記事でまとめています。

Claude Codeの外に記憶を持たせる方法(MCPのメモリサーバ)と比べたい人は、こちらも参考になります。
よくある質問
MEMORY.mdを自分で編集しても大丈夫ですか?
大丈夫です。公式も、auto memoryのファイルはただのMarkdownで、いつでも編集・削除できると書いています。ただし、索引の行と話題のファイルの対応が崩れると、Claudeがファイルを探せなくなります。ファイルを消したら、索引の行も一緒に消してください。
200行を超えたら、記憶は消えるのですか?
消えません。ファイルには残っていて、セッションの最初に読み込まれないだけです。話題のファイルに移して索引から1行でたどれるようにすれば、また使えるようになります。
CLAUDE.mdにも200行の上限がありますか?
切り捨ての上限はありません。4MiB以下なら全文が読まれます。ただし、公式は200行未満を目安にしていて、長いほど指示が守られにくくなります。一部の作業でしか要らない決まりは、パスを指定したrulesに分けると、その作業のときだけ読まれます。
チームでMEMORY.mdを共有できますか?
auto memoryはその機械だけのもので、共有されません。チームで共有したい知識は、CLAUDE.mdに書いてgitで管理するか、サブエージェントの memory: project を使ってください。
まとめ
- Claude CodeのMEMORY.mdは、先頭200行か25KBの先に来たほうまでしか毎セッション読まれない
- 超えても書き込みは成功する。後ろ(=新しい記憶)から見えなくなる。v2.1.210より前は知らせもなかった
- MEMORY.mdは1件1行の索引にし、中身は話題ごとのファイルへ。話題のファイルは必要なときだけ読まれる
- Anthropicの2026年11月6日の記事も「毎回読む層は小さく、詳しくは下へ、リンクを残す」を勧めている。保存の決まりを縛りすぎると記憶が効かなくなる
- auto memoryはその機械だけのもの。どのマシンでも要る決まりはCLAUDE.mdに書いてgitで管理する
まずは /memory を開き、MEMORY.mdが何行になっているかを確かめるところから始めてみてください。株式会社Fyveでは、こうしたClaude Codeの運用の決め方を、自社の無人ジョブで試しながら記事にしています。
出典:How Claude remembers your project(Claude Code Docs)/Error reference(Claude Code Docs)/Subagents(Claude Code Docs)/The components of agent memory(Anthropic・2026年11月6日)。いずれも2026年11月8日に確認しました。
Claude Codeを「素のまま」使うな

設定で差がつく——CLAUDE.md・権限・スキルの実物を公開(全24ページ)
素のClaude Codeは"優秀な新入社員"。仕事を教えるほど、自分専用になります。覚えさせる4点セット——会社の説明書(CLAUDE.md)・権限の柵・手順書(スキル)・フォルダの地図——を、1人会社の実運用からコピペで使える型つきで公開します。
- そのまま書き換えて使えるCLAUDE.mdの型
- お金と送信をAIに触らせない「3段階の柵」
- 1回教えたら何度でも動く、手順書のコピペ雛形
- AIが迷子にならないフォルダ構造の3原則
メールアドレス登録で他にも様々な資料を閲覧できます








+11PDF 20点・合計513ページ + すぐ使えるzip素材 3点
どれも登録後の受け取りページから、まとめてダウンロードできます。
毎週配信の無料ニュースレター「AIネイティブ超研究」の購読特典です。メール登録後すぐ、受け取りページのご案内が届きます。そこにはこの資料に加えて、過去の特典もすべてまとめて置いてあります。あわせて、AI活用に関するお知らせやお役に立てそうなご案内をお送りすることがあります。解除はいつでも1クリック。
御社の業務に合わせたClaude Code導入支援
「AIツールを導入したが、現場で使われない」を終わらせる。
業務課題のヒアリングから設計、ハンズオン実践、運用定着まで一貫して支援します。