Appearance
探索 .claude 目录
Claude Code 从项目根目录和用户主目录的 ~/.claude 中读取指令、设置、skills、子代理和记忆。将项目级文件提交到 git 以在团队间共享;~/.claude 中的文件则是你个人的全局配置。最常用的文件是 CLAUDE.md 和 settings.json,其他如 agents、skills、rules 按需添加。用 /context 和 /memory 命令可实时查看加载状态。
Claude Code 从项目目录和主目录的 ~/.claude 读取指令、设置、skills、子代理和记忆。将项目文件提交到 git 与团队共享;~/.claude 中的文件是适用于你所有项目的个人配置。
如果设置了 CLAUDE_CONFIG_DIR,本文提到的所有 ~/.claude 路径都会放在该环境变量指定的目录下。
大多数用户只需编辑 CLAUDE.md 和 settings.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 | 项目与全局 | ✓ | 单文件形式的提示语;机制同 skills | Skills |
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.md、skills/、agents/ 等配置文件应提交(团队共享);settings.local.json、todos/、projects/ 等本地状态文件加入 .gitignore。详细的 gitignore 推荐见本文末尾。
Q: 多个项目可以共享同一套 CLAUDE.md 配置吗?
A: 可以通过 @import 语法导入共享配置文件,或在用户级别的 ~/.claude/CLAUDE.md 中写通用规则,在项目级别的 CLAUDE.md 中只写项目特有的内容。
Q: .claude/memory/ 目录里的文件是什么?
A: 这是 Claude 的自动记忆目录,Claude 会把它从对话中学到的用户偏好、项目约定等记录在这里,下次会话时自动加载。你可以直接编辑这些文件来修正记忆内容,也可以运行 /memory 命令查看当前加载了哪些记忆。