Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Claude Code 内置能力

Claude Code 是 Anthropic 官方推出的终端 AI 编程工具,深度集成 Claude 模型。本章作为 Claude Code 的能力索引,指向各详细参考文件。

能力一览

Claude Code 的核心能力可以按以下维度组织:

维度简介详细参考
内置命令/init/compact/cost/doctor 等 15+ 个斜杠命令命令参考
文件工具Read(文本+PDF)、Write、Edit(精确替换)—(见下方工具集)
执行工具Bash(命令执行,支持超时)
搜索工具Grep(正则)、Glob(文件模式)
网络工具WebFetch(URL 抓取)
Agent 模式Plan Mode(只读分析)、Code Mode(默认读写)—(见下方 Agent(智能体) 模式)
项目指令CLAUDE.md 多级配置(全局/项目/目录)扩展机制参考
自定义命令.claude/commands/*.md 自动注册为 / 命令扩展机制参考
MCP Server通过 JSON-RPC 接入外部工具和数据源扩展机制参考
权限控制细粒度工具调用权限管理扩展机制参考
成本追踪/cost 查看 Token 使用统计命令参考
生态与社区Anthropic 生态、MCP(模型上下文协议) 协议、社区资源生态参考

工具集速览

Claude Code 内置工具集聚焦核心编码场景:Read(支持 PDF)、Write(覆盖写入)、Edit(oldString/newString 精确匹配替换)、Bash(Shell 执行)、Grep(正则搜索)、Glob(文件名匹配)、WebFetch(URL 抓取)。

Agent 模式

命令功能
/init初始化项目,生成 CLAUDE.md 文件
/clear清除当前对话上下文
/compact压缩上下文,减少 Token 消耗
/cost显示当前会话的 Token 使用统计
/doctor诊断环境问题,检查配置完整性
/help显示帮助信息
/login登录 Anthropic 账户
/logout登出当前账户
/memory编辑 CLAUDE.md 记忆文件
/model切换当前使用的模型
/permissions查看和管理工具调用权限
/review对代码变更进行审查
/status显示当前状态信息
/terminal-setup设置终端集成(Shell 集成、快捷键等)

→ 完整命令列表和详细用法见 Claude Code 命令参考。 → 扩展体系详解见 Claude Code 扩展机制参考,涵盖 CLAUDE.md、Skills、MCP、Subagent、Hook、Plugin 六层架构。 → Plugin 系统 详细介绍了 OpenCode 的 Plugin/Skill/MCP 三层扩展架构。

命令使用示例

/init                          # 首次进入项目时初始化
/compact                       # 上下文过长时压缩
/cost                          # 查看消耗了多少 Token
/doctor                        # 遇到问题时诊断环境
/model claude-sonnet-4-20250514   # 切换到 Sonnet 模型

工具集

Claude Code 内置的工具集相对精简,聚焦于核心编码场景。

文件操作

工具功能说明
Read读取文件内容支持文本和 PDF
Write写入文件覆盖写入
Edit精确文本替换基于 oldString/newString 匹配

命令执行

工具功能说明
Bash执行 shell 命令支持超时设置

搜索

工具功能说明
Grep正则内容搜索按正则表达式搜索文件内容
Glob文件模式匹配按 glob 模式搜索文件名

网络

工具功能说明
WebFetchURL 抓取获取网页内容

Agent 模式

Claude Code 支持 6 种权限模式,通过切换控制 AI 的操作范围。

6 种权限模式

模式说明
default每次执行敏感操作前询问用户确认
acceptEdits自动接受文件编辑(Write/Edit),执行命令时询问
plan只读分析,不能修改文件或执行命令。适合动手前先规划
auto自动批准所有操作,无交互确认
dontAsk不主动询问,静默拒绝权限外的操作
bypassPermissions绕过所有权限检查,完全信任 Agent

通过 --permission-mode 标志或 /permissions 命令切换。

自定义配置

Claude Code 的自定义主要通过文件配置实现。

CLAUDE.md 项目指令

CLAUDE.md 是 Claude Code 的项目级指令文件,放在项目根目录。它告诉 Claude 在这个项目中应该怎么工作,类似 OpenCode 的 AGENTS.md。

CLAUDE.md 通常包含:

  • 项目简介和技术栈说明
  • 代码风格和命名规范
  • 测试和构建命令
  • 常用路径和模块说明
  • 不能做的事(约束条件)

Claude Code 支持多级 CLAUDE.md:

  • ~/.claude/CLAUDE.md — 全局配置,所有项目生效
  • 项目根目录/CLAUDE.md — 项目级配置
  • 子目录/CLAUDE.md — 目录级配置,进入该目录时加载

.claude/ 目录结构

Claude Code 使用 .claude/ 目录管理项目配置:

.claude/
  settings.json    # 项目设置
  commands/        # 自定义命令

权限配置

Claude Code 对工具调用有细粒度的权限控制。每次调用 Bash、Write 等敏感工具时,会提示用户确认。可以通过配置文件预设权限规则,减少重复确认。

权限配置示例:

{
  "permissions": {
    "allow": [
      "Bash(npm test)",
      "Bash(npm run build)",
      "Write(src/**)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Write(.env*)"
    ]
  }
}

与 OpenCode 的主要差异

了解两者的能力差异,有助于选择合适的工具。

维度OpenCodeClaude Code
模型支持多模型(Claude、GPT、Gemini、本地模型)仅 Claude 模型
扩展机制Plugin(插件) + Skill(技能) + MCP + 自定义 AgentCLAUDE.md + Skills + MCP + Subagents + Hooks + Plugins 六层
工具链完整(AST-grep、LSP、CodeGraph 等)基础(文件、命令、搜索)
Hook 系统20+ Hook Points,事件驱动
成本控制内置 Token 追踪/cost 命令查看
会话管理压缩、导出、分享、撤销压缩、清除
开源状态开源闭源

扩展机制

Claude Code 的扩展方式相对收敛,主要依赖配置文件和外部协议。

CLAUDE.md 自定义指令

CLAUDE.md 是最核心的扩展手段。通过编写结构化的指令,你可以改变 Claude 在项目中的行为,无需编写任何代码。多级 CLAUDE.md 支持全局、项目、目录三个层次的配置叠加。

自定义命令

.claude/commands/ 目录下放置 Markdown 文件,每个文件自动注册为一个 / 命令。文件名即命令名,文件内容作为发送给 Claude 的 Prompt(提示词)。这相当于一种轻量级的 Skill 机制,适合封装重复性的项目操作。

.claude/commands/
  review.md       # → /review 命令
  fix-lint.md     # → /fix-lint 命令
  deploy.md       # → /deploy 命令

MCP Server 连接

Claude Code 支持连接外部 MCP Server,通过 .claude/settings.json 配置。MCP 为 Claude Code 提供了接入外部工具和数据源的能力,比如数据库查询、API 调用、文件系统操作等。

扩展方式对比

扩展方式实现形式灵活度适用场景
CLAUDE.md 指令Markdown 文本行为规范、编码约束
SkillsSKILL.md + YAML frontmatter可复用指令集
MCP Server外部进程 JSON-RPC外部工具、数据源接入
SubagentsMarkdown + YAML frontmatter隔离上下文的子任务代理
HooksJSON + Shell / LLM / Agent中高生命周期事件自动化
Pluginsplugin.json 清单打包分发以上所有组件

与 OpenCode 的扩展体系相比,Claude Code 没有 Plugin 层(无法在 Agent 进程内注入运行时逻辑),也没有 Skill 市场(无法从社区安装可复用的指令包)。扩展能力集中在“指令配置 + 外部协议“两个维度。

→ 扩展体系详解见 Claude Code 扩展机制参考,涵盖 CLAUDE.md、Skills、MCP、Subagent、Hook、Plugin 六层架构。 → Plugin 系统 详细介绍了 OpenCode 的 Plugin/Skill/MCP 三层扩展架构。

生态与社区

Anthropic 生态

Claude Code 的生态紧密围绕 Anthropic 的产品体系:

  • Anthropic Console:统一管理 API Key、用量监控、账单
  • Claude 模型家族:Sonnet(性价比)、Opus(最强能力)、Haiku(最快速度)
  • Model Context Protocol:Anthropic 主导的开放协议,用于标准化 AI 工具与外部系统的连接

MCP 是 Claude Code 生态中最有价值的部分。通过 MCP,Claude Code 可以连接数据库、版本控制、CI/CD 流水线、项目管理工具等。Anthropic 维护了一份 MCP Server 参考实现列表,社区也贡献了大量 Server 实现。

社区资源

Anthropic 官方提供了完整的 Claude Code 使用指南。GitHub 上有多个展示 CLAUDE.md 最佳实践的参考项目,开发者也在论坛和社交媒体上分享配置方案和使用技巧。

生态对比

生态维度Claude CodeOpenCode
模型生态仅 Claude 模型族Claude/GPT/Gemini/本地模型等 10+ Provider
工具扩展MCP Server(JSON-RPC)MCP + Plugin + Skill + 自定义 Tool
社区资产CLAUDE.md 模板、MCP Server 实现Skill 市场、Plugin 仓库、oh-my-openagent 社区
协议标准MCP(Anthropic 主导)MCP(完全兼容) + 原生 Plugin API
扩展粒度指令级 + 外部工具级代码级(Hook)+ 指令级 + 工具级

Claude Code 的生态优势在于 Anthropic 的品牌背书和 MCP 协议的标准化推广。OpenCode 的生态优势在于多模型支持和更丰富的扩展层次(Plugin 可以拦截任意 Agent 行为)。

MCP 服务器 详细讲解了 MCP 协议在 OpenCode 中的配置和实践。

使用建议

选择 Claude Code 还是 OpenCode

两个工具的适用场景有明显重叠,但也各有侧重。如果你的团队已经全面使用 Claude 模型,且项目不需要复杂的 Agent 编排,Claude Code 的简洁性是一个优势。它上手快、配置少、没有 Plugin/Skill 的认知负担。

如果你需要多模型灵活切换、自定义 Agent 行为、或团队共享工作流,OpenCode 的扩展体系更适合。OpenCode 的 Plugin 和 Skill 系统让你可以把最佳实践编码化,在团队内复制和演进。

CLAUDE.md 写作建议

写好 CLAUDE.md 的关键:具体、可执行、有边界。避免空泛的描述,给出明确的规则。推荐的 CLAUDE.md 结构:

  1. 项目简介:一两句话说清楚这是什么项目
  2. 技术栈:语言、框架、包管理器
  3. 代码规范:命名约定、格式化规则、禁止的写法
  4. 常用命令:构建、测试、lint 的具体命令
  5. 约束条件:不能修改的文件、不能执行的操作

权限配置建议

Claude Code 的权限提示虽然安全,但频繁弹出会打断工作流。建议在项目早期就把常用的构建、测试命令加入白名单,把危险操作(如 rm -rf)加入黑名单。既保证安全,又减少干扰。

命令参考 — Claude Code 全部命令的详细用法 → 扩展机制参考 — 六层扩展体系完整参考(CLAUDE.md、Skills、MCP、Subagent、Hook、Plugin) → 生态参考 — 社区生态和最佳实践 → Claude Code Agent(智能体) 设计与开发指南 — 自定义 Agent 与 Subagent 的从入门到生产完整教程 → Claude Agent(智能体) SDK:编程式 Agent 开发 — 通过 @anthropic-ai/claude-agent-sdk 编程式驱动 Agent → OpenCode 内置能力 — 对应功能的对比参考 → 核心概念 — 设计哲学深入对比


2026年6月更新

以下是 2026 年 6 月期间 Claude Code 新增或变更的主要功能:

功能说明
嵌套子 Agent支持最多 5 层深度的子 Agent 嵌套调用,复杂任务可拆分为多级子任务
fallbackModel 配置支持配置最多 3 个备选模型,主模型不可用时自动切换
动态工作流(/workflows新增 /workflows 命令,支持定义和执行多步骤工作流
Artifacts实时更新的网页分享功能,生成可交互的代码预览或文档
Safe mode--safe-mode 启用安全模式,限制高风险操作
/cd 命令新增 /cd 命令,快速切换工作目录
社区工具市场支持从社区安装第三方工具和 MCP Server
Agent checkpointing (beta)Agent 执行过程中支持检查点保存和恢复(Beta)
Per-agent 成本归属--attribution 标志支持按 Agent 粒度追踪成本

常见反模式

只用 Claude Code 的默认工具集而不探索扩展能力

许多开发者初次使用 Claude Code 时只停留在内置的 Read/Write/Edit/Bash/Grep/Glob 工具上,从不配置 MCP 服务器或创建自定义命令。Claude Code 的真正价值不在于它内置了什么,而在于它能连接什么。一个没有配置 GitHub MCP Server 的 Claude Code,无法直接操作 PR 和 Issue;一个没有连接数据库 MCP Server 的 Claude Code,只能通过 Bash 执行 psql 命令来查询数据,既不安全也不高效。

在开始正式使用前,花 10 分钟配置你最常用的 MCP 服务器(GitHub、文件系统、数据库),并为团队的高频操作创建自定义命令。这一步投入能将后续的效率提升放大数倍。

在 CLAUDE.md 中堆砌冗余规则

另一个常见反模式是把 CLAUDE.md 写成“百科全书“,包含 Claude 本身就能推断的规则(比如“使用 TypeScript“),或者过于详细的 API 文档。过长的 CLAUDE.md 会消耗宝贵的上下文窗口,导致后续对话中 Claude 对项目规则的遵循率下降,这被称为 “lost in the middle” 效应。

CLAUDE.md 应聚焦于 Claude 无法从代码推断的内容:构建命令、环境怪异之处、团队特有的架构决策、常见陷阱。保持在 200 行以内,把详细的 API 文档改为链接引用。定期审查和修剪 CLAUDE.md,删除不再适用的规则。

混淆 acceptEdits 和 bypassPermissions 的适用场景

有些开发者为了减少交互确认,直接使用 bypassPermissions 模式,即使他们的 Agent 需要执行写入操作。bypassPermissions 意味着 Agent 可以不经确认执行任何操作,包括删除文件、执行任意 Shell 命令、修改系统配置。在团队共享的项目中,一个人配置的宽松权限可能影响整个团队的安全边界。

正确做法是根据任务类型选择最小权限模式:只读分析用 plan,常规开发用 acceptEdits,只有在严格隔离的 CI/CD 沙箱环境中才考虑 bypassPermissions。使用 --permission-mode 标志或 /permissions 命令配置白名单,把常用的构建和测试命令加入 allow 列表。

适用场景与限制

仅支持 Claude 模型族

Claude Code 最显著的限制是只支持 Anthropic 的 Claude 模型系列(Sonnet、Opus、Haiku)。如果你的团队已经在使用 GPT-4o、Gemini 或其他模型,Claude Code 无法直接切换。这意味着你在不同项目中可能需要维护多套 AI 编程工具的配置,增加了团队的工具链复杂度。

对于需要多模型灵活切换的场景,OpenCode 提供了更好的支持。它内置了 75+ LLM 供应商的集成,可以在同一会话中按需切换模型。如果你的团队有混合模型需求,建议评估 OpenCode 作为替代方案。

缺乏代码级扩展 API

Claude Code 的扩展全部通过配置文件(CLAUDE.md、Skills JSON、Hook Shell 脚本)和外部进程(MCP 服务器)实现,没有类似 OpenCode definePlugin 的 TypeScript 回调 API。这意味着你无法在 Agent 进程内部拦截和修改任意行为——例如,你不能像 OpenCode 那样注册一个 Hook 在每次工具调用前注入自定义验证逻辑。

如果你需要深度定制 Agent 行为(比如实现复杂的审批流、自定义 Agent 编排),Claude Code 的配置驱动方式可能不够灵活。此时可以考虑使用 Agent SDK 进行编程式集成,或者迁移到扩展体系更丰富的 OpenCode。

工具集相对精简

Claude Code 内置工具集只有 7 个核心工具(Read、Write、Edit、Bash、Grep、Glob、WebFetch),没有 AST-grep、LSP、CodeGraph 等代码智能工具。对于需要精确代码重构、跨文件引用分析、AST 级别操作的场景,纯靠内置工具的 LLM 推理能力可能不够精确。

弥补方式是通过 MCP 服务器接入外部工具,或者使用 Agent SDK 的 tool() API 创建自定义工具。但这些都需要额外的配置和开发工作,不如 OpenCode 的开箱即用体验。

常见失败与陷阱

/init 生成的 CLAUDE.md 质量参差不齐

执行 /init 后 Claude Code 会自动生成 CLAUDE.md 文件,但生成质量取决于项目结构的清晰度和 Claude 的推断能力。对于技术栈不常见、目录结构不规范的项目,自动生成的 CLAUDE.md 可能包含错误的构建命令或遗漏关键规则。

不要盲目信任 /init 的输出。生成后必须人工审查:验证构建命令是否正确执行,检查是否有遗漏的环境变量要求,确认架构决策是否与团队约定一致。将审查后的 CLAUDE.md 提交到 Git,确保团队成员获得一致的行为。

MCP 服务器连接失败时的静默降级

Claude Code 在 MCP 服务器连接失败时不会中断会话,而是静默降级到不包含该工具的工作模式。这意味着你可能以为 Agent 有 GitHub 集成能力,实际上 MCP 服务器早已断开,Agent 在每次尝试调用时都失败但没有明确报错。

定期运行 /mcp 检查服务器连接状态。在 CI/CD 环境中,建议在会话启动时验证关键 MCP 服务器的可用性。对于生产级工作流,可以在 CLAUDE.md 中添加“如果 GitHub MCP 不可用,请明确告知用户“的指令,让 Claude 主动报告工具缺失。

上下文压缩导致早期指令丢失

Claude Code 的自动压缩(Compaction)在上下文接近窗口上限时触发,它会对较早的对话历史进行摘要。这意味着你在会话早期给出的详细指令可能在压缩后被简化或丢失,Agent 的行为在长会话中可能偏离预期。

关键规则和约束应该放在 CLAUDE.md 中而非对话 prompt 中。CLAUDE.md 在每次请求时都会重新注入,不受压缩影响。对于需要跨整个会话保持的重要状态,使用 /compact 时附带自定义指令来保留关键信息,或者拆分为多个短会话。

关联章节