是什么
Claude Code 从两个位置读取配置:项目级 .claude/ 目录(提交到 git,团队共享)和用户级 ~/.claude/ 目录(本地私有,跨项目生效)。理解这个目录结构是调试配置问题和管理持久化数据的基础。
核心机制
项目级文件(提交到 git):
| 文件/目录 | 作用 | 加载时机 |
|---|---|---|
CLAUDE.md | 项目指令,每次会话加载 | 会话启动 |
.mcp.json | 团队共享的 MCP 服务器 | 会话启动 |
.claude/settings.json | 权限、hooks、环境变量 | 会话启动 |
.claude/settings.local.json | 个人覆盖(gitignored) | 会话启动,优先级最高 |
.claude/rules/*.md | 主题化规则,可按路径条件加载 | 会话启动或匹配文件时 |
.claude/skills/<name>/SKILL.md | 可复用工作流 | 按需调用 |
.claude/agents/*.md | 自定义 Subagent 定义 | 按需派生 |
.worktreeinclude | 创建 worktree 时复制的 gitignored 文件列表 | 创建 worktree 时 |
用户级文件(~/.claude/,本地私有):
| 文件/目录 | 作用 |
|---|---|
CLAUDE.md | 全局个人偏好,所有项目生效 |
settings.json | 全局默认设置 |
keybindings.json | 自定义键盘快捷键 |
themes/*.json | 自定义颜色主题 |
projects/<project>/memory/ | Auto Memory(Claude 自动写入) |
rules/ | 全局规则 |
skills/ | 全局个人 Skills |
agents/ | 全局个人 Subagents |
应用数据(自动清理,默认 30 天):
projects/<project>/<session>.jsonl:完整会话记录file-history/<session>/:文件编辑前的快照(用于 Checkpoint 回滚)plans/:plan 模式生成的计划文件
不要删除的文件:~/.claude.json(认证和偏好)、~/.claude/settings.json(全局设置)、~/.claude/plugins/(已安装插件)。
关键细节
settings.local.json优先级高于settings.json,Claude Code 首次写入时自动添加到~/.config/git/ignore- 数组类设置(如
permissions.allow)跨层级合并;标量设置(如model)取最具体的值 - 清理项目数据:
claude project purge ~/work/my-repo(会打印删除计划并请求确认) - Windows 上
~/.claude对应%USERPROFILE%\.claude,可用CLAUDE_CONFIG_DIR环境变量覆盖
关联
- memory — CLAUDE.md 和 Auto Memory 详细配置
- extend-claude-code — 各扩展文件的用途和选择
- permission-modes — settings.json 权限配置
- how-claude-code-works — 会话数据存储机制
实践要点
- 调试配置不生效时,先用
/memory检查哪些文件被加载了 - 个人偏好放
settings.local.json(gitignored),团队规范放settings.json(提交) - Auto Memory 文件是纯 Markdown,可以直接编辑或删除
- 会话记录包含所有工具调用结果(包括文件内容),注意敏感信息保护
- 用
claude project purge清理项目数据,而不是手动删除文件