Skip to content

探索 .claude 目录

Claude Code 从项目根目录和用户主目录的 ~/.claude 中读取指令、设置、skills、子代理和记忆。将项目级文件提交到 git 以在团队间共享;~/.claude 中的文件则是你个人的全局配置。最常用的文件是 CLAUDE.mdsettings.json,其他如 agents、skills、rules 按需添加。用 /context/memory 命令可实时查看加载状态。

Claude Code 从项目目录和主目录的 ~/.claude 读取指令、设置、skills、子代理和记忆。将项目文件提交到 git 与团队共享;~/.claude 中的文件是适用于你所有项目的个人配置。

如果设置了 CLAUDE_CONFIG_DIR,本文提到的所有 ~/.claude 路径都会放在该环境变量指定的目录下。

大多数用户只需编辑 CLAUDE.mdsettings.json。其余目录是可选的:按需添加 skills、rules 或子代理。


CLAUDE.md 最佳实践

CLAUDE.md 是项目指令,每个会话开始时都会完整加载到上下文中。把团队的约定、常用命令和架构上下文放在这里,让 Claude 和你的团队基于相同的假设工作。

编写技巧

  • 控制在 200 行以内。更长的文件依然会完整加载,但可能降低遵循度
  • 如果某些内容只在特定任务中重要,把它移到 skill 或受路径限制的 rule 中,按需加载
  • 列出你最常运行的命令(如 build、test、format),这样你就不用每次都拼写出来
  • 在会话中运行 /memory 可以直接打开并编辑 CLAUDE.md
  • 如果想保持项目根目录整洁,放在 .claude/CLAUDE.md 同样有效

示例(TypeScript + React 项目)

markdown
# Project conventions

## Commands
- Build: `npm run build`
- Test: `npm test`
- Lint: `npm run lint`

## Stack
- TypeScript with strict mode
- React 19, functional components only

## Rules
- Named exports, never default exports
- Tests live next to source: `foo.ts` -> `foo.test.ts`
- All API routes return `{ data, error }` shape

隐藏或系统级文件

除了你手动编写的文件,还有几个相关文件:

文件位置用途
managed-settings.json系统级(因 OS 而异)企业强制下发的设置,用户无法覆盖。见服务器管理设置
CLAUDE.local.md项目根目录你个人在该项目的私有偏好,与 CLAUDE.md 一起加载。手动创建并加入 .gitignore
已安装插件~/.claude/plugins/克隆的市场、安装的插件版本和各插件数据,由 claude plugin 命令管理。见插件缓存

~/.claude 还保存 Claude Code 运行产生的数据:文字稿、提示语历史、文件快照、缓存和日志。


文件参考总表

项目级文件存放在你仓库的 .claude/ 目录下(CLAUDE.md.mcp.json.worktreeinclude 在根目录)。全局级文件存放在 ~/.claude/ 中,应用于所有项目。

文件作用域提交到 git用途说明参考文档
CLAUDE.md项目与全局每个会话都会加载的指令Memory
rules/*.md项目与全局特定主题的指令,可加路径限制Rules
settings.json项目与全局权限、hooks、环境变量、模型默认值Settings
settings.local.json仅项目你个人的配置覆盖,自动被 git 忽略Settings 作用域
.mcp.json仅项目团队共享的 MCP 服务器配置MCP 作用域
.worktreeinclude仅项目创建新 worktree 时要复制的 git 忽略文件Worktrees
skills/<name>/SKILL.md项目与全局可通过 /name 或自动触发的可复用提示语Skills
commands/*.md项目与全局单文件形式的提示语;机制同 skillsSkills
output-styles/*.md项目与全局自定义系统提示词片段Output styles
agents/*.md项目与全局自带提示语和工具的子代理定义Subagents
agent-memory/<name>/项目与全局子代理的持久化记忆持久化记忆
~/.claude.json仅全局应用状态、OAuth、UI 开关、个人 MCP 服务器全局配置
projects/<project>/memory/仅全局自动记忆:Claude 跨会话记给自己的笔记Auto memory
keybindings.json仅全局自定义键盘快捷键Keybindings

检查实际加载了什么

要查看当前会话实际加载了哪些文件,使用以下命令:

命令显示内容
/context按类别的 Token 用量:系统提示词、记忆文件、skills、MCP 工具和消息
/memory当前会话已加载的 CLAUDE.md 和记忆文件列表

常见问题

Q: .claude 目录需要提交到 Git 吗?

A: 建议按内容分类:CLAUDE.mdskills/agents/ 等配置文件应提交(团队共享);settings.local.jsontodos/projects/ 等本地状态文件加入 .gitignore。详细的 gitignore 推荐见本文末尾。

Q: 多个项目可以共享同一套 CLAUDE.md 配置吗?

A: 可以通过 @import 语法导入共享配置文件,或在用户级别的 ~/.claude/CLAUDE.md 中写通用规则,在项目级别的 CLAUDE.md 中只写项目特有的内容。

Q: .claude/memory/ 目录里的文件是什么?

A: 这是 Claude 的自动记忆目录,Claude 会把它从对话中学到的用户偏好、项目约定等记录在这里,下次会话时自动加载。你可以直接编辑这些文件来修正记忆内容,也可以运行 /memory 命令查看当前加载了哪些记忆。