Claude Code 设置
了解如何通过全局和项目级别的设置、主题和环境变量来配置 Claude Code。
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
部署策略。
设置优先级
设置按优先级顺序应用,后面的源会覆盖前面的源:
- 用户设置
- 共享项目设置
- 本地项目设置
- 命令行参数
- 企业策略
配置选项
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>
:
键 | 值 | 描述 |
---|---|---|
autoUpdaterStatus | disabled 或 enabled | 启用或禁用自动更新器(默认:enabled ) |
env | JSON(例如 '{"FOO": "bar"}' ) | 将应用于每个会话的环境变量 |
preferredNotifChannel | iterm2 、iterm2_with_bell 、terminal_bell 或 notifications_disabled | 您希望接收通知的位置(默认:iterm2 ) |
theme | dark 、light 、light-daltonized 或 dark-daltonized | 颜色主题 |
verbose | true 或 false | 是否显示完整的 bash 和命令输出(默认:false ) |
项目配置
使用 claude config set <key> <value>
(不带 -g
标志)管理项目配置:
键 | 值 | 描述 |
---|---|---|
allowedTools | 工具数组 | 哪些工具可以无需手动批准即可运行 |
ignorePatterns | glob 字符串数组 | 使用工具时要忽略的文件/目录 |
例如:
权限
您可以使用 /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 包创建一个干净的专用位置
- 遵循安全最佳实践
由于 Claude Code 正在积极开发中,我们建议使用上述推荐选项设置自动更新。
禁用自动更新器
如果您更愿意禁用自动更新器而不是修复权限,可以使用:
优化您的终端设置
Claude Code 在终端配置正确时效果最佳。请遵循以下指南来优化您的体验。
支持的 shell:
- Bash
- Zsh
- Fish
主题和外观
Claude 无法控制您终端的主题。这由您的终端应用程序处理。您可以在入门过程中或通过 /config
命令随时将 Claude Code 的主题与您的终端匹配
换行
您有几种在 Claude Code 中输入换行的选项:
- 快速转义:输入
\
后按 Enter 创建换行 - 键盘快捷键:在正确配置的情况下按 Option+Enter(Meta+Enter)
要在终端中设置 Option+Enter:
对于 Mac Terminal.app:
- 打开设置 → 配置文件 → 键盘
- 勾选”将 Option 键用作 Meta 键”
对于 iTerm2 和 VSCode 终端:
- 打开设置 → 配置文件 → 按键
- 在常规下,将左/右 Option 键设置为”Esc+”
iTerm2 和 VSCode 用户提示:在 Claude Code 中运行 /terminal-setup
可以自动配置 Shift+Enter 作为更直观的替代方案。
通知设置
通过正确的通知配置,永不错过 Claude 完成任务的时机:
终端铃声通知
启用任务完成时的声音提醒:
对于 macOS 用户:别忘了在系统设置 → 通知 → [您的终端应用] 中启用通知权限。
iTerm 2 系统通知
对于 iTerm 2 任务完成提醒:
- 打开 iTerm 2 首选项
- 导航到配置文件 → 终端
- 启用”静音铃声”和”空闲时发送通知”
- 设置您首选的通知延迟
请注意,这些通知是 iTerm 2 特有的,在默认的 macOS 终端中不可用。
处理大量输入
在处理大量代码或长指令时:
- 避免直接粘贴:Claude Code 可能难以处理非常长的粘贴内容
- 使用基于文件的工作流:将内容写入文件并要求 Claude 读取
- 注意 VS Code 限制:VS Code 终端特别容易截断长粘贴内容
Vim 模式
Claude Code 支持一部分可通过 /vim
启用或通过 /config
配置的 Vim 键绑定。
支持的功能包括:
- 模式切换:
Esc
(到 NORMAL),i
/I
,a
/A
,o
/O
(到 INSERT) - 导航:
h
/j
/k
/l
,w
/e
/b
,0
/$
/^
,gg
/G
- 编辑:
x
,dw
/de
/db
/dd
/D
,cw
/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_TIMEOUT | MCP 服务器启动超时时间(毫秒) |
MCP_TOOL_TIMEOUT | MCP 工具执行超时时间(毫秒) |