.claude ディレクトリの中身
プロジェクトの .claude とホームの ~/.claude に置くファイルとディレクトリの役割、frontmatter、自動で消えるデータと残るデータ、ローカルデータの消し方をまとめます。
Claude Code は、設定・指示・拡張の多くを、プロジェクトの .claude/ とホームディレクトリの ~/.claude/ から読みます。このページでは、置き場所(プロジェクト・ユーザー・そのほか)ごとに、ファイルとディレクトリの役割、読み込まれるタイミング、Git に入れるかを一覧にします。あわせて、~/.claude に Claude Code が書き込むデータの保持期間と消し方も扱います。
- 多くの人が編集するのは
CLAUDE.mdとsettings.jsonだけ。残りは必要になったときに足す - リポジトリにほかのコーディングエージェント向けの
AGENTS.mdがあれば、Claude Code は単独かCLAUDE.mdと一緒に読める(CLAUDE.md とメモリ) - プロジェクトのファイルは、
.claude/の下(CLAUDE.md・.mcp.json・.worktreeincludeはプロジェクトのルート)に置く。ユーザーのファイルは~/.claude/に置き、全プロジェクトに効く - 組織が配る管理設定は、ほぼすべてのものより優先される
~/.claudeの記録は暗号化されない平文。保持期間はcleanupPeriodDaysで決まる
どのファイルを編集するか#
カスタマイズの種類ごとに、置き場所が違います。
| やりたいこと | 編集するもの | 範囲 | 詳しくは |
|---|---|---|---|
| Claude にプロジェクトの文脈と規約を与える | CLAUDE.md |
プロジェクトか全体 | CLAUDE.md とメモリ |
| 特定のツール呼び出しを許可・ブロックする | settings.json の permissions か hooks |
プロジェクトか全体 | 権限ルール、フックのリファレンス |
| ツール呼び出しの前後にスクリプトを動かす | settings.json の hooks |
プロジェクトか全体 | フックのリファレンス |
| セッションの環境変数を設定する | settings.json の env |
プロジェクトか全体 | 設定キー一覧 |
| 個人の上書きを git に入れない | settings.local.json |
プロジェクトだけ | 設定ファイルの仕組み |
/名前 で呼ぶプロンプトや機能を足す |
skills/<name>/SKILL.md |
プロジェクトか全体 | スキル |
| 専用のツールを持つ専門のサブエージェントを定義する | agents/*.md |
プロジェクトか全体 | サブエージェント |
| スクリプトから多数のサブエージェントを動かす | workflows/*.js |
プロジェクトか全体 | ワークフロー |
| MCP で外部ツールをつなぐ | .mcp.json |
プロジェクトだけ | MCP サーバーをつなぐ |
| Claude の応答の整え方を変える | output-styles/*.md |
プロジェクトか全体 | 出力スタイル |
補足
ファイルに書いた内容は、次のものに上書きされることがあります。組織が配った管理設定は、設定の優先順位の例外を除き、すべてに優先します。--permission-mode や --settings のような CLI フラグは、そのセッションの間 settings.json を上書きします。環境変数には、同等の設定より優先されるものがありますが、一部です(各変数は環境変数一覧で確かめる)。優先順位の全体は設定ファイルの仕組みにあります。
プロジェクトの範囲#
プロジェクトの範囲のファイルは、リポジトリの .claude/ の下にあります(CLAUDE.md・.mcp.json・.worktreeinclude はルート)。Git を使うなら、ほとんどをコミットしてチームで共有します。settings.local.json のように、Claude Code が設定を保存するときに gitignore されるものもあります。
ルートに置くもの#
| ファイル | Git | 役割と読み込み |
|---|---|---|
CLAUDE.md |
コミットする | Claude が毎セッション読むプロジェクトの指示。セッションの始めにコンテキストへ読み込まれる。リポジトリでの Claude の動き方を決める規約・よく使うコマンド・設計の文脈を置く。.claude/CLAUDE.md にも置ける |
.mcp.json |
コミットする | チームで共有するプロジェクト範囲の MCP サーバー。セッションの開始時にサーバーがつながり、ツールのスキーマは既定で遅延され、tool search で必要なときに読み込まれる。個人のサーバーは ~/.claude.json に置く |
.worktreeinclude |
コミットする | 新しい worktree にコピーする、gitignore されたファイルの一覧。Claude が --worktree・EnterWorktree ツール・サブエージェントの isolation: worktree で git worktree を作るときに読まれる |
CLAUDE.local.md |
コミットしない | このプロジェクトでの自分だけの好み。CLAUDE.md と一緒に読み込まれる。手で作り、.gitignore に足す |
AGENTS.md |
プロジェクトによる | プロジェクトのルート・.claude/・任意のディレクトリに置く、AI コーディングエージェント向けの指示。Claude Code は単独か CLAUDE.md と一緒に読める |
CLAUDE.mdは 200 行未満を目安にする。長くても全体を読み込むが、守られにくくなる。特定の作業にしか関係ないものは、スキルかパスを絞ったルールへ移す。セッションで/memoryを実行すると、CLAUDE.md を開いて編集できる.mcp.jsonは、秘密の値には${NOTION_TOKEN}のように環境変数を参照する。自分だけが要るサーバーはclaude mcp add --scope userで、.mcp.jsonではなく~/.claude.jsonに書く。置き場所はプロジェクトのルートで、.claude/の中ではない.worktreeincludeは.gitignoreの書き方で書く。worktree は新しいチェックアウトなので、.envのような追跡されないファイルは既定でない。パターンに一致し、かつ gitignore されているファイルだけがコピーされるので、追跡されているファイルが複製されることはない。git 専用で、別のバージョン管理向けに WorktreeCreate フックを設定していると読まれない(フックのスクリプトの中でコピーする)。デスクトップアプリの並列セッションにも適用される。worktree で並行作業を参照
.claude/ の中#
| ファイル | Git | 役割と読み込み |
|---|---|---|
settings.json |
コミットする | 権限・フック・環境変数・モデルの既定。グローバルの ~/.claude/settings.json を上書きし、ローカルの設定・CLI フラグ・管理設定がこれを上書きする。Claude が従うかにかかわらず強制される(CLAUDE.md は案内として読まれる点が違う) |
settings.local.json |
gitignore | このプロジェクトでの自分だけの設定の上書き。ユーザーが編集できる設定ファイルのうち最上位。CLI フラグと管理設定は引き続き優先される |
rules/ |
コミットする | トピックごとの指示。ファイルパスで絞ることもできる |
skills/ |
コミットする | 名前で呼ぶ、再利用できるプロンプト |
commands/ |
コミットする | 1 ファイルのプロンプト。スキルと同じ仕組み |
output-styles/ |
コミットする | チームで共有するなら、プロジェクト範囲の出力スタイル |
agents/ |
コミットする | 専用のコンテキストウィンドウを持つ専門のサブエージェント |
workflows/ |
コミットする | 多数のサブエージェントを動かすワークフローのスクリプト |
agent-memory/ |
コミットする | サブエージェントの永続メモリ |
settings.json:Bash の権限パターンはワイルドカードに対応し、Bash(npm test *)はnpm testで始まるどのコマンドにも一致する。permissions.allowのような配列の設定はすべての範囲をまたいで結合され、modelのような単一の値は、最も具体的な値が使われるsettings.local.json:Claude Code がこのファイルに設定を保存するとき、まだ無視していないリポジトリでは、グローバルの git の除外ファイルに**/.claude/settings.local.jsonを足す。その除外ファイルは、グローバルの git 設定のcore.excludesFileが絶対パスか~で始まるパスのときはそれ、そうでなければ$XDG_CONFIG_HOME/git/ignore、または~/.config/git/ignore。無視のルールをチームと共有するには、プロジェクトの.gitignoreにも足す。配列は範囲をまたいで結合され、modelのような単一の値はローカルの値が使われるrules/:paths:のないルールはセッションの始めに、paths:のあるルールは、一致するファイルを Claude が読む・書く・編集したときに読み込まれる。ルールは Claude が読む案内で、Claude Code が強制する設定ではない。確実にするにはフックか権限を使う。.claude/rules/frontend/react.mdのようなサブディレクトリも自動で見つかる。CLAUDE.md が 200 行に近づいたら、ルールへの分割を始めるskills/:各スキルは SKILL.md と必要な補助ファイルを持つフォルダで、/skill-nameで呼ぶか、Claude がタスクに合うと判断したときに呼ばれる。既定では自分も Claude も呼べる。disable-model-invocation: trueで自分だけの作業(/deployなど)にでき、user-invocable: falseで/のメニューから隠しつつ Claude には呼ばせられるcommands/:commands/deploy.mdは、skills/deploy/SKILL.mdのスキルと同じように/deployを作り、どちらも Claude が自動で呼べる。スキルはディレクトリと SKILL.md を使うので、参考資料・テンプレート・スクリプトを一緒に束ねられる。スキルとコマンドが同じ名前なら、スキルが優先される。新しいものはたいていスキルにし、コマンドは引き続き使えるoutput-styles/:出力スタイルは個人のものが多いので、たいていは~/.claude/output-styles/にある。チームで共有するスタイル(全員が使うレビューモードなど)だけここに置くagents/:各 Markdown ファイルが、自分のシステムプロンプト・ツールへのアクセス・場合によっては自分のモデルを持つサブエージェントを定義する。新しいコンテキストウィンドウで動くので、メイン会話をきれいに保てる。tools:で、エージェントごとにツールを制限する。@を打ってオートコンプリートからエージェントを選ぶと、直接委任できるworkflows/:各.jsファイルは、サブエージェントを生成・調整するためにランタイムが実行するスクリプトのワークフロー。ゼロから書くのではなく、Claude が書き、/workflowsから保存する。起動時に読み込まれ、各ファイルが/<name>のコマンドになる。/workflowsで実行を s で保存すると作れる。同じ名前なら、プロジェクトのワークフローが~/.claude/workflows/の個人のものより優先されるagent-memory/:frontmatter にmemory: projectを持つサブエージェントには、ここに専用のメモリのディレクトリができる。メイン会話の自動メモリ(~/.claude/projects/)とは別で、各サブエージェントが自分の MEMORY.md を読み書きする。memory:フィールドを設定したサブエージェントのときだけ作られる。バージョン管理から外すならmemory: local(.claude/agent-memory-local/に書く)、プロジェクトをまたぐならmemory: user(~/.claude/agent-memory/に書く)。サブエージェントの起動時に、その MEMORY.md の先頭 200 行(25KB まで)がシステムプロンプトに読み込まれる
構成の例です。
rules/testing.md:paths:に.test.tsや.test.tsxに一致するグロブを書くと、テストファイルを扱うときだけ読み込まれ、それ以外のファイルでは読み込まれないrules/api-design.md:paths:がsrc/api/の下に一致するグロブなら、API のルートを編集するときだけ読み込まれるskills/<name>/SKILL.md:スキルのエントリポイント。disable-model-invocation: trueなら自分だけが起動できる。!の後ろにバッククォートで囲んだコマンドを書くと、シェルコマンドを実行し、出力をプロンプトに差し込む。$ARGUMENTSは、スキル名の後ろに打った内容に置き換わる。Claude にはスキルのディレクトリのパスが見えるので、checklist.mdのような束ねたファイルに触れれば、Claude がそれを読める。bash 注入のコマンドの中のスクリプトには${CLAUDE_SKILL_DIR}のプレースホルダーを使うskills/<name>/checklist.md:スキルに束ねる補助のファイル(参考資料・テンプレート・スクリプト)。スキルの実行中に、必要になったとき Claude が読むcommands/fix-issue.md:/fix-issue 123と打つと、!の行がgh issue view 123をシェルで実行し、出力が、Claude が見る前にプロンプトへ差し込まれる。位置引数には$0・$1などを使えるagents/code-reviewer.md:読み取り専用のツール(Read・Grep・Glob)に制限したサブエージェントの例。frontmatter のdescriptionが、Claude がいつ自動で委任するかを決める。本文がサブエージェントのシステムプロンプトになるagent-memory/<agent-name>/MEMORY.md:サブエージェント自身が作って更新するので、自分で書かない。各タスクの始めに読み、学んだことを書き戻す
ユーザーの範囲#
ホームディレクトリのファイルは、すべてのプロジェクトに効き、どのリポジトリにもコミットされません。
| ファイル | 役割と読み込み |
|---|---|
~/.claude.json |
アプリの状態と UI の設定。OAuth のセッション・プロジェクトごとの信頼の判断・個人の MCP サーバー・UI のトグル。セッションの開始時に好みと MCP サーバーを読み、/config で設定を変えたり信頼の確認を承認したりすると書き戻す。たいてい直接編集せず /config で管理する |
~/.claude/CLAUDE.md |
すべてのプロジェクトに共通する個人の好み。すべてのセッションの始めに読み込まれ、プロジェクトの CLAUDE.md と一緒にコンテキストに入る。指示が食い違うときは、プロジェクトの指示が優先される |
~/.claude/settings.json |
すべてのプロジェクトの既定の設定。プロジェクトとローカルの settings.json が、同じキーを上書きする |
~/.claude/keybindings.json |
キーボードショートカットのカスタマイズ。セッションの始めに読まれ、編集するとホットリロードされる |
~/.claude/themes/*.json |
カスタムのカラーテーマ。セッションの始めに読まれ、ファイルが変わるとホットリロードされ、/theme に出る |
~/.claude/projects/ |
自動メモリ。Claude が自分のために書くメモ(プロジェクトごと) |
~/.claude/rules/ |
すべてのプロジェクトに適用されるユーザーレベルのルール |
~/.claude/skills/ |
どのプロジェクトでも使える個人のスキル |
~/.claude/commands/ |
どのプロジェクトでも使える個人の 1 ファイルのコマンド |
~/.claude/output-styles/ |
Claude の動き方を調整する、独自の指示の集まり |
~/.claude/agents/ |
どのプロジェクトでも使える個人のサブエージェント |
~/.claude/workflows/ |
どのプロジェクトでも使える個人のワークフロー |
~/.claude/agent-memory/ |
memory: user を持つサブエージェントの永続メモリ |
~/.claude.json:IDE のトグル(autoConnectIde・externalEditorContext)は settings.json ではなくここにある。projectsキーは、信頼ダイアログの承認や直近のセッションの指標のようなプロジェクトごとの状態を追う。セッション中に承認した権限ルールは、.claude/settings.local.jsonに書かれる。ここの MCP サーバーは自分だけのもので、ユーザー範囲は全プロジェクト、ローカル範囲はプロジェクトごと(コミットされない)。チームで共有するサーバーは、プロジェクトのルートの.mcp.jsonに置く~/.claude/CLAUDE.md:全プロジェクトで、そのプロジェクトの CLAUDE.md と一緒にコンテキストへ入るので、短く保つ。応答のスタイル・コミットの形式・個人の慣習など、どこでも当てはまる好みに向く~/.claude/settings.json:プロジェクトのsettings.jsonと同じキー(権限・フック・モデル・環境変数ほか)。毎回許可する権限・好みのモデル・どのプロジェクトでも動く通知フックなど、どこでも欲しい設定を置く。設定には優先順位があり、プロジェクトのsettings.jsonが、ここで設定した同じキーを上書きする。グローバルとプロジェクトのファイルの両方がコンテキストに読み込まれる CLAUDE.md と違い、キーごとにマージされる~/.claude/keybindings.json:対話の CLI のキーボードショートカットを割り当て直す。/keybindingsで、スキーマの参照つきでファイルを作るか開く。Ctrl+C・Ctrl+D・Ctrl+M・Caps Lock は予約されていて割り当て直せない。詳しくはキーボードショートカット~/.claude/themes/*.json:各.jsonが、組み込みのbaseのプリセットと、色のトークンを上書きするoverridesのマップからなるカスタムテーマを定義する。/themeで対話的に作るか、JSON を手で書く。カスタムテーマを選ぶと、テーマの設定としてcustom:<slug>が保存される。詳しくはターミナル・表示・音声入力~/.claude/projects/:自動メモリで、プロジェクトごとにリポジトリのパスをキーにしたメモリのディレクトリがある。<project>/memory/のMEMORY.mdがセッションの始めに読み込まれる(先頭 200 行か 25KB の先に来るほう)。debugging.md・architecture.md・build-commands.mdのようなトピックファイルは、MEMORY.mdが長くなったとき Claude が作り、関係する作業が出たときだけ読み返す。ふつうの Markdown で、いつでも編集・削除できる。既定でオン。/memoryか設定のautoMemoryEnabledで切り替える~/.claude/rules/:プロジェクトの.claude/rules/と同じだが、どこでも適用される。個人のコードスタイルやコミットメッセージの形式のような、すべての作業にわたって欲しい慣習に使う~/.claude/skills/:自分用に作って、どこでも動くスキル。プロジェクトのスキルと同じ構造(SKILL.md のあるフォルダ)で、単一のプロジェクトではなくユーザーアカウントに紐づく~/.claude/commands/:プロジェクトのcommands/と同じだが、ユーザーアカウントに紐づく。各 Markdown ファイルが、どこでも使えるコマンドになる~/.claude/output-styles/:各 Markdown ファイルが出力スタイルを定義する。既定では組み込みのソフトウェアエンジニアリングのタスクの指示も置き換える指示の集まりで、コーディング以外の用途へ Claude Code を合わせたり、教える・レビューするモードを足したりするのに使う。/output-style・/config・設定のoutputStyleキーで選ぶ。ここのスタイルはすべてのプロジェクトで使え、同じ名前のプロジェクトのスタイルが優先される。組み込みのスタイルは Default・Proactive・Concise・Explanatory・Learning で、独自のものはここに置く。frontmatter のkeep-coding-instructions: trueで、既定のタスクの指示を残したまま足せる。セッション中にスタイルを切り替えると次のメッセージから適用される。端末では、セッション中に作った・編集したスタイルのファイルは再起動の後に拾われる。詳しくは出力スタイル~/.claude/output-styles/teaching.md:各タスクの後に「Why this approach」のメモを足し、10 行未満の変更は自分で書かずにTODO(human)のマーカーを残すスタイルの例。設定のoutputStyleを、.mdを除いたファイル名(frontmatter にnameがあればそれ)にして選ぶ~/.claude/agents/:ここで定義したサブエージェントは、すべてのプロジェクトで使える。形式はプロジェクトのエージェントと同じ~/.claude/workflows/:ここに保存したワークフローのスクリプトは、すべてのプロジェクトで使える。同じ名前のプロジェクトのワークフロー(.claude/workflows/)が優先される~/.claude/agent-memory/:frontmatter にmemory: userを持つサブエージェントが、プロジェクトをまたいで残る知識を保存する。プロジェクト範囲のサブエージェントのメモリは、.claude/agent-memory/を使う
そのほかの場所にあるもの#
| ファイル | 場所 | 役割 |
|---|---|---|
managed-settings.json |
システムレベルで、OS ごとに違う | 組織が強制する、上書きできない設定(狭い例外を除く)。置き場所と、Claude Code が使う管理ソースは組織への導入と管理設定にある |
| インストール済みのプラグイン | ~/.claude/plugins |
クローンしたマーケットプレイス・インストールしたプラグインのバージョン・インストール記録の installed_plugins.json・プラグインごとのデータ。claude plugin コマンドが管理する |
- claude.ai のアカウントから同期されたプラグインは、
~/.claude/plugins/synced/にダウンロードされる - マーケットプレイスの
commandソースからリンクモードでインストールしたプラグインは、コピーではなくリンクをここに保存し、プラグインのファイルは、コマンドが出力するディレクトリに残る。commandソースは v2.1.229 以降が必要 - ローカルのパスから追加したマーケットプレイスで、相対パスで挙げたプラグインは、キャッシュのコピーではなく、ソースのディレクトリからその場で読み込まれる
- 孤立したバージョンの掃除は、プラグインのキャッシュの説明にある。詳しくはプラグインを使うとプラグインのリファレンス
ファイルの一覧(範囲・コミット・役割)#
| ファイル | 範囲 | コミット | 役割 |
|---|---|---|---|
CLAUDE.md |
プロジェクトと全体 | ✓ | 毎セッション読み込まれる指示 |
rules/*.md |
プロジェクトと全体 | ✓ | トピックごとの指示。必要ならパスで絞る |
settings.json |
プロジェクトと全体 | ✓ | 権限・フック・環境変数・モデルの既定 |
settings.local.json |
プロジェクトだけ | 自分の上書き。Claude Code が設定を保存するとき gitignore される | |
.mcp.json |
プロジェクトだけ | ✓ | チームで共有する MCP サーバー |
.worktreeinclude |
プロジェクトだけ | ✓ | 新しい worktree にコピーする gitignore されたファイル |
skills/<name>/SKILL.md |
プロジェクトと全体 | ✓ | /name か自動で呼ぶ再利用できるプロンプト |
commands/*.md |
プロジェクトと全体 | ✓ | 1 ファイルのプロンプト。スキルと同じ仕組み |
output-styles/*.md |
プロジェクトと全体 | ✓ | Claude の動き方を調整する、独自の指示の集まり |
agents/*.md |
プロジェクトと全体 | ✓ | 自分のプロンプトとツールを持つサブエージェントの定義 |
workflows/*.js |
プロジェクトと全体 | ✓ | Claude が書き、/workflows から保存する動的ワークフローのスクリプト。各ファイルが /<name> のコマンドになる |
agent-memory/<name>/ |
プロジェクトと全体 | ✓ | サブエージェントの永続メモリ |
~/.claude.json |
全体だけ | アプリの状態・OAuth・UI のトグル・個人の MCP サーバー | |
projects/<project>/memory/ |
全体だけ | 自動メモリ:セッションをまたぐ Claude 自身のメモ | |
keybindings.json |
全体だけ | カスタムのキーボードショートカット | |
themes/*.json |
全体だけ | カスタムのカラーテーマ |
ファイルごとの frontmatter フィールド#
スキル・コマンドのファイル・サブエージェント・出力スタイル・ルールは、ファイルの先頭の YAML frontmatter から設定を読み、それぞれが自分のフィールドの組を受け付けます。
| ファイル | frontmatter のフィールド |
|---|---|
skills/<name>/SKILL.md |
name、description、when_to_use、argument-hint、arguments、disable-model-invocation、user-invocable、allowed-tools、disallowed-tools、model、effort、context、agent、background、hooks、paths、shell、metadata、license、compatibility |
commands/*.md |
スキルのフィールドから name と paths を除いたもの |
agents/*.md |
name、description、tools、disallowedTools、model、permissionMode、maxTurns、skills、mcpServers、hooks、memory、background、effort、isolation、color、initialPrompt、omitClaudeMd、experimental |
output-styles/*.md |
name、description、keep-coding-instructions、force-for-plugin |
rules/*.md |
paths |
- 各フィールドの意味は、スキルはスキル、サブエージェントはサブエージェント、出力スタイルは出力スタイル、ルールはCLAUDE.md とメモリにある
- プラグインに同梱したエージェントは、サブエージェントのフィールドの一部だけを尊重する
- 設定・フック・ファイルが効かないときの、調べるコマンドと症状から引く表は設定のデバッグにある
アプリケーションデータ#
自分で書く設定のほかに、~/.claude には、セッション中に Claude Code が書くデータがあります。これらのファイルは平文です。ツールを通ったものはすべて、ディスク上の記録(transcript)に書かれます(ファイルの内容・コマンドの出力・貼り付けたテキスト)。
自動で削除されるもの#
次のパスのファイルは、保持期間を安全に決められる限り、cleanupPeriodDays より古くなると Claude Code が削除します。既定は 30 日で最小は 1 です。0 を設定すると検証エラーになります。同じ期間の区切りが、孤立した worktree の自動削除にも適用されます(worktree で並行作業)。
~/.claude/ の下のパス |
内容 |
|---|---|
projects/<project>/<session>.jsonl |
会話の全記録:すべてのメッセージ・ツール呼び出し・ツールの結果 |
projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl、projects/<project>/<session>.jsonl.superseded-<timestamp> |
上書きや削除をせずに Claude Code が脇に置いた、そのセッションの前の記録。セッションピッカーには出ない |
projects/<project>/<session>/subagents/ |
サブエージェントの会話の記録。親のセッションの記録が期限切れになるとき一緒に消える |
projects/<project>/<session>/tool-results/ |
別ファイルへ溢れた大きなツール出力と、MCP ツールが返す画像のフルサイズのコピー |
file-history/<session>/ |
Claude が変更したファイルの編集前のスナップショット。チェックポイントと巻き戻しに使う。直近 100 のチェックポイントのスナップショットを持ち、保持しているどのチェックポイントも参照しないスナップショットのファイルは、各ファイルの最初のスナップショットを除いて削除される |
plans/ |
プランモードで書かれたプランのファイル |
debug/ |
セッションごとのデバッグログ。--debug で始めたり /debug を実行したりして、デバッグログがオンのときに書かれる |
paste-cache/ |
大きな貼り付けの内容 |
image-cache/<session>/ |
v2.1.274 以前の Claude Code が保存した添付画像。後のバージョンは、貼り付けや添付した画像を ~/.claude の外、CLAUDE_CODE_TMPDIR が決める一時ディレクトリの下の、セッションごとの images/ に保存する。掃除は、ここにある他のセッションの残りのディレクトリを、古さにかかわらず消す |
uploads/<session>/ |
Remote Control のセッションにメッセージを送るときの、Web かモバイルアプリから添付したファイルと、モバイルアプリから添付した写真。クラウドセッションへの添付は、そのセッション自身のクラウド環境に保存され、自分のマシンにはない |
dev-mods/<session>/ |
そのセッションで Claude が書いた Mod |
session-env/ |
セッションごとの環境のメタデータ |
tasks/ |
タスクツールが書くタスクリスト。リストごとに 1 つのディレクトリ |
shell-snapshots/ |
起動時に取り込み、Bash ツールが各コマンドに適用するエイリアス・関数・シェルオプション。正常終了で消える。クラッシュで残ったものは掃除が消す |
backups/ |
Claude Code がファイルを書き換えるときにコピーする、~/.claude.json の以前のバージョン。新しい 5 つと、解析できなかったバージョンのコピーを残す |
feedback-bundles/ |
サードパーティプロバイダーか Anthropic の認証情報がないときに /feedback が書く、Anthropic のアカウント担当に送るための、秘匿処理をした記録のアーカイブ |
feedback/drafts/ |
/feedback でレビューを待つ、Claude が下書きしたフィードバックのキュー。cleanupPeriodDays か 30 日の短いほうの後に掃除される。キューが 10 件の上限に達していると、Claude Code が一番古い下書きを消して余地を作る |
usage-data/ |
/insights が書く report.html と日時つきのレポートのコピー、それらを作るためのセッションごとの分析データのキャッシュ |
skills/.trash/、plugins/.trash/ |
claude.ai の同期が取り除いたスキルとプラグイン(claude.ai でオフにした・同期をやめたときなど)。掃除が消すまで、復元できるようにここにファイルが残る |
plugins/installed_plugins.set-aside.<date>.<hash>.json、plugins/installed_plugins.unreadable.<date>.<hash>.kept |
installed_plugins.json を書き換える前に Claude Code が作る日付つきのコピー:落としたインストール記録と、読めなかったファイルの内容 |
todos/、statsig/、logs/ |
古いバージョンの旧ディレクトリ。もう書かれない。掃除は中身を消し、その後に空のディレクトリを消す |
sessions/・自動メモリ・Claude Desktop と Cowork の記録は、それぞれ別の保持規則に従います。
sessions/:実行中のセッションごとに小さなファイルを 1 つ持ち、同時のセッションとクラッシュの検出に使う。期間による掃除の対象ではなく、セッションが終わると Claude Code が各ファイルを消し、クラッシュの残りは次の起動で消す- 自動メモリ:掃除は、プロジェクトの自動メモリのディレクトリ
projects/<project>/memory/のメモリファイルを消さない。Claude Code がそのディレクトリを消すのは、保持期間のあいだずっと空だったときだけ。v2.1.228 より前は、掃除がメモリのディレクトリの中のフォルダをセッションのデータとして扱い、その下の古いファイルを消すことがあった - Claude Desktop と Cowork の記録:Claude Desktop か Cowork で始めた、または最後に続けたセッションの記録は、どれだけ古くても Claude Code が残す。この記録に期間の上限を付けるには
desktopSessionCleanupPeriodDaysを設定する。管理設定がcleanupPeriodDaysを設定しているときは、Claude Code はその期間の後にこれらの記録を消す。v2.1.248 以降が必要で、それ以前のバージョンはcleanupPeriodDaysの後に消す
期間による掃除を Claude Code が飛ばす場合は次のとおりです。
- ベアモード:
claude -pを--bareで動かすと、そのセッションでは掃除をしない - 掃除の一時停止:保持期間を安全に決められないとき、保持の掃除を止める。
retention_sweepイベントが、止める構成を 1 つずつ挙げる(利用状況の計測)。原因が、読めない・解析できない設定ファイル、またはcleanupPeriodDaysかdesktopSessionCleanupPeriodDaysを明示して設定している設定のエラーのときは、設定のエラーを直すまで/statusに警告も出る。管理設定がcleanupPeriodDaysを与えるときは、どちらの場合も、Claude Code は管理された値で掃除を動かす
セッションのスクラッチパッドのディレクトリ#
スクラッチパッドは、Claude Code が一時的なファイル(途中の結果・補助スクリプト・プロジェクトに属さない下書き)のために Claude に与える、セッションごとのディレクトリです。Claude が「スクラッチパッドに保存した」と言うとき、ファイルはここにあります。Claude は /tmp の代わりにこれを使い、権限の確認なしに、ここでファイルを作り・編集し・読めます。
スクラッチパッドは ~/.claude ではなく、Claude Code の一時ディレクトリの下にあります。現在のセッションのパスは、プラットフォームごとに次のとおりです。
| プラットフォーム | パス |
|---|---|
| macOS | /private/tmp/claude-<uid>/<project>/<session-id>/scratchpad/ |
| Linux | /tmp/claude-<uid>/<project>/<session-id>/scratchpad/。システムが設定していれば $TMPDIR の下の同じ形 |
| Windows | %TEMP%\claude\<project>\<session-id>\scratchpad\ |
<project>は、作業ディレクトリのパスの、英数字以外の文字をすべて-に置き換えたもの(-Users-you-my-projectなど)。CLAUDE_CODE_TMPDIRを設定すると、木はそのディレクトリの下に移る。フックは現在のセッションのパスをscratchpad_dirとして受け取る- スクラッチパッドのファイルは、セッションの記録と同じだけ残る。保持の掃除が記録を消すときにディレクトリも消し、
claude purgeは一時ディレクトリに触れない。ディレクトリはシステムの一時領域の下にあるので、再起動のときなど、オペレーティングシステムが消すこともある。Claude がそこに書いたものを残したいなら、プロジェクトに移すよう Claude に頼む - スクラッチパッドがあるセッションは、次のすべてが当てはまるときだけ:API キーではなく claude.ai アカウントでサインインしている、セッションが Anthropic API を使っている(Amazon Bedrock・Google Cloud の Agent Platform・Microsoft Foundry ではない)、
enableArtifactがfalseに設定されていない
自分で削除するまで残るもの#
保持の掃除は、次のパスを消しません。ログアウトしたときに消す 2 つのキャッシュを除き、自分で削除するまで Claude Code は残します。
~/.claude/ の下のパス |
内容 |
|---|---|
history.jsonl |
打ったすべてのプロンプトと、時刻とプロジェクトのパス。上矢印での呼び戻し・Ctrl+R の履歴検索・! のシェルコマンドの補完に使う |
stats-cache.json |
/usage が出す、集計したトークンとコストの数 |
remote-settings.json |
組織のサーバー管理設定のキャッシュのコピー。組織が何も設定していないときは {}。セッションがそれを取得するときだけある。Claude Code は起動時とセッション中の 1 時間ごとに更新を確かめ、ログアウトしたときに消す |
cache/changelog.md |
/release-notes が出す、Claude Code の変更履歴のキャッシュのコピー。裏で更新される |
policy-limits.json |
組織の機能ポリシー設定のキャッシュ。一部のアカウントの種類にだけある。自動で更新される。policy-limits.json.stamp.json の補助ファイルが、キャッシュがどのアカウントか API キーに属するかを記録する。ログアウトしたとき、Claude Code は両方のファイルを消す |
使う機能によって、~/.claude/ には、「アプリケーションデータ」の表に載っていないファイルも現れます。そのうち、キャッシュとロックファイルは消しても安全です。次の状態ファイルは残します。
.credentials.json:ログインの認証情報agent-memory/:サブエージェントのメモリjobs/とdaemon/:バックグラウンドセッションの状態
平文での保存#
記録と履歴は、保存時に暗号化されません。守るのは OS のファイルの権限だけです。ツールが .env ファイルを読んだり、コマンドが認証情報を出力したりすると、その値が projects/<project>/<session>.jsonl に書かれます。露出を減らす方法は次のとおりです。
cleanupPeriodDaysを下げて、記録を保つ期間を短くするdesktopSessionCleanupPeriodDaysを設定して、Claude Desktop と Cowork の記録にも期間の上限を付ける- 環境変数
CLAUDE_CODE_SKIP_PROMPT_HISTORYを設定すると、どのモードでも記録とプロンプト履歴を書かない。非対話モードでは代わりに、-pと一緒に--no-session-persistenceを渡すか、TypeScript の Agent SDK でpersistSession: falseを設定できる(Python SDK に同等の選択肢はない) - 権限ルールで、認証情報のファイルの読み取りを拒否する
ローカルデータを消す#
claude purge を実行すると、1 つのプロジェクトについて Claude Code が持つ状態を削除できます(v2.1.288 より前は claude project purge でした)。消すのは次のものです。
projects/の下の記録と自動メモリ- セッションごとの
tasks/・debug/・file-history/の項目 history.jsonlの中の、そのプロジェクトのプロンプトの行~/.claude.jsonの、そのプロジェクトの項目
そのプロジェクトのセッションで貼り付けた・添付した画像と、各セッションのスクラッチパッドは、~/.claude ではなく Claude Code の一時ディレクトリの下にあるので、purge は消しません。保持の掃除は、画像が cleanupPeriodDays より古くなれば消します。purge したセッションのスクラッチパッドは、自分で消すか、OS が一時ディレクトリを消すまで残ります。
- コマンドは、削除の計画をすべて出し、何かを消す前に確認する
- 次の例は、
~/work/my-repoをプレースホルダーとして使う。自分のプロジェクトのパスに置き換える。パスに一致する状態がなければ、エラーを出して終了ステータス 1 で終わる
何も消さずに計画を見ます。
claude purge ~/work/my-repo --dry-run
計画は、一致する項目と、含める理由を並べます。
Purge plan for /home/user/work/my-repo:
dir: /home/user/.claude/projects/-home-user-work-my-repo
project transcripts (.jsonl) and memory/
config: projects["/home/user/work/my-repo"]
project entry in ~/.claude.json (trust, history, MCP servers)
filter: /home/user/.claude/history.jsonl
12 prompt(s) typed in this project
shell-snapshots/ are not project-scoped and will not be touched
backups/ may still contain this project entry in old .claude.json snapshots (/home/user/.claude/backups); at most 5 are kept and they rotate out automatically
Dry run: 3 item(s) would be deleted.
1 回の確認つきで削除します。
claude purge ~/work/my-repo
- 同じ計画を出した後、
Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]と聞き、yと答えたときだけ削除する。パスを省くと、対話の一覧からプロジェクトを選べる - スクリプト向けに確認を飛ばすには
--yes - パスの代わりに
--allを渡すと、すべてのプロジェクトの状態を一度に purge し、history.jsonlを絞り込まずにそのまま消す。-iを渡すと、削除の計画を 1 項目ずつ進める shell-snapshots/とbackups/は、プロジェクトに紐づかないので、コマンドは触らず、計画の出力で警告する
上のアプリケーションデータのパスは、残すべき状態ファイルを除き、手で削除することもできます。新しいセッションには影響しません。過去のセッションで失うものは次のとおりです。
| 削除するもの | 失うもの |
|---|---|
~/.claude/projects/ |
過去のセッションの再開・続行・巻き戻し、すべてのプロジェクトの自動メモリ |
~/.claude/history.jsonl |
上矢印のプロンプトの呼び戻し・Ctrl+R の履歴検索・! のシェルコマンドの補完 |
~/.claude/paste-cache/ |
呼び戻したプロンプトの貼り付けテキスト |
~/.claude/uploads/ |
過去の Remote Control セッションがパスで参照する添付 |
~/.claude/file-history/ |
過去のセッションのチェックポイントの復元 |
~/.claude/stats-cache.json |
/usage が出す過去の合計 |
~/.claude/usage-data/ |
過去の /insights のレポートと、それを作るための分析データのキャッシュ |
~/.claude/feedback-bundles/ |
まだ Anthropic のアカウント担当に送っていない、フィードバックとバグ報告のアーカイブ |
~/.claude/feedback/drafts/ |
まだ送っていない、Claude が下書きしたフィードバック |
~/.claude/remote-settings.json |
何も失わない。次の起動で取得し直される |
~/.claude/cache/changelog.md |
何も失わない。裏で更新される |
~/.claude/policy-limits.json |
何も失わない。自動で更新される |
~/.claude/tasks/ |
再開したセッションが拾うタスクリスト |
~/.claude/skills/.trash/、~/.claude/plugins/.trash/ |
Claude Code が取り除いた同期したスキルとプラグインを復元する機会 |
~/.claude/plugins/installed_plugins.set-aside.<date>.<hash>.json、~/.claude/plugins/installed_plugins.unreadable.<date>.<hash>.kept |
Claude Code が落とした・読めなかったプラグインのインストール記録のコピー。読み戻すものはない |
~/.claude/debug/、~/.claude/plans/、~/.claude/session-env/、~/.claude/shell-snapshots/、~/.claude/backups/ |
ユーザーに見えるものは何もない |
~/.claude/todos/、~/.claude/statsig/、~/.claude/logs/、~/.claude/image-cache/ |
何も失わない。現在のバージョンは書かない旧ディレクトリ |
注意
~/.claude.json、~/.claude/settings.json、~/.claude/plugins/ は削除しません。認証・好み・インストール済みのプラグインを持っています。
公式ドキュメント(英語)
2026年10月5日時点の内容をもとに、日本語でまとめています。