Skip to content

高级功能

Claude Code 高级功能完整指南,涵盖规划模式、扩展思考、自动模式、后台任务、权限模式、打印模式(非交互)、会话管理、交互功能、消息通道、语音输入、远程控制、网页会话、桌面应用、任务列表、提示词建议、Git 工作树、沙盒、受管设置和配置。

目录

  1. 概览
  2. 规划模式
  3. 扩展思考
  4. 自动模式
  5. 后台任务
  6. 监控工具(事件驱动流)
  7. 定时任务
  8. 权限模式
  9. 无头模式
  10. 会话管理
  11. 交互功能
  12. TUI 模式(全屏)
  13. 语音输入
  14. 消息通道(Channels)
  15. Chrome 集成
  16. 远程控制
  17. 网页会话
  18. 桌面应用
  19. 任务列表
  20. 提示词建议
  21. Git 工作树
  22. 沙盒
  23. 企业受管设置
  24. 配置与设置
  25. Agent Teams
  26. 最佳实践
  27. 更多资源

概览

Claude Code 的高级功能把基础能力扩展到了规划、推理、自动化和控制层面。它们能支持更复杂的开发任务、代码审查、自动化流程以及多会话管理。

核心高级功能包括:

功能 说明
规划模式 先写详细实现计划,再开始编码
扩展思考 对复杂问题进行更深入的推理
自动模式 后台安全分类器在执行前审查每个动作(研究预览)
后台任务 长时间任务不阻塞对话
权限模式 控制 Claude 可以做什么(defaultacceptEditsplanautodontAskbypassPermissions
打印模式 非交互式运行,适合自动化和 CI/CD(claude -p
会话管理 管理多个会话
交互功能 快捷键、多行输入、历史记录
语音输入 按住说话,支持 20 种语言的语音识别
消息通道 MCP server 向运行中的会话推送消息(研究预览)
远程控制 从 Claude.ai 或 Claude app 控制本地会话
网页会话 在浏览器中运行 Claude Code
桌面应用 支持可视化 diff 审查和多会话的独立应用
任务列表 跨上下文压缩持久跟踪任务
提示词建议 根据上下文智能推荐命令
Git 工作树 隔离的 worktree 分支,适合并行工作
沙盒 操作系统级文件系统和网络隔离
企业受管设置 通过 plist、Registry 或受管文件进行企业部署
配置 用 JSON 配置文件定制行为

规划模式

规划模式允许 Claude 在真正实现前先梳理复杂任务,生成一份你可以审阅并批准的详细计划。

什么是规划模式?

规划模式是一个两阶段流程:

  1. 规划阶段:Claude 分析任务并生成详细实现计划
  2. 实现阶段:在你批准后,Claude 执行计划

什么时候使用规划模式

适合 不建议
复杂的多文件重构 简单 bug 修复
新功能开发 格式化修改
架构调整 单文件编辑
数据库迁移 快速查询
大型 API 重设计

启用方式

斜杠命令:

/plan Implement user authentication system

CLI 参数:

claude --permission-mode plan

设为默认:

{
  "permissions": {
    "defaultMode": "plan"
  }
}

快捷键:

  • Shift + Tab - 切换权限模式(包括 plan)
  • Alt + M - 切换权限模式(Windows/Linux)

好处

  • 结构化实施方式:把实现步骤拆得更清楚
  • 审阅和批准:先看计划,再执行
  • 风险识别:先发现潜在问题
  • 阶段清晰:有明确的里程碑和阶段划分

示例:功能实现

User: /plan Add a real-time notification system

Claude: 我会为实时通知系统制定计划。

## 实现计划

### 阶段 1:基础设施
1. 安装 WebSocket 库(socket.io)
2. 搭建 WebSocket server
3. 配置连接管理

### 阶段 2:后端
4. 创建通知服务
5. 实现通知队列
6. 为通知添加数据库 schema
7. 创建 API 端点

### 阶段 3:前端
8. 搭建 WebSocket client
9. 创建通知 UI 组件
10. 实现通知状态管理
11. 添加通知权限

### 阶段 4:测试与发布
12. 编写单元测试
13. 编写集成测试
14. 更新文档
15. 部署到 staging

预计时间:3-4 小时
需要修改的文件:12 个
需要创建的新文件:8 个

准备继续吗?(yes/no/modify plan)

计划修改

User: 修改计划 - 先跳过队列,后面再加

Claude: 已更新计划:
[展示删除队列后的计划]

User: 看起来不错,继续

Claude: [按修改后的计划开始实现]

配置

# 通过 CLI 启用 plan mode
claude --permission-mode plan

# 或在 REPL 里使用 /plan
/plan Implement user authentication system

规划专用模型别名:使用 opusplan,规划用 Opus,执行用 Sonnet:

claude --model opusplan "design and implement the new API"

外部编辑计划:按 Ctrl+G 可以把当前计划打开到外部编辑器里进行更详细的修改。

v2.1.112 更新:计划文件现在以生成它的提示词命名(而不是随机词),方便浏览和复用。

v2.1.136 更新 — 规划模式写入拦截无条件生效:规划模式现在会阻止所有文件写入,即使 permissions.allow 中存在匹配的 Edit(...) 规则。之前宽松的 Edit(...) 规则可能在规划模式下允许写入;这个绕过已被关闭。如果工作流依赖旧行为,请在编辑前退出规划模式(Shift+Tab)。


Ultraplan(云端规划)

v2.1.101 新功能:Ultraplan 现在会在首次调用时自动创建一个 Claude Code on the web 云端环境——无需手动设置,无需等待容器预热。

注意:Ultraplan 是研究预览功能,需要 Claude Code v2.1.91 或更高版本。

/ultraplan 把规划任务从本地 CLI 发送到 Claude Code on the web 会话中运行。Claude 在云端起草计划,你的终端可以继续做其他工作,然后你在浏览器中审阅草稿并选择在哪里执行——在同一云端会话中,或传回终端。


扩展思考

扩展思考让 Claude 在给出解决方案前,花更多时间进行复杂推理。

什么是扩展思考?

这是一个有意识的、分步骤的推理过程,Claude 会:

  • 拆解复杂问题
  • 比较多种方案
  • 评估权衡
  • 推导边界情况

启用方式

快捷键:

  • Option + T(macOS)/ Alt + T(Windows/Linux)- 切换扩展思考

自动启用:

  • 对所有模型默认开启(Opus 4.7、Sonnet 4.6、Haiku 4.5)
  • Opus 4.7:自适应推理,effort 等级为 low(○)、medium(◐)、high(●)、xhigh(仅 Opus 4.7,默认)、max。Opus 4.6 和 Sonnet 4.6 支持 lowmediumhighmax(不支持 xhigh)。Opus 4.7 具有 100 万 token 原生上下文窗口(1M 上下文修复在 v2.1.117——之前 /context 对 Opus 4.7 误算了 200K 窗口并触发过早自动压缩)。从 v2.1.129 起,/context 的可视化仅在 UI 中显示,不再泄露到对话上下文(每次调用节省约 1.6k token),所以可以放心频繁调用 /context
  • Pro/Max 订阅者在 Opus 4.6 / Sonnet 4.6 上:v2.1.117 中默认 effort 从 medium 提升到 high
  • 其他模型:固定预算最高 31,999 token

配置方法:

  • 切换:Alt+T / Option+T,或通过 /config
  • 查看推理:Ctrl+O(详细模式)
  • 设置 effort:/effort 命令或 --effort 标志

自定义预算:

export MAX_THINKING_TOKENS=1024

Effort 等级(Opus 4.7、Opus 4.6、Sonnet 4.6 支持):

export CLAUDE_CODE_EFFORT_LEVEL=xhigh   # low (○), medium (◐), high (●), xhigh (仅 Opus 4.7,默认), 或 max

CLI 标志:

claude --effort high "complex architectural review"

斜杠命令:

/effort high

注意:提示词中的关键词 “ultrathink” 会激活深度推理模式。effort 等级 lowmediumhighmax 在 Opus 4.7、Opus 4.6 和 Sonnet 4.6 上支持。xhigh(Opus 4.7 默认)仅限 Opus 4.7。

好处

  • 更适合复杂问题
  • 更容易发现边界条件
  • 便于比较多个方案
  • 输出通常更稳健

示例:架构决策

User: ultrathink Should we use microservices or a monolith for our e-commerce platform?

Claude: 让我仔细思考这个架构决策...

## 背景分析
- 团队规模:5 名开发人员
- 预期流量:初期 1 万日活用户
- 需要扩展到 10 万+ 用户
- DevOps 资源有限
- 6 个月 MVP 时间线

## 方案 1:微服务
优点:
+ 独立扩展
+ 技术灵活性
+ 团队独立性
+ 故障隔离

缺点:
- 运维复杂性
- 网络开销
- 需要分布式追踪
- 需要 DevOps 专业知识
- 初始开发较慢

## 方案 2:单体应用
优点:
+ 部署更简单
+ 初始开发更快
+ 调试更容易
+ 运维开销更低
+ 单一代码库

缺点:
- 后期扩展困难
- 全有或全无部署
- 技术锁定
- 可能出现紧耦合

## 决策因素
1. 团队规模(5 人)→ 倾向单体
2. DevOps 资源(有限)→ 倾向单体
3. 时间线(6 个月)→ 倾向单体
4. 未来扩展(10 万用户)→ 单体 + 缓存可实现
5. 复杂度预算 → 有限

## 建议
从**模块化单体**开始:
- 单一部署单元
- 清晰的模块边界
- 模块间干净的接口
- 为未来需要时提取微服务做好准备

这给你:
✓ 快速的初始开发
✓ 低运维复杂度
✓ 后期可提取服务的选项
✓ 清晰的架构

迁移路径:当用户达到 5 万+ 或特定模块需要独立扩展时,将这些模块提取为微服务。

配置

{
  "thinking": {
    "enabled": true,
    "effort": "high"
  }
}

自动模式

自动模式是研究预览权限模式(2026 年 3 月),使用后台安全分类器在执行前审查每个动作。它允许 Claude 自主工作,同时阻止危险操作。

要求

要求 说明
套餐 Team、Enterprise 或 API(Pro 或 Max 套餐不可用)
模型 Claude Sonnet 4.6 或 Opus 4.7
提供商 仅 Anthropic API(不支持 Bedrock、Vertex 或 Foundry)
分类器 在 Claude Sonnet 4.6 上运行(增加额外 token 成本)

启用方式

# 解锁 auto mode(Max 订阅者在 Opus 4.7 上不再需要此标志——可直接使用)
claude --enable-auto-mode

# 然后在 REPL 中用 Shift+Tab 切换到它

v2.1.112 更新:自动模式不再需要 --enable-auto-mode 标志。Max 订阅者可在 Opus 4.7 上直接使用。

或设置为默认权限模式:

claude --permission-mode auto

通过配置设置:

{
  "permissions": {
    "defaultMode": "auto"
  }
}

分类器工作原理

后台分类器按以下决策顺序评估每个动作:

  1. 允许/拒绝规则 — 首先检查显式权限规则
  2. 只读/编辑自动批准 — 文件读取和编辑自动通过
  3. 分类器 — 后台分类器审查动作
  4. 回退 — 连续 3 次或总计 20 次阻止后,回退到提示用户

默认阻止的动作

被阻止的动作 示例
管道到 shell 安装 curl | bash
向外部发送敏感数据 通过网络发送 API 密钥、凭据
生产部署 针对生产环境的部署命令
批量删除 对大目录执行 rm -rf
IAM 变更 权限和角色修改
强制推送到 main git push --force origin main

默认允许的动作

允许的动作 示例
本地文件操作 读取、写入、编辑项目文件
声明的依赖安装 npm installpip install(来自 manifest)
只读 HTTP curl 获取文档
推送到当前分支 git push origin feature-branch

配置自动模式

打印默认规则为 JSON

claude auto-mode defaults

配置可信基础设施:通过 autoMode.environment 受管设置为企业部署配置可信 CI/CD 环境、部署目标和基础设施模式。

使用 "$defaults" 扩展默认值(v2.1.118)

从 v2.1.118 起,autoMode.allowautoMode.soft_denyautoMode.environment 接受 "$defaults" 标记,将你的规则追加到内置列表而不是替换它。在 v2.1.118 之前,任何用户定义的数组都会静默覆盖内置值。

无条件阻止 autoMode.hard_deny(v2.1.136)

autoMode.hard_deny(v2.1.136+)是一个分类器规则数组,无论推断的用户意图如何都会阻止一类动作。用于必须在自动模式下永不运行的动作——例如对根路径执行 rm -rf 或对受保护分支执行 git push --force。与 soft_deny 不同,hard-deny 规则不可由分类器协商。

{
  "autoMode": {
    "hard_deny": ["Bash(rm -rf /:*)", "Bash(git push --force*)"]
  }
}

之前(替换内置值 — v2.1.118 之前的行为):

{
  "autoMode": {
    "allow": ["Bash(gh pr list:*)"]
  }
}

之后(扩展内置值 — v2.1.118+):

{
  "autoMode": {
    "allow": ["$defaults", "Bash(gh pr list:*)"],
    "soft_deny": ["$defaults", "Bash(kubectl delete:*)"],
    "environment": ["$defaults", "trusted-ci.internal"]
  }
}

使用 "$defaults" 保留发布的基线规则,同时在上面叠加组织或项目特定的规则。

回退行为

当分类器不确定时,自动模式会回退到提示用户:

  • 连续 3 次分类器阻止后
  • 会话中总计 20 次分类器阻止后

这确保当分类器无法自信地批准动作时,用户始终保留控制权。

预置自动模式等效权限(无需 Team 套餐)

如果你没有 Team 套餐或想要更简单的方法(无需后台分类器),可以用保守的安全权限基线填充 ~/.claude/settings.json。脚本从只读和本地检查规则开始,然后让你在需要时选择加入编辑、测试、本地 git 写入、包安装和 GitHub 写入操作。

文件: 10-advanced-features/setup-auto-mode-permissions.py

# 预览将要添加的内容(不写入任何更改)
python3 10-advanced-features/setup-auto-mode-permissions.py --dry-run

# 应用保守基线
python3 10-advanced-features/setup-auto-mode-permissions.py

# 只在需要时添加更多能力
python3 10-advanced-features/setup-auto-mode-permissions.py --include-edits --include-tests
python3 10-advanced-features/setup-auto-mode-permissions.py --include-git-write --include-packages

脚本添加以下类别的规则:

类别 示例
核心只读工具 Read(*)Glob(*)Grep(*)Agent(*)WebSearch(*)WebFetch(*)
本地检查 Bash(git status:*)Bash(git log:*)Bash(git diff:*)Bash(cat:*)
可选编辑 Edit(*)Write(*)NotebookEdit(*)
可选测试/构建 Bash(pytest:*)Bash(python3 -m pytest:*)Bash(cargo test:*)
可选 git 写入 Bash(git add:*)Bash(git commit:*)Bash(git stash:*)
Git(本地写入) Bash(git add:*)Bash(git commit:*)Bash(git checkout:*)
包管理器 Bash(npm install:*)Bash(pip install:*)Bash(cargo build:*)
构建和测试 Bash(make:*)Bash(pytest:*)Bash(go test:*)
常用 shell Bash(ls:*)Bash(cat:*)Bash(find:*)Bash(cp:*)Bash(mv:*)
GitHub CLI Bash(gh pr view:*)Bash(gh pr create:*)Bash(gh issue list:*)

危险操作(rm -rfsudo、强制推送、DROP TABLEterraform destroy 等)被有意排除。脚本是幂等的——运行两次不会重复规则。


后台任务

后台任务允许长时间运行的操作在不阻塞对话的情况下执行。

什么是后台任务?

后台任务适合长时间运行的工作,例如构建、测试、下载、扫描或并行分析。你可以把它们交给 Claude,让对话继续保持响应。

基本用法

User: Run tests in background

Claude: Started task bg-1234

/task list           # 显示所有任务
/task status bg-1234 # 查看进度
/task show bg-1234   # 查看输出
/task cancel bg-1234 # 取消任务

启动后台任务

User: Run the full test suite in the background

Claude: Starting tests in background (task-id: bg-1234)
You can continue working while tests run.

[你可以继续对话]

User: Meanwhile, let's refactor the auth module

Claude: [在测试后台运行时处理认证模块]

[稍后,测试完成时]

Claude: 📢 Background task bg-1234 completed:
✅ 245 tests passed
❌ 3 tests failed
View results: /task show bg-1234

管理后台任务

列出活动任务

User: /task list

Active background tasks:
1. [bg-1234] Running tests (50% complete, 2min remaining)
2. [bg-1235] Building Docker image (25% complete, 8min remaining)
3. [bg-1236] Deploying to staging (90% complete, 30sec remaining)

查看任务状态

User: /task status bg-1234

Task bg-1234: Running tests
Status: In progress
Progress: 120/245 tests (49%)
Started: 2025-11-08 10:30:15
Estimated completion: 2025-11-08 10:34:22

查看任务输出

User: /task show bg-1234

[显示测试运行的实时输出]

取消任务

User: /task cancel bg-1234

Cancelled background task bg-1234

示例:并行开发

User: Run the build in the background

Claude: Starting build... (task-id: bg-5001)

User: Also run the linter in background

Claude: Starting linter... (task-id: bg-5002)

User: While those run, let's implement the new API endpoint

Claude: [在构建和 lint 运行时实现 API 端点]

[10 分钟后]

Claude: 📢 Build completed successfully (bg-5001)
📢 Linter found 12 issues (bg-5002)

User: Show me the linter issues

Claude: [显示 bg-5002 的 lint 输出]

配置

{
  "backgroundTasks": {
    "enabled": true,
    "maxConcurrentTasks": 5,
    "notifyOnCompletion": true,
    "autoCleanup": true,
    "logOutput": true
  }
}

监控工具(事件驱动流)

v2.1.98 新功能:监控工具让 Claude 监视后台命令的 stdout,在匹配事件出现时立即反应——取代轮询循环和 sleep 等待长时间运行的进程。

监控工具附加到任何写入 stdout 的 shell 命令。命令的每一行 stdout 都成为唤醒会话的通知。Claude 指定命令;运行时流式传输输出并在事件触发时立即传递。

为什么重要

使用 /loopsleep 轮询每个周期都会消耗一个完整的 API 往返,无论是否有变化。监控工具在事件触发前保持静默,在命令安静时消耗零 token。当事件发生时,Claude 立即反应——无需等待下一次轮询才发现。对于运行超过几分钟的任何内容,这都比轮询循环更便宜、更快。

两种常见模式

流过滤器监视长时间运行源的持续输出。命令永远运行;每一行匹配的行都是事件。

tail -f /var/log/app.log | grep --line-buffered "ERROR"

轮询发出过滤器定期检查源,仅在变化时发出。用于 API、数据库或任何没有原生流的内容。

last=$(date -u +%Y-%m-%dT%H:%M:%SZ)
while true; do
  gh api "repos/owner/repo/issues/123/comments?since=$last" || true
  last=$(date -u +%Y-%m-%dT%H:%M:%SZ)
  sleep 30
done

具体示例

“启动我的开发服务器并监视错误。” Claude 将服务器作为后台任务启动,附加监控过滤器(tail -F server.log | grep --line-buffered -E "ERROR|FATAL"),会话保持安静。当日志中出现错误行时,Claude 醒来,读取错误,可以反应——重启服务器、修复 bug 或向你显示——无需你手动检查。

警告:管道到 grep 时,始终使用 grep --line-buffered。没有它,grep 以 4KB 块缓冲 stdout,在低流量流上可能延迟事件数分钟。这是监控工具实践中 #1 的问题——如果你的过滤器在不应该沉默时沉默,首先检查 --line-buffered 标志。


定时任务

定时任务让 Claude 按计划重复执行某些提示词或任务。任务是会话范围的——在 Claude Code 激活时运行,会话结束时清除。自 v2.1.72+ 起可用。

/loop 命令

# 显式间隔
/loop 5m check if the deployment finished

# 自然语言
/loop check build status every 30 minutes

也支持标准 5 字段 cron 表达式用于精确调度。

一次性提醒

设置在特定时间触发一次的提醒:

remind me at 3pm to push the release branch
in 45 minutes, run the integration tests

管理定时任务

工具 说明
CronCreate 创建新的定时任务
CronList 列出所有活动的定时任务。从 v2.1.136 起,输出还包括限定符和计划的提示词内容,无需打开任务即可审计每个 cron 将运行什么
CronDelete 删除定时任务

限制和行为

方面 说明
最大任务数 每会话最多 50 个定时任务
范围 会话范围——会话结束时清除
循环任务过期 3 天后自动过期
触发条件 仅在 Claude Code 运行时触发——错过的触发不会补执行
循环抖动 间隔的 10%(最长 15 分钟)
一次性抖动 在 :00/:30 边界上最长 90 秒
持久化 跨重启不持久化

云端定时任务

使用 /schedule 创建在 Anthropic 基础设施上运行的云端定时任务:

/schedule daily at 9am run the test suite and report failures

云端定时任务跨重启持久化,不需要本地运行 Claude Code。

禁用定时任务

export CLAUDE_CODE_DISABLE_CRON=1

示例:监控部署

/loop 5m check the deployment status of the staging environment.
        If the deploy succeeded, notify me and stop looping.
        If it failed, show the error logs.

提示:定时任务是会话范围的。对于跨重启持久化的自动化,请使用 CI/CD 流水线、GitHub Actions 或桌面应用定时任务。


权限模式

权限模式控制 Claude 可以不经明确批准就执行哪些操作。

可用权限模式

模式 行为
default 仅读取文件;所有其他操作提示
acceptEdits 读取和编辑文件;命令需要提示
plan 仅读取文件(研究模式,不编辑)
auto 所有操作带后台安全分类器检查(研究预览)
bypassPermissions 所有操作,无权限检查(危险)
dontAsk 仅执行预批准的工具;所有其他工具被拒绝

在 CLI 中用 Shift+Tab 循环切换模式。用 --permission-mode 标志或 permissions.defaultMode 设置设为默认。

--dangerously-skip-permissions 扩展路径覆盖(v2.1.121、v2.1.126)--dangerously-skip-permissions CLI 标志(及等效的 bypassPermissions 模式)现在绕过更广泛允许列表的提示——.claude/skills/.claude/agents/.claude/commands/.claude/.git/.vscode/ 和 shell 配置文件。灾难性删除命令(rm -rf / 等)无论模式如何仍会提示。将此标志视为比以前更锋利的工具;仅在一次性沙盒中使用。

Windows shell 检测(v2.1.120、v2.1.126):Git for Windows / Git Bash 不再必需。当 Git Bash 缺失时,Claude Code 使用 PowerShell 作为 shell 工具。从 v2.1.126 起,当 PowerShell 工具启用时,PowerShell 是主要 shell,检测覆盖通过 Microsoft Store、MSI(无 PATH)或作为 .NET 全局工具安装的 PowerShell 7。

启用方式

快捷键

Shift + Tab  # 循环切换所有 6 种模式

斜杠命令

/plan                  # 进入计划模式

CLI 标志

claude --permission-mode plan
claude --permission-mode auto

设置

{
  "permissions": {
    "defaultMode": "auto"
  }
}

示例

Default 模式

对重要操作请求确认:

User: Fix the bug in auth.ts

Claude: I need to modify src/auth.ts to fix the bug.
The change will update the password validation logic.

Approve this change? (yes/no/show)

Plan 模式

执行前审阅实现计划:

User: /plan Implement user authentication system

Claude: I'll create a plan for implementing authentication.

## Implementation Plan
[详细的阶段和步骤计划]

Ready to proceed? (yes/no/modify)

Accept Edits 模式

自动接受文件修改:

User: acceptEdits
User: Fix the bug in auth.ts

Claude: [直接修改,不询问]

使用场景

代码审查

User: claude --permission-mode plan
User: Review this PR and suggest improvements

Claude: [读取代码,提供反馈,但不能修改]

结对编程

User: claude --permission-mode default
User: Let's implement the feature together

Claude: [每次更改前请求批准]

自动化任务

User: claude --permission-mode acceptEdits
User: Fix all linting issues in the codebase

Claude: [自动接受文件编辑,不询问]

无头模式

打印模式(claude -p)允许 Claude Code 在没有交互式输入的情况下运行,非常适合自动化和 CI/CD。这是非交互模式,取代了旧的 --headless 标志。

什么是打印模式?

打印模式支持:

  • 自动化脚本执行
  • CI/CD 集成
  • 批处理
  • 定时任务

运行打印模式

# 运行指定任务
claude -p "Run all tests"

# 处理管道内容
cat error.log | claude -p "Analyze these errors"

# CI/CD 集成(GitHub Actions)
- name: AI Code Review
  run: claude -p "Review PR"

更多使用示例

# 运行指定任务并捕获输出
claude -p "Run all tests and generate coverage report"

# 结构化输出
claude -p --output-format json "Analyze code quality"

# 从标准输入接收
echo "Analyze code quality" | claude -p "explain this"

示例:CI/CD 集成

GitHub Actions

# .github/workflows/code-review.yml
name: AI Code Review

on: [pull_request]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code

      - name: Run Claude Code Review
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          claude -p --output-format json \
            --max-turns 3 \
            "Review this PR for:
            - Code quality issues
            - Security vulnerabilities
            - Performance concerns
            - Test coverage
            Output results as JSON" > review.json

      - name: Post Review Comment
        uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');
            const review = JSON.parse(fs.readFileSync('review.json', 'utf8'));
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: JSON.stringify(review, null, 2)
            });

配置

# 限制自主回合数
claude -p --max-turns 5 "refactor this module"

# 结构化 JSON 输出
claude -p --output-format json "analyze this codebase"

# 带 schema 验证
claude -p --json-schema '{"type":"object","properties":{"issues":{"type":"array"}}}' \
  "find bugs in this code"

# 禁用会话持久化
claude -p --no-session-persistence "one-off analysis"

会话管理

会话管理用于在多个会话之间恢复、重命名、分叉和持续工作。

常用命令

命令 说明
/resume 通过 ID 或名称恢复会话
/rename 命名当前会话
/fork 分叉当前会话到新分支
claude -c 继续最近的对话
claude -r "session" 通过名称或 ID 恢复会话

恢复会话

继续最近的对话

claude -c

恢复指定名称的会话

claude -r "auth-refactor" "finish this PR"

重命名当前会话(在 REPL 内):

/rename auth-refactor

分叉会话

分叉会话以尝试替代方法而不丢失原始会话:

/fork

或从 CLI:

claude --resume auth-refactor --fork-session "try OAuth instead"

会话持久化

会话自动保存,可以恢复:

# 继续最近的对话
claude -c

# 通过名称或 ID 恢复指定会话
claude -r "auth-refactor"

# 恢复并分叉用于实验
claude --resume auth-refactor --fork-session "alternative approach"

会话摘要(v2.1.108)

当你离开后返回会话时,Claude 可以显示完成内容的简要摘要。这对于禁用遥测的用户(Bedrock、Vertex、Foundry 用户)默认启用。

OTEL 遥测 — 重新启用反馈调查(v2.1.136+):捕获 OpenTelemetry 数据的组织可以通过设置 CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1 重新启用 Anthropic 的会话质量调查。调查在 OTEL 部署中默认关闭,因为它之前被重定向到遥测管道之外。

控制摘要行为:

/recap                                 # 手动触发摘要
/config                                # 切换自动摘要开/关

或通过环境变量:

CLAUDE_CODE_ENABLE_AWAY_SUMMARY=0 claude   # 禁用摘要
CLAUDE_CODE_ENABLE_AWAY_SUMMARY=1 claude   # 强制启用摘要

交互功能

快捷键

Claude Code 支持快捷键以提高效率。以下是官方文档的完整参考:

快捷键 说明
Ctrl+C 取消当前输入/生成
Ctrl+D 退出 Claude Code
Ctrl+G 在外部编辑器中编辑计划
Ctrl+L 清除终端屏幕
Ctrl+O 切换详细输出(查看推理)
Ctrl+R 反向搜索历史。默认为所有项目中的所有提示(v2.1.129+);在选择器中按 Ctrl+S 可缩小到当前项目。早期版本默认为仅项目
Ctrl+T 切换任务列表视图
Ctrl+B 后台运行任务
Esc+Esc 回退代码/对话
Shift+Tab / Alt+M 切换权限模式
Option+P / Alt+P 切换模型
Option+T / Alt+T 切换扩展思考

行编辑(标准 readline 快捷键):

快捷键 操作
Ctrl + A 移动到行首
Ctrl + E 移动到行尾
Ctrl + K 剪切到行尾
Ctrl + U 剪切到行首
Ctrl + W 向后删除单词
Ctrl + Y 粘贴
Tab 自动补全
↑ / ↓ 命令历史

自定义快捷键

通过运行 /keybindings 创建自定义快捷键,这会打开 ~/.claude/keybindings.json 进行编辑(v2.1.18+)。

配置格式

{
  "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+e": "chat:externalEditor",
        "ctrl+u": null,
        "ctrl+k ctrl+s": "chat:stash"
      }
    },
    {
      "context": "Confirmation",
      "bindings": {
        "ctrl+a": "confirmation:yes"
      }
    }
  ]
}

将绑定设为 null 以取消绑定默认快捷键。

可用上下文

快捷键绑定到特定 UI 上下文:

上下文 关键操作
Chat submitcancelcycleModemodelPickerthinkingToggleundoexternalEditorstashimagePaste
Confirmation yesnopreviousnextnextFieldcycleModetoggleExplanation
Global interruptexittoggleTodostoggleTranscript
Autocomplete acceptdismissnextprevious
HistorySearch searchpreviousnext
Settings 上下文特定的设置导航
Tabs 标签页切换和管理
Help 帮助面板导航

共有 18 个上下文,包括 TranscriptTaskThemePickerAttachmentsFooterMessageSelectorDiffDialogModelPickerSelect

Chord 支持

快捷键绑定支持 chord 序列(多键组合):

"ctrl+k ctrl+s"   → 两键序列:先按 ctrl+k,再按 ctrl+s
"ctrl+shift+p"    → 同时按修饰键

按键语法

  • 修饰符ctrlalt(或 opt)、shiftmeta(或 cmd
  • 大写意味着 ShiftK 等同于 shift+k
  • 特殊键escapeenterreturntabspacebackspacedelete、方向键

保留键与冲突键

状态 说明
Ctrl+C 保留 不能重新绑定(中断)
Ctrl+D 保留 不能重新绑定(退出)
Ctrl+B 终端冲突 tmux 前缀键
Ctrl+A 终端冲突 GNU Screen 前缀键
Ctrl+Z 终端冲突 进程挂起

提示:如果快捷键不工作,检查与终端模拟器或复用器的冲突。

Tab 补全

Claude Code 提供智能 tab 补全:

User: /rew<TAB>
→ /rewind

User: /plu<TAB>
→ /plugin

User: /plugin <TAB>
→ /plugin install
→ /plugin enable
→ /plugin disable

命令历史

访问之前的命令:

User: <↑>  # 上一个命令
User: <↓>  # 下一个命令
User: Ctrl+R  # 搜索历史

(reverse-i-search)`test': run all tests

多行输入

对于复杂查询,使用多行模式:

User: \
> Long complex prompt
> spanning multiple lines
> \end

示例:

User: \
> Implement a user authentication system
> with the following requirements:
> - JWT tokens
> - Email verification
> - Password reset
> - 2FA support
> \end

Claude: [处理多行请求]

行内编辑

发送前编辑命令:

User: Deploy to prodcution<Backspace><Backspace>uction

[发送前就地编辑]

Vim 模式

启用 Vi/Vim 快捷键进行文本编辑:

启用

  • 通过 /config(切换"Editor / Vim mode")或在 ~/.claude/settings.json 中设置 editorMode: "vim"。独立的 /vim 斜杠命令已移除(参见 issue #43370);vim 模式现在是配置驱动的
  • Esc 切换到 NORMAL 模式,i/a/o 切换到 INSERT 模式,v 切换到 VISUAL 模式,V 切换到 VISUAL-LINE 模式(v2.1.118+)

导航键

  • h / l - 左/右移动
  • j / k - 下/上移动
  • w / b / e - 按单词移动
  • 0 / $ - 移动到行首/行尾
  • gg / G - 跳转到文本开头/结尾

文本对象

  • iw / aw - 单词内/周围
  • i" / a" - 引号内/周围
  • i( / a( - 括号内/周围

可视模式(v2.1.118+)

模式 行为
v Visual 字符级选择带可视化反馈;用动作键扩展
V Visual-line 行级选择;总是选择整行
y Yank 复制当前可视选择
d / x Delete 删除当前可视选择
c Change 删除选择并进入 INSERT 模式
Esc Exit 返回 NORMAL 模式

可视选择在输入字段中高亮显示,可以在提交操作符前准确看到将被复制、删除或更改的内容。

Bash 模式

! 前缀直接执行 shell 命令:

! npm test
! git status
! cat src/index.js

用于快速执行命令,无需切换上下文。


TUI 模式(全屏)

v2.1.110 新功能

TUI(文本用户界面)模式以无闪烁输出渲染 Claude Code 全屏——非常适合终端复用器如 tmux 或 iTerm2 分屏。

启用 TUI 模式

/tui 命令切换 TUI 模式,或用 --tui 标志启动:

/tui          # 在会话内切换
claude --tui  # 直接以 TUI 模式启动

配置

设置 说明 默认值
autoScrollEnabled 自动滚动到最新消息 true

通过 /configsettings.json 禁用自动滚动:

{
  "autoScrollEnabled": false
}

焦点视图

/focus 命令切换焦点视图——无干扰显示,仅显示最相关的输出。Ctrl+O 现在仅在正常和详细转录之间切换(焦点视图是 /focus)。


语音输入

语音输入提供按住说话的语音输入,让你可以口述提示词而不是打字。

启用语音输入

/voice

功能

功能 说明
按住说话 按住键录音,松开发送
20 种语言 语音转文本支持 20 种语言
自定义快捷键 通过 /keybindings 配置按住说话键
账户要求 需要 Claude.ai 账户用于 STT 处理

配置

在快捷键文件(/keybindings)中自定义按住说话快捷键。语音输入使用你的 Claude.ai 账户进行语音转文本处理。


消息通道(Channels)

消息通道是研究预览功能,通过 MCP server 将外部服务的事件推送到运行中的 Claude Code 会话。来源包括 Telegram、Discord、iMessage 和任意 webhook,允许 Claude 响应实时通知而无需轮询。

认证(v2.1.128+)--channels 现在支持 Pro/Max OAuth API 密钥(控制台)认证。早期版本需要 OAuth。

订阅通道

# 启动时订阅通道插件
claude --channels discord,telegram

# 订阅多个来源
claude --channels discord,telegram,imessage,webhooks

支持的集成

集成 说明
Discord 在会话中接收和响应 Discord 消息
Telegram 在会话中接收和响应 Telegram 消息
iMessage 在会话中接收 iMessage 通知
Webhooks 从任意 webhook 来源接收事件

配置

使用 --channels 标志在启动时配置通道。对于企业部署,使用受管设置控制允许的通道插件:

{
  "allowedChannelPlugins": ["discord", "telegram"]
}

allowedChannelPlugins 受管设置控制组织内允许的通道插件。

工作方式

  1. MCP server 作为通道插件连接到外部服务
  2. 传入的消息和事件被推送到活动的 Claude Code 会话
  3. Claude 可以在会话上下文中读取和响应消息
  4. 通道插件必须通过 allowedChannelPlugins 受管设置批准
  5. 无需轮询——事件实时推送

Chrome 集成

Chrome 集成将 Claude Code 连接到你的 Chrome 或 Microsoft Edge 浏览器,用于实时网页自动化和调试。这是 beta 功能,自 v2.0.73+ 起可用(Edge 支持在 v1.0.36+ 中添加)。

启用 Chrome 集成

启动时

claude --chrome      # 启用 Chrome 连接
claude --no-chrome   # 禁用 Chrome 连接

会话内

/chrome

选择"Enabled by default"为所有未来会话激活 Chrome 集成。Claude Code 共享浏览器的登录状态,因此可以与已认证的 Web 应用交互。

能力

能力 说明
实时调试 读取控制台日志、检查 DOM 元素、实时调试 JavaScript
设计验证 将渲染的页面与设计模型对比
表单验证 测试表单提交、输入验证和错误处理
Web 应用测试 与已认证的应用交互(Gmail、Google Docs、Notion 等)
数据提取 从网页抓取和处理内容
会话录制 将浏览器交互录制为 GIF 文件

站点级权限

Chrome 扩展管理每个站点的访问。可以随时通过扩展弹出窗口为特定站点授予或撤销访问权限。Claude Code 仅与你明确允许的站点交互。

工作方式

Claude Code 在可见窗口中控制浏览器——你可以实时观看操作。当浏览器遇到登录页面或 CAPTCHA 时,Claude 暂停并等待你手动处理,然后继续。

已知限制

限制 说明
浏览器支持 仅 Chrome 和 Edge——不支持 Brave、Arc 和其他 Chromium 浏览器
WSL Windows Subsystem for Linux 中不可用
第三方提供商 不支持 Bedrock、Vertex 或 Foundry API 提供商
Service worker 空闲 Chrome 扩展 service worker 在长时间会话期间可能空闲

提示:Chrome 集成是 beta 功能。浏览器支持可能在未来版本中扩展。


远程控制

远程控制让你可以从手机、平板或任何浏览器继续本地运行的 Claude Code 会话。你的本地会话在你的机器上继续运行——没有任何东西移动到云端。Pro、Max、Team 和 Enterprise 套餐可用(v2.1.51+)。

启动远程控制

从 CLI

# 使用默认会话名启动
claude remote-control

# 使用自定义名称
claude remote-control --name "Auth Refactor"

会话内

/remote-control
/remote-control "Auth Refactor"

可用标志

标志 说明
--name "title" 自定义会话标题,便于识别
--verbose 显示详细连接日志
--sandbox 启用文件系统和网络隔离
--no-sandbox 禁用沙盒(默认)

连接到会话

从其他设备连接的三种方式:

  1. 会话 URL — 会话启动时打印到终端;在任何浏览器中打开
  2. 二维码 — 启动后按 空格 显示可扫描的二维码
  3. 按名称查找 — 在 claude.ai/code 或 Claude 移动应用(iOS/Android)中浏览会话

安全性

安全措施 说明
无入站端口 你的机器上没有打开端口
仅出站 HTTPS 通过 TLS
范围凭据 多个短期、窄范围的令牌
会话隔离 每个远程会话独立

Remote Control vs 网页版

方面 Remote Control 网页版
执行 在你的机器上运行 在 Anthropic 云端运行
本地工具 完全访问本地 MCP 服务器、文件和 CLI 无本地依赖
用例 从另一设备继续本地工作 从任何浏览器开始

限制

限制 说明
会话数 每个 Claude Code 实例一个远程会话
终端 主机机器上的终端必须保持打开
超时 如果网络不可达,会话在约 10 分钟后超时

使用场景

  • 离开办公桌时从移动设备或平板控制 Claude Code
  • 使用更丰富的 claude.ai UI 同时保持本地工具执行
  • 使用完整的本地开发环境进行快速代码审查

推送通知(v2.1.110)

当 Remote Control 激活且 /config 中启用"Push when Claude decides"时,Claude 可以向你的手机发送移动推送通知——例如长任务完成或需要输入时。

启用方式:

  1. 激活 Remote Control:/remote-controlclaude --rc
  2. 打开 /config 并启用 Push when Claude decide

推送通知需要 Claude 订阅和 Claude 移动应用。

禁用 Remote Control(disableRemoteControl,v2.1.128+)

Team 或 Enterprise 计划的管理员可以使用 disableRemoteControl 设置完全阻止 Remote Control。当为 true 时,claude remote-control/remote-control 都拒绝启动。

{
  "disableRemoteControl": true
}

该设置在受管/策略范围(如 macOS 上的 /Library/Application Support/ClaudeCode/managed-settings.json)中生效,无法被单个用户覆盖。当组织范围需要强制仅本地执行时很有用。


网页会话

网页会话允许你直接在浏览器中运行 Claude Code(claude.ai/code),或从 CLI 创建网页会话。

创建网页会话

# 从 CLI 创建新的网页会话
claude --remote "implement the new API endpoints"

这会在 claude.ai 上启动一个 Claude Code 会话,你可以从任何浏览器访问。

在本地恢复网页会话

如果你在网页上启动了会话,想在本地继续:

# 在本地终端恢复网页会话
claude --teleport

或在交互式 REPL 中:

/teleport

使用场景

  • 在一台机器上开始工作,在另一台上继续
  • 与团队成员分享会话 URL
  • 使用 web UI 进行可视化 diff 审查,然后切换到终端执行

桌面应用

Claude Code 桌面应用提供独立应用程序,支持可视化 diff 审查、并行会话和集成连接器。macOS 和 Windows 可用(Pro、Max、Team 和 Enterprise 套餐)。

安装

claude.ai 下载适用于你的平台:

  • macOS:通用构建(Apple Silicon 和 Intel)
  • Windows:x64 和 ARM64 安装程序

参见 Desktop Quickstart 了解设置说明。

从 CLI 接力

将当前 CLI 会话转移到桌面应用:

/desktop

核心功能

功能 说明
Diff 视图 逐文件可视化审阅带内联评论;Claude 读取评论并修改
应用预览 自动启动开发服务器并嵌入浏览器进行实时验证
PR 监控 GitHub CLI 集成,自动修复 CI 失败并在检查通过时自动合并
并行会话 侧边栏中多个会话,自动 Git worktree 隔离
定时任务 循环任务(每小时、每天、工作日、每周),应用打开时运行
富渲染 代码、markdown 和图表渲染带语法高亮

应用预览配置

.claude/launch.json 中配置开发服务器行为:

{
  "command": "npm run dev",
  "port": 3000,
  "readyPattern": "ready on",
  "persistCookies": true
}

连接器

连接外部服务以获得更丰富的上下文:

连接器 能力
GitHub PR 监控、issue 跟踪、代码审查
Slack 通知、频道上下文
Linear Issue 跟踪、sprint 管理
Notion 文档、知识库访问
Asana 任务管理、项目跟踪
Calendar 日程感知、会议上下文

注意:连接器不适用于远程(云端)会话。

远程和 SSH 会话

类型 说明
远程会话 在 Anthropic 云端基础设施上运行;应用关闭时继续。可从 claude.ai/code 或 Claude 移动应用访问
SSH 会话 通过 SSH 连接到远程机器,完全访问远程文件系统和工具。远程机器必须安装 Claude Code

桌面应用中的权限模式

桌面应用支持与 CLI 相同的 4 种权限模式:

模式 行为
询问权限(默认) 审阅并批准每个编辑和命令
自动接受编辑 文件编辑自动批准;命令需要手动批准
计划模式 任何更改前审阅方法
绕过权限 自动执行(仅限沙盒,管理员控制)

企业功能

功能 说明
管理控制台 控制组织的 Code 标签页访问和权限设置
MDM 部署 通过 macOS 上的 MDM 或 Windows 上的 MSIX 部署
SSO 集成 要求组织成员使用单点登录
受管设置 集中管理团队配置和模型可用性

任务列表

任务列表功能提供持久任务跟踪,跨上下文压缩(当对话历史被修剪以适应上下文窗口时)持久保存。

切换任务列表

在会话期间按 Ctrl+T 切换任务列表视图。

持久任务

任务跨上下文压缩持久保存,确保长时间运行的工作项在对话上下文被修剪时不会丢失。这对于复杂的多步实现特别有用。

命名任务目录

使用 CLAUDE_CODE_TASK_LIST_ID 环境变量创建跨会话共享的命名任务目录:

export CLAUDE_CODE_TASK_LIST_ID=my-project-sprint-3

这允许多个会话共享同一任务列表,适用于团队工作流或多会话项目。


提示词建议

提示词建议根据你的 git 历史和当前对话上下文显示灰显的示例命令。

工作方式

  • 建议显示在输入提示符下方的灰显文本中
  • Tab 接受建议
  • Enter 接受并立即提交
  • 建议是上下文感知的,从 git 历史和对话状态中提取

禁用提示词建议

export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false

Git 工作树

Git 工作树允许你在隔离的工作树中启动 Claude Code,支持在不同分支上并行工作,无需 stash 或切换。

在工作树中启动

# 在隔离工作树中启动 Claude Code
claude --worktree
# 或
claude -w

工作树位置

工作树创建在:

<repo>/.claude/worktrees/<name>

Monorepo 的 sparse checkout

使用 worktree.sparsePaths 设置在 monorepo 中执行稀疏检出,减少磁盘使用和克隆时间:

{
  "worktree": {
    "sparsePaths": ["packages/my-package", "shared/"]
  }
}

基础分支引用(worktree.baseRef

worktree.baseRef(v2.1.133 添加)— 控制 claude --worktree 是从 origin/<default> 还是本地 HEAD 创建分支。

  • "fresh"(默认)— 从 origin/<default-branch> 创建分支,忽略本地未推送的提交。这撤销了 v2.1.128 中引入的行为,因此在 v2.1.128 后依赖本地 HEAD 分支的用户必须选择加入
  • "head" — 从本地 HEAD 创建分支,保留未推送的提交

~/.claude/settings.json 中设置:

{ "worktree": { "baseRef": "head" } }

工作树工具和 Hooks

项目 说明
ExitWorktree 退出并清理当前工作树的工具
WorktreeCreate 创建工作树时触发的 Hook 事件
WorktreeRemove 移除工作树时触发的 Hook 事件

自动清理

如果在工作树中没有进行任何更改,会话结束时会自动清理。

使用场景

  • 在功能分支上工作,保持 main 分支不受影响
  • 隔离运行测试,不影响工作目录
  • 在一次性环境中尝试实验性更改
  • 在 monorepo 中稀疏检出特定包以加快启动速度

沙盒

沙盒为 Claude Code 执行的 Bash 命令提供操作系统级文件系统和网络隔离。这是对权限规则的补充,提供额外的安全层。

启用沙盒

斜杠命令

/sandbox

CLI 标志

claude --sandbox       # 启用沙盒
claude --no-sandbox    # 禁用沙盒

配置设置

设置 说明
sandbox.enabled 启用或禁用沙盒
sandbox.failIfUnavailable 如果沙盒无法激活则失败
sandbox.filesystem.allowWrite 允许写入访问的路径
sandbox.filesystem.allowRead 允许读取访问的路径
sandbox.filesystem.denyRead 拒绝读取访问的路径
sandbox.network.allowedDomains Bash 启动的进程可以访问的域名(支持 *. 通配符)
sandbox.network.deniedDomains 即使 allowedDomains 通配符允许也阻止的域名(v2.1.113+)
sandbox.enableWeakerNetworkIsolation 在 macOS 上启用较弱的网络隔离
sandbox.bwrapPath (v2.1.133+,Linux/WSL)bubblewrap 二进制文件路径。默认:$PATH 查找
sandbox.socatPath (v2.1.133+,Linux/WSL)socat 二进制文件路径。默认:$PATH 查找

Linux/WSL 二进制路径(v2.1.133+)— 将 Claude Code 指向非标准安装位置:

{
  "sandbox": {
    "bwrapPath": "/opt/bubblewrap/bin/bwrap",
    "socatPath": "/opt/socat/bin/socat"
  }
}

deniedDomains 覆盖宽泛通配符的示例(v2.1.113+):

{
  "sandbox": {
    "network": {
      "allowedDomains": ["*.example.com"],
      "deniedDomains": ["evil.example.com"]
    }
  }
}

通配符允许 example.com 上的所有内容通过,但 deniedDomains 仍然阻止特定命名的主机。

示例配置

{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true,
    "filesystem": {
      "allowWrite": ["/Users/me/project"],
      "allowRead": ["/Users/me/project", "/usr/local/lib"],
      "denyRead": ["/Users/me/.ssh", "/Users/me/.aws"]
    },
    "enableWeakerNetworkIsolation": true
  }
}

工作方式

  • Bash 命令在具有受限文件系统访问权限的沙盒环境中运行
  • 网络访问可以隔离,防止意外的外部连接
  • 与权限规则一起工作,实现纵深防御
  • 在 macOS 上,使用 sandbox.enableWeakerNetworkIsolation 进行网络限制(macOS 上不完全支持网络隔离)

使用场景

  • 安全运行不受信任或生成的代码
  • 防止意外修改项目外的文件
  • 在自动化任务期间限制网络访问

企业受管设置

受管设置使企业管理员能够使用平台原生管理工具在组织内部署 Claude Code 配置。

部署方式

平台 方式 起始版本
macOS 受管 plist 文件(MDM) v2.1.51+
Windows Windows Registry v2.1.51+
跨平台 受管配置文件 v2.1.51+
跨平台 受管 drop-in(managed-settings.d/ 目录) v2.1.83+

受管 Drop-in

从 v2.1.83 起,管理员可以将多个受管设置文件部署到 managed-settings.d/ 目录。文件按字母顺序合并,允许跨团队模块化配置:

~/.claude/managed-settings.d/
  00-org-defaults.json
  10-team-policies.json
  20-project-overrides.json

可用的受管设置

设置 说明
disableBypassPermissionsMode 阻止用户启用绕过权限
availableModels 限制用户可以选择的模型
allowedChannelPlugins 控制允许的通道插件
autoMode.environment 为自动模式配置可信基础设施
wslInheritsWindowsSettings 仅 Windows/WSL(v2.1.118+):为 true 时,WSL 中运行的 Claude Code 从 Windows 主机继承受管设置,使通过 Registry/MDM 部署的企业策略在 Windows 和 WSL shell 之间统一应用
parentSettingsBehavior (v2.1.133+,管理员层)控制 SDK 的 managedSettings 如何与父进程设置合并。"first-wins" 保持现有优先级(冲突时较早的设置胜出);"merge" 深度合并值
自定义策略 组织特定的权限和工具策略

示例:macOS Plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>disableBypassPermissionsMode</key>
  <true/>
  <key>availableModels</key>
  <array>
    <string>claude-sonnet-4-6</string>
    <string>claude-haiku-4-5</string>
  </array>
</dict>
</plist>

配置与设置

配置文件位置

  1. 全局配置~/.claude/config.json
  2. 项目配置./.claude/config.json
  3. 用户配置~/.config/claude-code/settings.json

完整配置示例

核心高级功能配置:

{
  "permissions": {
    "mode": "default"
  },
  "hooks": {
    "PreToolUse:Edit": "eslint --fix ${file_path}",
    "PostToolUse:Write": "~/.claude/hooks/security-scan.sh"
  },
  "mcp": {
    "enabled": true,
    "servers": {
      "github": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-github"]
      }
    }
  }
}

扩展配置示例:

{
  "permissions": {
    "mode": "default",
    "allowedTools": ["Bash(git log:*)", "Read"],
    "disallowedTools": ["Bash(rm -rf:*)"]
  },

  "hooks": {
    "PreToolUse": [{ "matcher": "Edit", "hooks": ["eslint --fix ${file_path}"] }],
    "PostToolUse": [{ "matcher": "Write", "hooks": ["~/.claude/hooks/security-scan.sh"] }],
    "Stop": [{ "hooks": ["~/.claude/hooks/notify.sh"] }]
  },

  "mcp": {
    "enabled": true,
    "servers": {
      "github": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-github"],
        "env": {
          "GITHUB_TOKEN": "${GITHUB_TOKEN}"
        }
      }
    }
  }
}

环境变量

使用环境变量覆盖配置:

# 模型选择
export ANTHROPIC_MODEL=claude-opus-4-7
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5

# API 配置
export ANTHROPIC_API_KEY=sk-ant-...

# Thinking 配置
export MAX_THINKING_TOKENS=16000
export CLAUDE_CODE_EFFORT_LEVEL=xhigh   # low, medium, high, xhigh (仅 Opus 4.7,默认), 或 max

# 功能开关
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=true
export CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=true
export CLAUDE_CODE_DISABLE_CRON=1
export CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS=true
export CLAUDE_CODE_DISABLE_TERMINAL_TITLE=true
export CLAUDE_CODE_DISABLE_1M_CONTEXT=true
export CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=true
export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false
export CLAUDE_CODE_ENABLE_TASKS=true
export CLAUDE_CODE_SIMPLE=true              # 由 --bare 标志设置

# MCP 配置
export MAX_MCP_OUTPUT_TOKENS=50000
export ENABLE_TOOL_SEARCH=true

# 提示缓存
export ENABLE_PROMPT_CACHING_1H=1      # 使用 1 小时提示缓存 TTL(默认 5 分钟)

# 任务管理
export CLAUDE_CODE_TASK_LIST_ID=my-project-tasks

# Agent Teams(实验性)
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

# Subagent 和 plugin 配置
export CLAUDE_CODE_SUBAGENT_MODEL=sonnet
export CLAUDE_CODE_PLUGIN_SEED_DIR=./my-plugins
export CLAUDE_CODE_NEW_INIT=1

# 子进程和流式处理
export CLAUDE_CODE_SUBPROCESS_ENV_SCRUB="SECRET_KEY,DB_PASSWORD"
export CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=80
export CLAUDE_STREAM_IDLE_TIMEOUT_MS=30000
export ANTHROPIC_CUSTOM_MODEL_OPTION=my-custom-model
export SLASH_COMMAND_TOOL_CHAR_BUDGET=50000

# 输出和包管理器(v2.1.129+)
export CLAUDE_CODE_FORCE_SYNC_OUTPUT=1                      # 为自动检测失败的终端强制同步输出(Emacs eat 等)
export CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1            # 启用 Homebrew/WinGet 安装的后台升级
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1         # 当设置了 ANTHROPIC_BASE_URL 时选择加入 /v1/models 网关发现

v2.1.108ENABLE_PROMPT_CACHING_1H=1 — 使用 1 小时提示缓存 TTL 而不是默认的 5 分钟 TTL。减少长时间稳定会话中的缓存未命中。(v2.1.129 修复了一个回归,其中 1 小时 TTL 被静默降级为 5 分钟。)

v2.1.129CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 为能力自动检测失败的终端(如 Emacs eat)强制同步输出。CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1 启用 Homebrew/WinGet 安装的后台升级,否则这些永远不会自动更新。

配置管理命令

User: /config
[打开交互式配置菜单]

/config 命令提供交互式菜单来切换设置,例如:

  • 扩展思考开/关
  • 详细输出
  • 权限模式
  • 模型选择

每个项目的配置

在项目中创建 .claude/config.json

{
  "hooks": {
    "PreToolUse": [{ "matcher": "Bash", "hooks": ["npm test && npm run lint"] }]
  },
  "permissions": {
    "mode": "default"
  },
  "mcp": {
    "servers": {
      "project-db": {
        "command": "mcp-postgres",
        "env": {
          "DATABASE_URL": "${PROJECT_DB_URL}"
        }
      }
    }
  }
}

Agent Teams

Agent Teams 是实验性功能,允许多个 Claude Code 实例协作完成任务。默认禁用。

启用 Agent Teams

通过环境变量或设置启用:

# 环境变量
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

或添加到设置 JSON:

{
  "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}

Agent Teams 工作方式

  • 团队负责人 协调整体任务并将子任务委派给队友
  • 队友 独立工作,每个都有自己的上下文窗口
  • 共享任务列表 使团队成员之间能够自我协调
  • 使用 subagent 定义(.claude/agents/--agents 标志)定义队友角色和专长

显示模式

Agent Teams 支持两种显示模式,使用 --teammate-mode 标志配置:

模式 说明
in-process(默认) 队友在同一终端进程中运行
tmux 每个队友获得专用分屏(需要 tmux 或 iTerm2)
auto 自动选择最佳显示模式
# 使用 tmux 分屏显示队友
claude --teammate-mode tmux

# 显式使用进程内模式
claude --teammate-mode in-process

使用场景

  • 大型重构任务,不同队友处理不同模块
  • 并行代码审查和实现
  • 跨代码库协调多文件更改

注意:Agent Teams 是实验性功能,可能在未来版本中更改。参见 code.claude.com/docs/en/agent-teams 了解完整参考。


最佳实践

规划模式

  • 复杂任务先规划,再实现
  • 计划要可审阅
  • 不要在简单任务上使用

扩展思考

  • 用于架构决策
  • 用于复杂问题解决
  • 查看推理过程
  • 不要在简单查询上使用

后台任务

  • 用于长时间运行的操作
  • 监控任务进度
  • 优雅处理任务失败
  • 不要启动太多并发任务

权限模式

  • 使用 plan 进行代码审查(只读)
  • 使用 default 进行交互式开发
  • 使用 acceptEdits 进行自动化工作流
  • 使用 auto 进行带安全护栏的自主工作
  • 除非绝对必要,否则不要使用 bypassPermissions

会话

  • 为不同任务使用单独的会话
  • 保存重要的会话状态
  • 清理旧会话
  • 不要在同一会话中混合不相关的工作

更多资源