CLAUDE_CONFIG_DIR:Claude Code 配置目录详解
CLAUDE_CONFIG_DIR 让 Claude Code 使用另一个配置目录,而不是默认的 ~/.claude。设置、会话历史、插件和登录都会跟着它走,所以每个目录都相当于一套独立的 Claude Code 配置。Anthropic 建议用它让工作账号和个人账号同时保持登录。
其他语言版本: English · Español · Deutsch · Français · 日本語 · Português (Brasil) · 한국어 · Italiano · Nederlands · 繁體中文
本指南由 Switch 提供。Switch 是一款独立的 Claude Desktop 配置文件管理工具,目前在正式发布前开放抢先体验。
这个变量的作用
Anthropic 的环境变量参考把 CLAUDE_CONFIG_DIR 描述为配置目录的覆盖设置,默认目录是 ~/.claude。所有设置、会话历史和插件都会保存在你指定的路径下。
Claude Code 的其他部分不会改变。claude 命令还是同一个程序,只是读写另一个文件夹。用一个值启动,得到一套配置;换一个值启动,就得到第二套互不影响的配置。
配置目录里保存了什么
根据 Anthropic 关于 .claude 目录的说明,设置 CLAUDE_CONFIG_DIR 后,原本位于 ~/.claude 下的所有路径都会改到你的目录下,包括:
- 你的个人
CLAUDE.md、settings.json、技能、命令、子代理和输出样式。 projects/中的会话记录,以及每个项目的自动记忆。- 用于检查点恢复的文件快照、计划文件和提示历史。
- 键位绑定和自定义主题。
项目文件不受影响。仓库自己的 CLAUDE.md、.claude/ 文件夹和 .mcp.json 属于项目,每个配置目录都能看到。
Mac 上的登录如何保持分开
在 macOS 上,Claude Code 把凭据保存在加密的钥匙串中。Anthropic 的凭据管理说明指出,设置 CLAUDE_CONFIG_DIR 后,Claude Code 会按该目录区分钥匙串条目,因此使用不同目录的会话会读取不同的条目。如果钥匙串拒绝写入,备用的 .credentials.json 文件也会放在该目录中。
文档中提到一个例外:分开的目录无法区分两个不使用 API 密钥登录的 Claude Console 账号,因为 Claude Code 把这类登录保存在配置目录之外(身份验证文档,截至 2026 年 10 月)。
环境变量也可能在每个目录中覆盖登录。如果在 shell 中 export 了 ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 或 CLAUDE_CODE_OAUTH_TOKEN,它可能会优先于你登录的账号。完整顺序请参阅如何切换 Claude Code 账号。
在哪里设置
最简单的方法是使用 shell 别名,这也是 Anthropic 给出的示例。把它添加到 ~/.zshrc,然后打开一个新的终端窗口:
alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'第一次运行时,会引导你完成新目录的登录和初始设置。普通的 claude 继续使用 ~/.claude。
你也可以在用户设置或托管设置中设置这个变量。在设置文件中要写绝对路径。Claude Code 会忽略项目设置和本地设置中的这个变量,所以无法用这种方式按仓库分别设置。
要查看某个 shell 正在使用哪个目录,请运行 claude auth status。在较新的版本中,它的 JSON 输出包含 configDirectory 字段(CLI 参考)。
常见错误
- 某个窗口忘了设置变量。没有设置它的终端标签页会使用
~/.claude及其登录,这一点很容易忽略。使用别名可以避免。 - 在设置文件中使用
~。设置文件需要绝对路径,例如/Users/you/.claude-work。 - 复制整个文件夹来新建目录。这会把一个账号的历史和状态复制到另一个账号。请从空文件夹开始,只添加需要的内容。共享技能和 MCP 服务器一文介绍了具体做法。
- 以为旧会话会跟过来。会话记录保存在创建它的目录中,所以在另一个目录中运行
claude --resume不会列出它们。请参阅恢复 Claude Code 会话。 - export 了 API 密钥。它会在每个目录中覆盖登录。
Switch 如何在 Claude Desktop 中使用它
Claude Desktop 里的 Claude Code 不会读取你的 shell 别名,Switch 负责处理这种情况。每个 Switch 配置文件都会打开 Anthropic 官方的 Claude Desktop 应用,并使用自己的数据文件夹。开启 Keep coding preferences separate(新配置文件默认开启)后,该配置文件还会拥有自己的 Claude Code 配置目录,Switch 启动这个配置文件的 Claude Desktop 时,会把 CLAUDE_CONFIG_DIR 指向这个目录。
Switch 不会添加任何终端命令,每个账号都保留各自的套餐和用量限制。了解 Switch 如何处理 Claude Code。