Claude Codeのメモリ機能を理解する|CLAUDE.mdと「自動メモリ」の違い・使い方

Claude Code

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や設定(autoMemoryEnabledfalse)でオフにもできます。

ヒント:自動メモリは「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ヶ月のトークンコストを実測(メモリ肥大はコストにも影響)


コメント

タイトルとURLをコピーしました