Skip to main content
Claude Code 提供多种设置来配置其行为以满足您的需求。您可以在使用交互式 REPL 时运行 /config 命令来配置 Claude Code,这会打开一个选项卡式设置界面,您可以在其中查看状态信息并修改配置选项。

配置作用域

Claude Code 使用作用域系统来确定配置应用的位置以及与谁共享。了解作用域可以帮助您决定如何为个人使用、团队协作或企业部署配置 Claude Code。

可用作用域

何时使用每个作用域

Managed 作用域用于:
  • 必须在整个组织范围内强制执行的安全策略
  • 无法被覆盖的合规要求
  • 由 IT/DevOps 部署的标准化配置
User 作用域最适合:
  • 您想在任何地方使用的个人偏好(主题、编辑器设置)
  • 您在所有项目中使用的工具和插件
  • API 密钥和身份验证(安全存储)
Project 作用域最适合:
  • 团队共享的设置(权限、hooks、MCP servers)
  • 整个团队应该拥有的插件
  • 跨协作者标准化工具
Local 作用域最适合:
  • 特定项目的个人覆盖
  • 在与团队共享之前测试配置
  • 对其他人不适用的特定于机器的设置

作用域如何相互作用

当在多个作用域中配置相同的设置时,更具体的作用域优先:
  1. Managed(最高)- 无法被任何内容覆盖
  2. 命令行参数 - 临时会话覆盖
  3. Local - 覆盖项目和用户设置
  4. Project - 覆盖用户设置
  5. User(最低)- 当没有其他内容指定设置时应用
例如,如果在用户设置中允许某个权限,但在项目设置中拒绝,则项目设置优先,权限被阻止。

哪些功能使用作用域

作用域适用于许多 Claude Code 功能:

设置文件

settings.json 文件是我们用于通过分层设置配置 Claude Code 的官方机制:
  • 用户设置~/.claude/settings.json 中定义,适用于所有项目。
  • 项目设置保存在您的项目目录中:
    • .claude/settings.json 用于检入源代码管理并与您的团队共享的设置
    • .claude/settings.local.json 用于未检入的设置,适用于个人偏好和实验。Claude Code 将在创建 .claude/settings.local.json 时配置 git 以忽略它。
  • Managed 设置:对于需要集中控制的组织,Claude Code 支持可以部署到系统目录的 managed-settings.jsonmanaged-mcp.json 文件:
    • macOS:/Library/Application Support/ClaudeCode/
    • Linux 和 WSL:/etc/claude-code/
    • Windows:C:\Program Files\ClaudeCode\
    这些是系统范围的路径(不是像 ~/Library/... 这样的用户主目录),需要管理员权限。它们设计用于由 IT 管理员部署。
    有关详细信息,请参阅 Managed 设置Managed MCP 配置
    Managed 部署还可以使用 strictKnownMarketplaces 限制插件市场添加。有关更多信息,请参阅 Managed 市场限制
  • 其他配置存储在 ~/.claude.json 中。此文件包含您的偏好(主题、通知设置、编辑器模式)、OAuth 会话、用户和本地作用域的 MCP server 配置、每个项目的状态(允许的工具、信任设置)和各种缓存。项目作用域的 MCP servers 单独存储在 .mcp.json 中。
Claude Code 自动创建配置文件的时间戳备份,并保留最近五个备份以防止数据丢失。
示例 settings.json
上面示例中的 $schema 行指向 Claude Code 设置的官方 JSON 架构。将其添加到您的 settings.json 可在 VS Code、Cursor 和任何其他支持 JSON 架构验证的编辑器中启用自动完成和内联验证。

可用设置

settings.json 支持多个选项:

权限设置

权限规则语法

权限规则遵循格式 ToolTool(specifier)。规则按顺序评估:首先是拒绝规则,然后是询问,最后是允许。第一个匹配的规则获胜。 快速示例: 有关完整的规则语法参考,包括通配符行为、Read、Edit、WebFetch、MCP 和 Task 规则的工具特定模式,以及 Bash 模式的安全限制,请参阅 权限规则语法

Sandbox 设置

配置高级沙箱行为。沙箱将 bash 命令与您的文件系统和网络隔离。有关详细信息,请参阅 Sandboxing 文件系统和网络限制通过 Read、Edit 和 WebFetch 权限规则配置,而不是通过这些沙箱设置。 配置示例:
文件系统和网络限制使用标准权限规则:
  • 使用 Read 拒绝规则阻止 Claude 读取特定文件或目录
  • 使用 Edit 允许规则让 Claude 写入当前工作目录之外的目录
  • 使用 Edit 拒绝规则阻止写入特定路径
  • 使用 WebFetch 允许/拒绝规则控制 Claude 可以访问哪些网络域

Attribution 设置

Claude Code 为 git 提交和拉取请求添加归属。这些是单独配置的:
  • 提交默认使用 git trailers(如 Co-Authored-By),可以自定义或禁用
  • 拉取请求描述是纯文本
默认提交归属:
默认拉取请求归属:
示例:
attribution 设置优先于已弃用的 includeCoAuthoredBy 设置。要隐藏所有归属,请将 commitpr 设置为空字符串。

文件建议设置

@ 文件路径自动完成配置自定义命令。内置文件建议使用快速文件系统遍历,但大型 monorepos 可能受益于项目特定的索引,例如预构建的文件索引或自定义工具。
该命令使用与 hooks 相同的环境变量运行,包括 CLAUDE_PROJECT_DIR。它通过 stdin 接收包含 query 字段的 JSON:
将换行符分隔的文件路径输出到 stdout(当前限制为 15):
示例:

Hook 配置

仅 Managed 设置:控制允许运行哪些 hooks。此设置只能在 managed 设置 中配置,为管理员提供对 hook 执行的严格控制。 allowManagedHooksOnlytrue 时的行为:
  • 加载 Managed hooks 和 SDK hooks
  • 阻止用户 hooks、项目 hooks 和插件 hooks
配置:

设置优先级

设置按优先级顺序应用。从最高到最低:
  1. Managed 设置 (managed-settings.json)
    • 由 IT/DevOps 部署到系统目录的策略
    • 无法被用户或项目设置覆盖
  2. 命令行参数
    • 特定会话的临时覆盖
  3. 本地项目设置 (.claude/settings.local.json)
    • 个人项目特定设置
  4. 共享项目设置 (.claude/settings.json)
    • 源代码管理中的团队共享项目设置
  5. 用户设置 (~/.claude/settings.json)
    • 个人全局设置
此层次结构确保组织策略始终被强制执行,同时仍允许团队和个人自定义其体验。 例如,如果您的用户设置允许 Bash(npm run *),但项目的共享设置拒绝它,则项目设置优先,命令被阻止。

关于配置系统的关键要点

  • 内存文件 (CLAUDE.md):包含 Claude 在启动时加载的说明和上下文
  • 设置文件 (JSON):配置权限、环境变量和工具行为
  • Skills:可以使用 /skill-name 调用或由 Claude 自动加载的自定义提示
  • MCP servers:使用其他工具和集成扩展 Claude Code
  • 优先级:更高级别的配置(Managed)覆盖更低级别的配置(User/Project)
  • 继承:设置被合并,更具体的设置添加到或覆盖更广泛的设置

系统提示

Claude Code 的内部系统提示未发布。要添加自定义说明,请使用 CLAUDE.md 文件或 --append-system-prompt 标志。

排除敏感文件

要防止 Claude Code 访问包含敏感信息(如 API 密钥、机密和环境文件)的文件,请在您的 .claude/settings.json 文件中使用 permissions.deny 设置:
这替代了已弃用的 ignorePatterns 配置。匹配这些模式的文件被排除在文件发现和搜索结果之外,对这些文件的读取操作被拒绝。

Subagent 配置

Claude Code 支持可在用户和项目级别配置的自定义 AI subagents。这些 subagents 存储为带有 YAML frontmatter 的 Markdown 文件:
  • 用户 subagents~/.claude/agents/ - 在所有项目中可用
  • 项目 subagents.claude/agents/ - 特定于您的项目,可与您的团队共享
Subagent 文件定义具有自定义提示和工具权限的专门 AI 助手。在 subagents 文档 中了解有关创建和使用 subagents 的更多信息。

插件配置

Claude Code 支持一个插件系统,让您可以使用 skills、agents、hooks 和 MCP servers 扩展功能。插件通过市场分发,可在用户和存储库级别配置。

插件设置

settings.json 中的插件相关设置:

enabledPlugins

控制启用哪些插件。格式:"plugin-name@marketplace-name": true/false 作用域
  • 用户设置 (~/.claude/settings.json):个人插件偏好
  • 项目设置 (.claude/settings.json):与团队共享的项目特定插件
  • 本地设置 (.claude/settings.local.json):每台机器的覆盖(未提交)
示例

extraKnownMarketplaces

定义应为存储库提供的其他市场。通常在存储库级别设置中使用,以确保团队成员有权访问所需的插件源。 当存储库包含 extraKnownMarketplaces
  1. 当团队成员信任该文件夹时,系统会提示他们安装市场
  2. 然后提示团队成员从该市场安装插件
  3. 用户可以跳过不需要的市场或插件(存储在用户设置中)
  4. 安装遵守信任边界并需要明确同意
示例
市场源类型
  • github:GitHub 存储库(使用 repo
  • git:任何 git URL(使用 url
  • directory:本地文件系统路径(使用 path,仅用于开发)
  • hostPattern:正则表达式模式以匹配市场主机(使用 hostPattern

strictKnownMarketplaces

仅 Managed 设置:控制用户可以添加哪些插件市场。此设置只能在 managed-settings.json 中配置,为管理员提供对市场源的严格控制。 Managed 设置文件位置
  • macOS/Library/Application Support/ClaudeCode/managed-settings.json
  • Linux 和 WSL/etc/claude-code/managed-settings.json
  • WindowsC:\Program Files\ClaudeCode\managed-settings.json
关键特征
  • 仅在 managed 设置 (managed-settings.json) 中可用
  • 无法被用户或项目设置覆盖(最高优先级)
  • 在网络/文件系统操作之前强制执行(阻止的源永远不会执行)
  • 对源规范使用精确匹配(包括 git 源的 refpath),除了 hostPattern,它使用正则表达式匹配
允许列表行为
  • undefined(默认):无限制 - 用户可以添加任何市场
  • 空数组 []:完全锁定 - 用户无法添加任何新市场
  • 源列表:用户只能添加与之完全匹配的市场
所有支持的源类型 允许列表支持七种市场源类型。大多数源使用精确匹配,而 hostPattern 使用正则表达式匹配市场主机。
  1. GitHub 存储库
字段:repo(必需)、ref(可选:分支/标签/SHA)、path(可选:子目录)
  1. Git 存储库
字段:url(必需)、ref(可选:分支/标签/SHA)、path(可选:子目录)
  1. 基于 URL 的市场
字段:url(必需)、headers(可选:用于身份验证访问的 HTTP 标头)
基于 URL 的市场仅下载 marketplace.json 文件。它们不从服务器下载插件文件。基于 URL 的市场中的插件必须使用外部源(GitHub、npm 或 git URL),而不是相对路径。对于具有相对路径的插件,请改用基于 Git 的市场。有关详细信息,请参阅 故障排除
  1. NPM 包
字段:package(必需,支持作用域包)
  1. 文件路径
字段:path(必需:marketplace.json 文件的绝对路径)
  1. 目录路径
字段:path(必需:包含 .claude-plugin/marketplace.json 的目录的绝对路径)
  1. 主机模式匹配
字段:hostPattern(必需:与市场主机匹配的正则表达式模式) 当您想允许来自特定主机的所有市场而不枚举每个存储库时,请使用主机模式匹配。这对于具有内部 GitHub Enterprise 或 GitLab 服务器的组织很有用,开发人员可以在其中创建自己的市场。 按源类型的主机提取:
  • github:始终与 github.com 匹配
  • git:从 URL 提取主机名(支持 HTTPS 和 SSH 格式)
  • url:从 URL 提取主机名
  • npmfiledirectory:不支持主机模式匹配
配置示例 示例:仅允许特定市场:
示例 - 禁用所有市场添加:
示例:允许来自内部 git 服务器的所有市场:
精确匹配要求 市场源必须精确匹配才能允许用户的添加。对于基于 git 的源(githubgit),这包括所有可选字段:
  • repourl 必须精确匹配
  • ref 字段必须精确匹配(或两者都未定义)
  • path 字段必须精确匹配(或两者都未定义)
匹配的源示例:
extraKnownMarketplaces 的比较 格式差异 strictKnownMarketplaces 使用直接源对象:
extraKnownMarketplaces 需要命名市场:
重要说明
  • 限制在任何网络请求或文件系统操作之前检查
  • 被阻止时,用户会看到清晰的错误消息,指示源被 managed 策略阻止
  • 限制仅适用于添加新市场;以前安装的市场保持可访问
  • Managed 设置具有最高优先级,无法被覆盖
有关面向用户的文档,请参阅 Managed 市场限制

管理插件

使用 /plugin 命令以交互方式管理插件:
  • 浏览市场中的可用插件
  • 安装/卸载插件
  • 启用/禁用插件
  • 查看插件详细信息(提供的命令、agents、hooks)
  • 添加/删除市场
插件文档 中了解有关插件系统的更多信息。

环境变量

Claude Code 支持以下环境变量来控制其行为:
所有环境变量也可以在 settings.json 中配置。这是自动为每个会话设置环境变量或为整个团队或组织推出一组环境变量的有用方式。

Claude 可用的工具

Claude Code 可以访问一组强大的工具,帮助它理解和修改您的代码库: 权限规则可以使用 /allowed-tools 或在 权限设置 中配置。另请参阅 工具特定权限规则

Bash 工具行为

Bash 工具执行 shell 命令,具有以下持久性行为:
  • 工作目录持久化:当 Claude 更改工作目录(例如 cd /path/to/dir)时,后续 Bash 命令将在该目录中执行。您可以使用 CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 在每个命令后重置为项目目录。
  • 环境变量不持久化:在一个 Bash 命令中设置的环境变量(例如 export MY_VAR=value)在后续 Bash 命令中可用。每个 Bash 命令在新的 shell 环境中运行。
要在 Bash 命令中提供环境变量,您有三个选项 选项 1:在启动 Claude Code 之前激活环境(最简单的方法) 在启动 Claude Code 之前在您的终端中激活您的虚拟环境:
这适用于 shell 环境,但在 Claude 的 Bash 命令中设置的环境变量不会在命令之间持久化。 选项 2:在启动 Claude Code 之前设置 CLAUDE_ENV_FILE(持久环境设置) 导出包含您的环境设置的 shell 脚本的路径:
其中 /path/to/env-setup.sh 包含:
Claude Code 将在每个 Bash 命令之前获取此文件,使环境在所有命令中持久化。 选项 3:使用 SessionStart hook(项目特定配置) .claude/settings.json 中配置:
hook 写入 $CLAUDE_ENV_FILE,然后在每个 Bash 命令之前获取。这对于团队共享的项目配置很理想。 有关选项 3 的更多详细信息,请参阅 SessionStart hooks

使用 hooks 扩展工具

您可以使用 Claude Code hooks 在任何工具执行之前或之后运行自定义命令。 例如,您可以在 Claude 修改 Python 文件后自动运行 Python 格式化程序,或通过阻止对某些路径的 Write 操作来防止修改生产配置文件。

另请参阅

  • 权限:权限系统、规则语法、工具特定模式和 managed 策略
  • 身份验证:设置用户对 Claude Code 的访问
  • 故障排除:常见配置问题的解决方案
Last modified on February 12, 2026