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/,通过TaskCreate、TaskUpdate、TaskList、TaskGet四个工具进行管理。 - 依赖与协作:任务间可通过
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)的覆盖顺序是理解双作用域配置的关键,其优先级从高到低为:
- 命令行标志(CLI flags):仅对当前会话生效。
.claude/settings.local.json:项目级、个人专属的、被 Git 忽略的设置。.claude/settings.json:项目级、团队共享的、会被提交到版本控制的设置。~/.claude/settings.local.json:全局个人覆盖设置。~/.claude/settings.json:全局个人设置。
重要规则:deny(拒绝)规则具有最高的安全优先级,即使在低优先级配置中存在对应的 allow(允许)规则也无法覆盖。
三、设计原则与实践建议
这种作用域划分并非随意,而是基于明确的设计原则:
- 协调状态(如任务、团队)必须全局存储,以支持跨项目会话和协作。
- 安全状态(如凭据)必须全局存储,避免意外泄露。
- 个人学习(如自动记忆)是用户独有的,全局存储但不会干扰团队。
- 配置与工作流(如设置、命令、技能)则兼顾了个人偏好与团队共享的需求。
在实际项目中,你可以这样规划:
- 评估功能属性:确定一个功能是个人习惯(如快捷键)、跨项目资产(如通用代理命令)还是团队协作配置(如项目规则)。
- 配置全局基础:在
~/.claude/中设置你希望在所有项目中默认使用的命令、技能和偏好。 - 定制项目级配置:在项目仓库的
.claude/目录中,为特定项目添加专属的规则、钩子和覆盖性设置,并通过.gitignore管理settings.local.json以存储个人敏感偏好。 - 验证作用域:在项目目录下启动 Claude Code,通过运行命令或检查行为,确认生效的是项目级配置而非全局配置。
理解并善用全局与项目级的作用域划分,能让你的 Claude Code 配置既保持个人效率的连续性,又能无缝融入团队的标准化工作流。
FAQ
Q: 为什么 Auto Memory(自动记忆)是全局功能而不是项目级的? A: Auto Memory 代表了 Claude 关于某个项目的个人学习记录,这些内容是用户独有的,并非团队共识,因此不适合放在会被版本控制的项目目录中。将其全局存储,既保证了个人知识的连续性,又避免了信息混杂。
Q: 当全局和项目级存在同名命令或技能时,会执行哪个? A: 对于命令(Commands),同名情况下项目级的定义会覆盖全局的。对于技能(Skills),两者都会被发现并加载,你可以通过引用路径来指定使用哪一个。在设置(Settings)中,项目级配置具有更高优先级。