Claude Code 提供了多种设置选项来满足您的需求。您可以通过在终端中运行 claude config 或在交互式 REPL 中使用 /config 命令来配置 Claude Code。

配置层级

新的 settings.json 文件是我们通过分层设置配置 Claude Code 的官方机制。

用户设置定义在 ~/.claude/settings.json 中,适用于所有项目。

项目设置保存在项目目录下的 .claude/settings.json(用于共享设置)和 .claude/settings.local.json(用于本地项目设置)中。当创建 .claude/settings.local.json 时,Claude Code 会配置 git 忽略该文件。

对于 Claude Code 的企业部署,我们还支持企业管理策略设置。这些设置优先于用户和项目设置。系统管理员可以在 macOS 上通过 /Library/Application Support/ClaudeCode/policies.json,在 Linux 和 Windows(通过 WSL)上通过 /etc/claude-code/policies.json 部署策略。

Example settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  }
}

设置优先级

设置按优先级顺序应用,后面的源会覆盖前面的源:

  • 用户设置
  • 共享项目设置
  • 本地项目设置
  • 命令行参数
  • 企业策略

配置选项

Claude Code 支持全局和项目级别的配置。

要管理您的配置,请使用以下命令:

  • 列出设置:claude config list
  • 查看设置:claude config get <key>
  • 更改设置:claude config set <key> <value>
  • 添加设置(用于列表):claude config add <key> <value>
  • 移除设置(用于列表):claude config remove <key> <value>

默认情况下,config 更改您的项目配置。要管理全局配置,请使用 --global(或 -g)标志。

全局配置

要设置全局配置,使用 claude config set -g <key> <value>

描述
autoUpdaterStatusdisabledenabled启用或禁用自动更新器(默认:enabled
envJSON(例如 '{"FOO": "bar"}'将应用于每个会话的环境变量
preferredNotifChanneliterm2iterm2_with_bellterminal_bellnotifications_disabled您希望接收通知的位置(默认:iterm2
themedarklightlight-daltonizeddark-daltonized颜色主题
verbosetruefalse是否显示完整的 bash 和命令输出(默认:false

项目配置

使用 claude config set <key> <value>(不带 -g 标志)管理项目配置:

描述
allowedTools工具数组哪些工具可以无需手动批准即可运行
ignorePatternsglob 字符串数组使用工具时要忽略的文件/目录

例如:

# 允许 npm test 无需批准运行
claude config add allowedTools "Bash(npm test)"

# 允许 npm test 及其所有子命令无需批准运行
claude config add allowedTools "Bash(npm test:*)"

# 指示 Claude 忽略 node_modules
claude config add ignorePatterns node_modules
claude config add ignorePatterns "node_modules/**"

权限

您可以使用 /allowed-tools 管理 Claude Code 的工具权限。此 UI 列出了所有权限规则及其来源的 settings.json 文件。

  • 允许规则将允许 Claude Code 使用指定的工具,无需进一步手动批准。
  • 拒绝规则将阻止 Claude Code 使用指定的工具。拒绝规则优先于允许规则。

权限规则使用格式:Tool(optional-specifier)

例如,将 WebFetch 添加到允许规则列表中将允许无需用户批准即可使用任何网络获取工具。查看Claude 可用的工具列表(提供时使用括号中的名称。)

某些工具使用可选说明符进行更细粒度的权限控制。例如,带有 WebFetch(domain:example.com) 的允许规则将允许获取 example.com 但不允许获取其他 URL。

Bash 规则可以是精确匹配,如 Bash(npm run build),或以 :* 结尾的前缀匹配,如 Bash(npm run test:*)

Read()Edit() 规则遵循 gitignore 规范。模式相对于包含 .claude/settings.json 的目录解析。要引用绝对路径,请使用 //。对于相对于您的主目录的路径,请使用 ~/。例如 Read(//tmp/build_cache)Edit(~/.zshrc)。Claude 还将尽最大努力将读取和编辑规则应用于其他与文件相关的工具,如 Grep、Glob 和 LS。

MCP 工具名称遵循格式:mcp__server_name__tool_name,其中:

  • server_name 是在 Claude Code 中配置的 MCP 服务器名称
  • tool_name 是该服务器提供的特定工具

更多示例:

规则描述
Bash(npm run build)匹配精确的 Bash 命令 npm run build
Bash(npm run test:*)匹配以 npm run test 开头的 Bash 命令。请参阅下面关于命令分隔符处理的说明。
Edit(~/.zshrc)匹配 ~/.zshrc 文件。
Read(node_modules/**)匹配任何 node_modules 目录。
mcp__puppeteer__puppeteer_navigate匹配来自 puppeteer MCP 服务器的 puppeteer_navigate 工具。
WebFetch(domain:example.com)匹配对 example.com 的获取请求

Claude Code 能识别命令分隔符(如 &&),因此像 Bash(safe-cmd:*) 这样的前缀匹配规则不会授权它运行 safe-cmd && other-cmd 命令

自动更新器权限选项

当 Claude Code 检测到它没有足够的权限写入您的全局 npm 前缀目录(自动更新所需)时,您会看到一个指向本文档页面的警告。有关自动更新器问题的详细解决方案,请参阅故障排除指南

推荐:创建新的用户可写 npm 前缀

# 首先,保存现有全局包列表以供后续迁移
npm list -g --depth=0 > ~/npm-global-packages.txt

# 为全局包创建目录
mkdir -p ~/.npm-global

# 配置 npm 使用新的目录路径
npm config set prefix ~/.npm-global

# 注意:根据您的 shell 将 ~/.bashrc 替换为 ~/.zshrc、~/.profile 或其他适当的文件
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

# 应用新的 PATH 设置
source ~/.bashrc

# 现在在新位置重新安装 Claude Code
npm install -g @anthropic-ai/claude-code

# 可选:在新位置重新安装之前的全局包
# 查看 ~/npm-global-packages.txt 并安装您想保留的包
# npm install -g package1 package2 package3...

为什么我们推荐这个选项:

  • 避免修改系统目录权限
  • 为全局 npm 包创建一个干净的专用位置
  • 遵循安全最佳实践

由于 Claude Code 正在积极开发中,我们建议使用上述推荐选项设置自动更新。

禁用自动更新器

如果您更愿意禁用自动更新器而不是修复权限,可以使用:

claude config set -g autoUpdaterStatus disabled

优化您的终端设置

Claude Code 在终端配置正确时效果最佳。请遵循以下指南来优化您的体验。

支持的 shell

  • Bash
  • Zsh
  • Fish

主题和外观

Claude 无法控制您终端的主题。这由您的终端应用程序处理。您可以在入门过程中或通过 /config 命令随时将 Claude Code 的主题与您的终端匹配

换行

您有几种在 Claude Code 中输入换行的选项:

  • 快速转义:输入 \ 后按 Enter 创建换行
  • 键盘快捷键:在正确配置的情况下按 Option+Enter(Meta+Enter)

要在终端中设置 Option+Enter:

对于 Mac Terminal.app:

  1. 打开设置 → 配置文件 → 键盘
  2. 勾选”将 Option 键用作 Meta 键”

对于 iTerm2 和 VSCode 终端:

  1. 打开设置 → 配置文件 → 按键
  2. 在常规下,将左/右 Option 键设置为”Esc+”

iTerm2 和 VSCode 用户提示:在 Claude Code 中运行 /terminal-setup 可以自动配置 Shift+Enter 作为更直观的替代方案。

通知设置

通过正确的通知配置,永不错过 Claude 完成任务的时机:

终端铃声通知

启用任务完成时的声音提醒:

claude config set --global preferredNotifChannel terminal_bell

对于 macOS 用户:别忘了在系统设置 → 通知 → [您的终端应用] 中启用通知权限。

iTerm 2 系统通知

对于 iTerm 2 任务完成提醒:

  1. 打开 iTerm 2 首选项
  2. 导航到配置文件 → 终端
  3. 启用”静音铃声”和”空闲时发送通知”
  4. 设置您首选的通知延迟

请注意,这些通知是 iTerm 2 特有的,在默认的 macOS 终端中不可用。

处理大量输入

在处理大量代码或长指令时:

  • 避免直接粘贴:Claude Code 可能难以处理非常长的粘贴内容
  • 使用基于文件的工作流:将内容写入文件并要求 Claude 读取
  • 注意 VS Code 限制:VS Code 终端特别容易截断长粘贴内容

Vim 模式

Claude Code 支持一部分可通过 /vim 启用或通过 /config 配置的 Vim 键绑定。

支持的功能包括:

  • 模式切换:Esc(到 NORMAL),i/Ia/Ao/O(到 INSERT)
  • 导航:h/j/k/lw/e/b0/$/^gg/G
  • 编辑:xdw/de/db/dd/Dcw/ce/cb/cc/C.(重复)

环境变量

Claude Code 支持以下环境变量来控制其行为:

变量用途
DISABLE_AUTOUPDATER设置为 1 以禁用自动更新器
DISABLE_BUG_COMMAND设置为 1 以禁用 /bug 命令
DISABLE_COST_WARNINGS设置为 1 以禁用成本警告消息
DISABLE_ERROR_REPORTING设置为 1 以选择退出 Sentry 错误报告
DISABLE_TELEMETRY设置为 1 以选择退出 Statsig 遥测(注意 Statsig 事件不包括用户数据,如代码、文件路径或 bash 命令)
HTTP_PROXY指定网络连接的 HTTP 代理服务器
HTTPS_PROXY指定网络连接的 HTTPS 代理服务器
MCP_TIMEOUTMCP 服务器启动超时时间(毫秒)
MCP_TOOL_TIMEOUTMCP 工具执行超时时间(毫秒)

Was this page helpful?