Claude Code 的功能被明确划分为“仅全局”和“全局/项目双作用域”两类。仅全局的特性包括任务系统、代理团队、自动记忆等个人状态与跨项目协调功能;而设置、命令、技能等团队可共享的项目配置则同时存在于两个层级,且项目级配置优先。理解这一划分是高效管理和复用 Claude Code 工作流的基础。

Claude Code 全局 vs 项目级功能对照:哪些特性只能全局、哪些可以双作用域

在使用 Claude Code 进行深度开发和工作流自动化时,理解不同功能的作用域(Scope)至关重要。所有配置和扩展并非都存在于同一个地方,Claude Code 采用了清晰的 作用域层级 设计,主要分为全局(~/.claude/)和项目级(.claude/)两层。这个设计遵循一个核心原则:个人状态和跨项目协调的特性全局存储,而团队可共享的项目配置则可以放在项目目录内。本文将详细对照这两类功能,并提供配置实践指南。

一、仅限全局(Global-Only)的功能

以下功能只能存在于全局目录 ~/.claude/ 中,无法作用于单个项目。它们的核心属性是个人化、跨项目持久化或涉及安全敏感信息。

功能 存储位置 用途说明
Tasks(任务) ~/.claude/tasks/ 提供跨会话、跨代理的持久化任务列表。
Agent Teams(代理团队) ~/.claude/teams/ 配置多个 Claude Code 实例协同工作的实验性功能。
Auto Memory(自动记忆) ~/.claude/projects/<hash>/memory/ Claude 自动编写的项目相关个人学习笔记,永不共享。
Credentials & OAuth(凭据) 系统钥匙串 + ~/.claude.json 存储 API 密钥、OAuth 令牌,防止误提交至版本控制。
Keybindings(快捷键) ~/.claude/keybindings.json 自定义键盘快捷键,属于个人肌肉记忆。
MCP User Servers ~/.claude.json (mcpServers 字段) 配置在所有项目中均可使用的个人 MCP 服务器。
Preferences/Cache ~/.claude.json 存储主题、默认模型、输出样式、会话状态等。

重点功能深入:Tasks 与 Agent Teams

Tasks(任务)系统在 Claude Code v2.1.16 中引入,用于替代旧的 TodoWrite 系统。它实现了真正的跨会话任务管理。

  • 生命周期:任务状态遵循 pending → in_progress → completed 的流程。
  • 存储与工具:任务数据以文件形式存储在 ~/.claude/tasks/,通过 TaskCreateTaskUpdateTaskListTaskGet 四个工具进行管理。
  • 依赖与协作:任务间可通过 addBlockedBy/addBlocks 建立依赖关系。通过设置环境变量 CLAUDE_CODE_TASK_LIST_ID,多个会话可以共享同一个任务列表,实现实时协同。

Agent Teams(代理团队) 是一个实验性功能,于 2026 年 2 月公布。

  • 启用方式:需要在全局设置中明确启用。
    // ~/.claude/settings.json
    {
      "env": {
        "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
      }
    }
  • 配置与模式:团队配置位于 ~/.claude/teams/{team-name}/,支持“进程内”和“分屏”两种协作模式。

二、全局/项目双作用域(Dual-Scope)的功能

以下功能在全局和项目两个层级都存在配置,项目级配置通常会覆盖全局配置。它们代表了团队可以为特定项目定制和共享的工作流元素。

功能 全局 (~/.claude/) 项目级 (.claude/) 优先级规则
CLAUDE.md ~/.claude/CLAUDE.md ./CLAUDE.md.claude/CLAUDE.md 项目覆盖全局
Settings(设置) ~/.claude/settings.json .claude/settings.json + .claude/settings.local.json 项目 > 全局
Rules(规则) ~/.claude/rules/*.md .claude/rules/*.md 项目覆盖全局
Agents/Subagents(代理) ~/.claude/agents/*.md .claude/agents/*.md 项目覆盖全局
Commands(命令) ~/.claude/commands/*.md .claude/commands/*.md 两者均可用,同名时项目优先
Skills(技能) ~/.claude/skills/ .claude/skills/ 两者均可用
Hooks(钩子) ~/.claude/hooks/ .claude/hooks/ 两者均会执行
MCP Servers ~/.claude.json (用户作用域) .mcp.json (项目作用域) 作用域优先级:local > project > user

Settings 的优先级详解

设置(Settings)的覆盖顺序是理解双作用域配置的关键,其优先级从高到低为:

  1. 命令行标志(CLI flags):仅对当前会话生效。
  2. .claude/settings.local.json:项目级、个人专属的、被 Git 忽略的设置。
  3. .claude/settings.json:项目级、团队共享的、会被提交到版本控制的设置。
  4. ~/.claude/settings.local.json:全局个人覆盖设置。
  5. ~/.claude/settings.json:全局个人设置。

重要规则deny(拒绝)规则具有最高的安全优先级,即使在低优先级配置中存在对应的 allow(允许)规则也无法覆盖。

三、设计原则与实践建议

这种作用域划分并非随意,而是基于明确的设计原则:

  • 协调状态(如任务、团队)必须全局存储,以支持跨项目会话和协作。
  • 安全状态(如凭据)必须全局存储,避免意外泄露。
  • 个人学习(如自动记忆)是用户独有的,全局存储但不会干扰团队。
  • 配置与工作流(如设置、命令、技能)则兼顾了个人偏好与团队共享的需求。

在实际项目中,你可以这样规划:

  1. 评估功能属性:确定一个功能是个人习惯(如快捷键)、跨项目资产(如通用代理命令)还是团队协作配置(如项目规则)。
  2. 配置全局基础:在 ~/.claude/ 中设置你希望在所有项目中默认使用的命令、技能和偏好。
  3. 定制项目级配置:在项目仓库的 .claude/ 目录中,为特定项目添加专属的规则、钩子和覆盖性设置,并通过 .gitignore 管理 settings.local.json 以存储个人敏感偏好。
  4. 验证作用域:在项目目录下启动 Claude Code,通过运行命令或检查行为,确认生效的是项目级配置而非全局配置。

理解并善用全局与项目级的作用域划分,能让你的 Claude Code 配置既保持个人效率的连续性,又能无缝融入团队的标准化工作流。

FAQ

Q: 为什么 Auto Memory(自动记忆)是全局功能而不是项目级的? A: Auto Memory 代表了 Claude 关于某个项目的个人学习记录,这些内容是用户独有的,并非团队共识,因此不适合放在会被版本控制的项目目录中。将其全局存储,既保证了个人知识的连续性,又避免了信息混杂。

Q: 当全局和项目级存在同名命令或技能时,会执行哪个? A: 对于命令(Commands),同名情况下项目级的定义会覆盖全局的。对于技能(Skills),两者都会被发现并加载,你可以通过引用路径来指定使用哪一个。在设置(Settings)中,项目级配置具有更高优先级。