CClaude Code 中文教程
文档 / claude-directory

探索 .claude 目录

官方中文文档· 查看原文 ↗ ·官方译文,未经机器翻译

Claude Code 读取 CLAUDE.md、settings.json、hooks、skills、commands、subagents、workflows、rules 和自动内存的位置。探索项目中的 .claude 目录和主目录中的 ~/.claude。

Claude Code 从您的项目目录和主目录中的 ~/.claude 读取指令、设置、skills、subagents 和内存。将项目文件提交到 git 以与您的团队共享;~/.claude 中的文件是个人配置,适用于您的所有项目。

在 Windows 上,~/.claude 解析为 %USERPROFILE%\.claude。如果您设置了 CLAUDE_CONFIG_DIR,此页面上的每个 ~/.claude 路径都将位于该目录下。

大多数用户只编辑 CLAUDE.mdsettings.json。目录的其余部分是可选的:根据需要添加 skills、rules 或 subagents。

探索目录

单击树中的文件以查看每个文件的作用、何时加载以及示例。

未显示的内容 {#what’s-not-shown}

浏览器涵盖您创作和编辑的文件。一些相关文件位于其他位置:

文件 位置 用途
managed-settings.json 系统级别,因操作系统而异 企业强制执行的设置,您无法覆盖。请参阅服务器管理的设置
CLAUDE.local.md 项目根目录 您对此项目的私人偏好,与 CLAUDE.md 一起加载。手动创建它并将其添加到 .gitignore
已安装的 plugins ~/.claude/plugins 克隆的市场、已安装的 plugin 版本和每个 plugin 的数据,由 claude plugin 命令管理。孤立版本在 plugin 更新或卸载后 7 天被删除。请参阅 plugin 缓存

~/.claude 还保存 Claude Code 在您工作时写入的数据:记录、提示历史、文件快照、缓存和日志。请参阅下面的应用数据

选择正确的文件

不同类型的自定义位于不同的文件中。使用此表找到更改应该放在哪里。

您想要 编辑 范围 参考
为 Claude 提供项目上下文和约定 CLAUDE.md 项目或全局 Memory
允许或阻止特定工具调用 settings.json permissionshooks 项目或全局 PermissionsHooks
在工具调用前后运行脚本 settings.json hooks 项目或全局 Hooks
为会话设置环境变量 settings.json env 项目或全局 Settings
将个人覆盖保留在 git 之外 settings.local.json 仅项目 Settings scopes
添加使用 /name 调用的提示或功能 skills/<name>/SKILL.md 项目或全局 Skills
定义具有自己工具的专门 subagent agents/*.md 项目或全局 Subagents
通过脚本编排许多 subagent workflows/*.js 项目或全局 Dynamic workflows
通过 MCP 连接外部工具 .mcp.json 仅项目 MCP
更改 Claude 格式化响应的方式 output-styles/*.md 项目或全局 Output styles

文件参考

此表列出浏览器涵盖的每个文件。项目范围的文件位于您的仓库中的 .claude/ 下(或 CLAUDE.md.mcp.json.worktreeinclude 的根目录)。全局范围的文件位于 ~/.claude/ 中,适用于所有项目。

提示

有几件事可以覆盖您在这些文件中放入的内容:

  • 您的组织部署的托管设置优先于所有内容
  • CLI 标志(如 --permission-mode--settings)在该会话中覆盖 settings.json
  • 某些环境变量优先于其等效设置,但这会有所不同:检查环境变量参考以了解每个变量

请参阅设置优先级以了解完整顺序。

单击文件名以在上面的浏览器中打开该节点。

文件 范围 提交 作用 参考
CLAUDE.md 项目和全局 每个会话加载的指令 内存
rules/*.md 项目和全局 主题范围的指令,可选择路径门控 Rules
settings.json 项目和全局 权限、hooks、环境变量、模型默认值 设置
settings.local.json 仅项目 您的个人覆盖,自动 gitignored 设置范围
.mcp.json 仅项目 团队共享的 MCP 服务器 MCP 范围
.worktreeinclude 仅项目 Gitignored 文件以复制到新的 worktrees Worktrees
skills/<name>/SKILL.md 项目和全局 可重用的提示,使用 /name 调用或自动调用 Skills
commands/*.md 项目和全局 单文件提示;与 skills 相同的机制 Skills
output-styles/*.md 项目和全局 自定义系统提示部分 输出样式
agents/*.md 项目和全局 Subagent 定义及其自己的提示和工具 Subagents
workflows/*.js 项目和全局 由 Claude 编写并从 /workflows 保存的动态工作流脚本;每个文件都成为一个 /<name> 命令 动态工作流
agent-memory/<name>/ 项目和全局 Subagents 的持久内存 持久内存
~/.claude.json 仅全局 应用状态、OAuth、UI 切换、个人 MCP 服务器 全局配置
projects/<project>/memory/ 仅全局 自动内存:Claude 在会话间对自己的笔记 自动内存
keybindings.json 仅全局 自定义快捷键 快捷键
themes/*.json 仅全局 自定义颜色主题 自定义主题

排查配置问题

如果设置、hook 或文件未生效,请参阅调试您的配置以获取检查命令和症状优先查找表。

应用数据

除了您创作的配置外,~/.claude 还保存 Claude Code 在会话期间写入的数据。这些文件是纯文本。通过工具传递的任何内容都会在磁盘上的记录中:文件内容、命令输出、粘贴的文本。

自动清理

下面路径中的文件在启动时被删除,一旦它们的年龄超过 cleanupPeriodDays。默认值为 30 天。

~/.claude/ 下的路径 内容
projects/<project>/<session>.jsonl 完整的对话记录:每条消息、工具调用和工具结果
projects/<project>/<session>/subagents/ Subagent 对话记录,当父会话记录过期时被删除
projects/<project>/<session>/tool-results/ 大型工具输出溢出到单独的文件
file-history/<session>/ Claude 更改的文件的编辑前快照,用于 checkpoint 恢复。保存最近 100 个 checkpoint 的快照;没有保留 checkpoint 引用的快照文件被删除,除了每个文件的第一个快照
plans/ Plan Mode 期间写入的计划文件
debug/ 每个会话的调试日志,仅在您使用 --debug 启动或运行 /debug 时写入
paste-cache/image-cache/ 大型粘贴和附加图像的内容
session-env/ 每个会话的环境元数据
tasks/ 由 Task 工具写入的每个会话的任务列表
shell-snapshots/ 在启动时捕获的别名、函数和 shell 选项,由 Bash 工具 应用于每个命令。在正常退出时删除。扫描清理任何在崩溃后留下的内容。
backups/ 在配置迁移前获取的 ~/.claude.json 的时间戳副本
feedback-bundles/ /feedback 在第三方提供商上或当未配置 Anthropic 凭证时写入的编辑后的记录存档,用于发送到您的 Anthropic 账户团队
todos/statsig/logs/ 来自旧版本的旧版目录。不再写入。扫描删除其内容,然后删除空目录。

保留直到您删除它们

以下路径不受自动清理覆盖,并无限期保留。

~/.claude/ 下的路径 内容
history.jsonl 您输入的每个提示,带有时间戳和项目路径。用于向上箭头回忆。
stats-cache.json /usage 显示的聚合令牌和成本计数
remote-settings.json 服务器管理的设置的缓存副本,用于您的组织。仅在您的组织配置了这些设置时才存在。在每次启动时刷新。

其他小缓存和锁定文件根据您使用的功能而出现,可以安全删除。

纯文本存储

记录和历史在静止时未加密。操作系统文件权限是唯一的保护。如果工具读取 .env 文件或命令打印凭证,该值将写入 projects/<project>/<session>.jsonl。要减少暴露:

  • 降低 cleanupPeriodDays 以缩短记录的保留时间
  • 设置 CLAUDE_CODE_SKIP_PROMPT_HISTORY 环境变量以跳过在任何模式下写入记录和提示历史。在非交互模式下,您可以改为在 -p 旁边传递 --no-session-persistence,或在 Agent SDK 中设置 persistSession: false
  • 使用 权限规则 拒绝读取凭证文件

清除本地数据

运行 claude project purge 以删除 Claude Code 为一个项目保存的状态。该命令需要 Claude Code v2.1.124 或更高版本。它删除:

  • projects/ 下的记录和自动内存
  • 每个会话的 tasks/debug/file-history/ 条目
  • history.jsonl 中的匹配提示行
  • ~/.claude.json 中的项目条目

该命令打印完整的删除计划,并在删除任何内容之前要求确认。

预览计划而不删除任何内容:

claude project purge ~/work/my-repo --dry-run

通过单个确认提示删除:

claude project purge ~/work/my-repo

省略路径以从交互式列表中选择项目。

跳过确认提示以在脚本中使用:

claude project purge ~/work/my-repo --yes

传递 --all 而不是路径以一次清除所有项目的状态,这会直接删除 history.jsonl 而不是过滤它。传递 -i 以逐项逐步执行删除计划。

该命令不理会 shell-snapshots/backups/,因为这些不是项目范围的,并在计划输出中警告它们。如果没有状态与给定路径匹配,它以状态 1 退出。

您也可以手动删除上面的任何应用数据路径。新会话不受影响。下表显示您对过去会话失去的内容。

删除 您失去
~/.claude/projects/ 恢复、继续和倒回过去的会话
~/.claude/history.jsonl 向上箭头提示回忆
~/.claude/file-history/ 过去会话的 checkpoint 恢复
~/.claude/stats-cache.json /usage 显示的历史总计
~/.claude/remote-settings.json 无。在下次启动时重新获取。
~/.claude/debug/~/.claude/plans/~/.claude/paste-cache/~/.claude/image-cache/~/.claude/session-env/~/.claude/tasks/~/.claude/shell-snapshots/~/.claude/backups/ 没有面向用户的内容
~/.claude/todos/~/.claude/statsig/~/.claude/logs/ 无。旧版目录不由当前版本写入。

不要删除 ~/.claude.json~/.claude/settings.json~/.claude/plugins/:这些保存您的身份验证、偏好和已安装的 plugins。