Claude Code 学习站

Claude Code .claude 目录结构完整参考

Claude Code 中 .claude 目录与 ~/.claude 目录下所有配置项(CLAUDE.md、settings.json、hooks、skills、commands、subagents、workflows、rules、auto memory)的路径、加载时机与字段速查。

本页目录24
AI 摘要 · 待复核整理于 2026-06-23原文:Explore the .claude directory(Anthropic)Claude Code目录结构配置参考开发工具
要点速览
  • `.claude/` 目录分为项目级(纳入版本控制)和全局级(`~/.claude/`),相同配置项在两处均有效
  • `settings.json` 有四个作用域:Managed > 命令行参数 > Local > Project > User,高优先级覆盖低优先级
  • `CLAUDE.md` 支持 `@path/to/import` 导入语法,`CLAUDE.local.md` 为个人本地指令(gitignored)
  • Hook 共 30+ 种事件(`PreToolUse`、`Stop`、`SessionStart` 等),支持 command / http / mcp_tool / prompt / agent 五种 handler 类型
  • Skills 新格式为 `.claude/skills/<name>/SKILL.md`,旧格式 `.claude/commands/<name>.md` 仍兼容,两者均以 `/name` 调用
  • 自动记忆存储于 `~/.claude/projects/<project>/memory/`,`MEMORY.md` 前 200 行或 25KB 在每次会话开始时自动加载

本文是对官方「Explore the .claude directory」参考页的中文整理,完整与最新内容以原文为准:https://code.claude.com/docs/en/claude-directory

概览

.claude 目录是 Claude Code 的配置中心,分为项目级your-project/.claude/)和全局级~/.claude/)两个作用域。官方页面以交互式文件树(ClaudeExplorer 组件)呈现全部配置项,涵盖:CLAUDE.mdsettings.jsonhooksskillscommandssubagentsworkflowsrules、auto memory。


目录结构速览

项目级(your-project/

路径badge加载时机说明
CLAUDE.mdcommitted每次会话启动时(完整加载)项目指令,团队共享;可用 @path 导入其他文件
CLAUDE.local.mdgitignored每次会话启动时个人项目本地指令,需加入 .gitignore
.claude/settings.jsoncommitted会话启动时项目级配置,可提交 Git
.claude/settings.local.jsongitignored会话启动时本地覆盖配置,不提交
.claude/hooks/(或在 settings.json 中配置)committed事件触发时Hook 脚本(也可在 settings.jsonhooks 字段中配置)
.claude/skills/<name>/SKILL.mdcommitted/name 调用或 Claude 自动判断相关时自定义技能(新格式)
.claude/commands/<name>.mdcommittedskills/(旧格式,仍兼容)旧版命令目录,等效于 skills/
.claude/agents/<name>.mdcommittedClaude 判断任务匹配时自定义子代理定义
.claude/workflows/<name>.jscommitted/name 调用时可复用的动态工作流脚本
.claude/rules/*.mdcommitted通用规则:会话启动时;路径限定规则:打开匹配文件时模块化规则文件,支持 YAML frontmatter paths 字段
.claude/memory/gitignoredMEMORY.md 前 200 行或 25KB 在会话启动时加载自动记忆存储目录

全局级(~/.claude/

路径说明
~/.claude/CLAUDE.md个人全局指令,对所有项目生效
~/.claude/settings.json全局配置(User 作用域)
~/.claude/hooks/全局 Hook
~/.claude/skills/全局技能
~/.claude/commands/全局旧版命令
~/.claude/agents/全局子代理
~/.claude/workflows/全局工作流脚本
~/.claude/rules/全局规则(在所有项目中应用个人偏好)
~/.claude/projects/<project>/memory/按项目存储的自动记忆(路径由 git 仓库路径派生)

CLAUDE.md 位置与作用域

加载顺序:从文件系统根向工作目录遍历,宽作用域先于窄作用域;同目录内 CLAUDE.local.md 附加在 CLAUDE.md 之后。

作用域路径用途共享对象
托管策略(Managed)macOS: /Library/Application Support/ClaudeCode/CLAUDE.md<br>Linux/WSL: /etc/claude-code/CLAUDE.md<br>Windows: C:\Program Files\ClaudeCode\CLAUDE.md组织级全局指令,IT 统一管理,不可被排除机器上所有用户
用户级(User)~/.claude/CLAUDE.md个人偏好,适用所有项目仅自己(所有项目)
项目级(Project)./CLAUDE.md./.claude/CLAUDE.md团队共享项目指令,通过版本控制分发通过 Git 共享
本地级(Local)./CLAUDE.local.md个人项目偏好,加入 .gitignore仅自己(当前项目)

@import 导入语法

CLAUDE.md 内用 @path/to/file 导入额外文件,导入内容在会话启动时展开。

  • 支持相对路径(相对于包含导入的文件)和绝对路径
  • 支持递归导入,最多 4 层
  • 用反引号包裹(如 `@README`)则不触发导入,保留为字面文本
  • Block 级 HTML 注释(<!-- ... -->)在注入上下文前被剥离,不消耗 token

托管策略中内嵌 CLAUDE.md

可将 CLAUDE.md 内容直接写入 managed-settings.jsonclaudeMd 字段,无需单独部署文件:

{
  "claudeMd": "Always run `make lint` before committing.\nNever push directly to main."
}

排除特定 CLAUDE.md

.claude/settings.local.json 中设置 claudeMdExcludes,使用 glob 匹配绝对路径:

{
  "claudeMdExcludes": [
    "**/monorepo/CLAUDE.md",
    "/home/user/monorepo/other-team/.claude/rules/**"
  ]
}

托管策略的 CLAUDE.md 不可被排除。


.claude/rules/ 路径限定规则

frontmatter 字段类型说明
pathsarrayglob 模式列表;无此字段则对所有文件通用加载
glob 示例匹配范围
**/*.ts任意目录下的 TypeScript 文件
src/**/*src/ 下所有文件
*.md项目根目录的 Markdown 文件
src/components/*.tsx特定目录下的 React 组件

用户级规则位于 ~/.claude/rules/,先于项目级规则加载(项目规则优先级更高)。


settings.json 字段参考

配置文件路径与作用域

作用域路径是否团队共享
User~/.claude/settings.json
Project.claude/settings.json是(可提交 Git)
Local.claude/settings.local.json否(gitignored)
Managed系统级(plist/registry/managed-settings.json是(IT 部署)

优先级(高 → 低):Managed → 命令行参数 → Local → Project → User

字段列表

字段名类型默认值说明
advisorModelstring未设置服务端 advisor 工具使用的模型
agentstring未设置将主线程作为指定子代理运行
agentPushNotifEnabledbooleanfalse允许主动推送通知(Remote Control)
allowAllClaudeAiMcpsboolean未设置使用托管 MCP 配置时加载 claude.ai 连接器
alwaysThinkingEnabledboolean未设置默认启用扩展思考
autoCompactEnabledbooleantrue上下文达限制时自动压缩
autoMemoryEnabledbooleantrue启用自动记忆
autoMemoryDirectorystring未设置自动记忆的自定义存储路径(绝对路径或 ~/ 开头)
autoScrollEnabledbooleantrue全屏渲染时跟随新输出
autoUpdatesChannelstring"latest"更新渠道:"stable""latest"
awaySummaryEnabledbooleantrue返回时显示离开期间的会话摘要
axScreenReaderboolean未设置渲染屏幕阅读器友好的输出
cleanupPeriodDaysnumber30会话文件保留天数
claudeMdstring未设置将 CLAUDE.md 内容直接嵌入 managed-settings.json(仅 managed 作用域生效)
claudeMdExcludesarray未设置排除特定 CLAUDE.md 文件(glob 匹配绝对路径),可跨层合并
disableAgentViewboolean未设置禁用后台代理和代理视图
disableAllHooksboolean未设置禁用所有 Hook 和自定义状态栏
disableArtifactboolean未设置禁用 Artifact 工具
disableAutoModestring未设置阻止 auto mode 激活
disableBundledSkillsboolean未设置禁用内置技能和工作流
disableClaudeAiConnectorsboolean未设置禁用 claude.ai MCP 连接器
disableRemoteControlboolean未设置禁用 Remote Control 功能
disableWorkflowsbooleanfalse禁用动态工作流
editorModestring"normal"键位绑定:"normal""vim"
effortLevelstring未设置推理强度:"low" / "medium" / "high" / "xhigh"
envobject{}所有会话的环境变量
fileCheckpointingEnabledbooleantrue编辑前快照文件(支持 /rewind
forceLoginMethodstring未设置限制登录方式:"claudeai""console"
languagestring未设置首选回复语言
modelstring未设置Claude Code 默认模型
outputStylestring未设置输出风格调整
permissions.allowarray未设置允许的操作(权限规则列表)
permissions.denyarray未设置拒绝的操作(权限规则列表)
preferredNotifChannelstring"auto"通知方式
respectGitignorebooleantrue文件选择器遵守 .gitignore

注:官方文档记录了 100+ 个字段,上表为最常用字段。完整列表以原文为准。


Hook 事件参考

Hook 配置于 settings.json(或 settings.local.json、managed settings、插件 hooks/hooks.json)的 hooks 字段下。

所有事件名

事件名触发时机
SessionStart新会话启动或恢复时
Setup--init-only--init/--maintenance 模式时
UserPromptSubmit用户提交 prompt 时
UserPromptExpansion用户命令展开为 prompt 时
PreToolUse工具执行前
PermissionRequest出现权限对话框时
PermissionDeniedauto mode 拒绝工具时
PostToolUse工具成功执行后
PostToolUseFailure工具执行失败后
PostToolBatch并行工具调用全部完成后
StopClaude 完成响应时
SubagentStart子代理启动时
SubagentStop子代理完成时
TaskCreatedTaskCreate 创建任务时
TaskCompleted任务标记完成时
TeammateIdle团队代理即将空闲时
Notification发送通知时
MessageDisplay助手文本显示时
ConfigChange会话期间配置文件变更时
CwdChanged工作目录变更时
FileChanged被监视文件在磁盘上变更时
PreCompact上下文压缩前
PostCompact上下文压缩后
WorktreeCreateworktree 创建时
WorktreeRemoveworktree 删除时
ElicitationMCP 服务器请求用户输入时
ElicitationResult用户响应 MCP 输入时
InstructionsLoadedCLAUDE.md 或规则文件加载时
SessionEnd会话终止时
StopFailure因 API 错误结束时(非阻塞)

Handler 类型

type描述
"command"stdin/stdout 上的 shell 脚本
"http"HTTP POST 到指定端点
"mcp_tool"调用 MCP 服务器工具
"prompt"单轮 LLM 评估
"agent"带工具的子代理(实验性)

Matcher 模式规则

模式类型匹配规则示例
"*" 或省略匹配所有工具/事件任意触发
仅含字母/数字/下划线/竖线精确字符串列表BashEdit|Write
含其他字符正则表达式^Notebookmcp__memory__.*

常用输出字段

字段用途
decision: "block"阻止该操作(大多数事件)
hookSpecificOutput事件特定控制(权限、重写等)
additionalContext向 Claude 传递上下文
systemMessage向用户显示警告信息
terminalSequence桌面通知/窗口标题
退出码 0成功(解析 JSON 输出)
退出码 2阻塞性错误(显示 stderr)
其他退出码非阻塞错误

路径占位符

占位符含义
${CLAUDE_PROJECT_DIR}项目根目录
${CLAUDE_PLUGIN_ROOT}插件安装目录
${CLAUDE_PLUGIN_DATA}插件持久化数据目录

Skills(技能)与 Commands(命令)

Commands 和 skills 现已合并为同一机制。新工作流建议使用 skills/ 格式(相同的 /name 调用方式,且可附带支持文件)。旧版 .claude/commands/ 仍完全兼容。

路径作用域格式调用方式
.claude/skills/<name>/SKILL.md项目级(新格式)目录 + SKILL.md/name 或 Claude 自动
.claude/commands/<name>.md项目级(旧格式,兼容)单文件 .md/name
~/.claude/skills/<name>/SKILL.md全局用户级(新格式)目录 + SKILL.md/name
~/.claude/commands/<name>.md全局用户级(旧格式)单文件 .md/name

Subagents(子代理)

每个子代理在独立上下文窗口中运行,拥有自定义系统提示、指定工具访问权限和独立权限控制。

路径作用域
.claude/agents/<name>.md项目级
~/.claude/agents/<name>.md全局用户级

Workflows(动态工作流)

工作流脚本以 JavaScript 编写,由 Claude 自动生成后可保存复用。

路径作用域说明
.claude/workflows/<name>.js项目级,团队共享通过 Git 提交分发
~/.claude/workflows/<name>.js全局用户级个人专用,所有项目可用
  • 调用方式:/name(保存后自动出现在 / 自动补全中)
  • 内置工作流:/deep-research <question> — 多角度并行搜索,交叉核实来源,返回带引用的报告
  • 禁用方式:"disableWorkflows": true(settings.json)或 CLAUDE_CODE_DISABLE_WORKFLOWS=1(环境变量)

自动记忆(Auto Memory)

需要 Claude Code v2.1.59 或更高版本。

路径说明
~/.claude/projects/<project>/memory/MEMORY.md记忆索引,每次会话加载前 200 行或 25KB(以先到为准)
~/.claude/projects/<project>/memory/*.md主题记忆文件(如 debugging.md),按需加载
  • <project> 由 git 仓库路径派生;同仓库所有 worktree 和子目录共享同一记忆目录
  • 非 git 目录时,以项目根目录作为 key
  • 自动记忆为本机存储,不跨机器或云环境同步

相关设置

设置项类型说明
autoMemoryEnabledboolean启用/禁用自动记忆(默认 true
autoMemoryDirectorystring自定义存储路径(绝对路径或 ~/ 开头)
环境变量说明
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1禁用自动记忆

相关文档链接

主题文档页
settings.json 完整字段/en/settings
Hook 完整参考/en/hooks
CLAUDE.md 与自动记忆/en/memory
Skills 完整参考/en/skills
子代理完整参考/en/sub-agents
动态工作流完整参考/en/workflows
配置调试/en/debug-your-config