Skip to main content

前言

AI辅助编程领域,Claude Code是目前公认的最强大、最智能的Agent工具之一。与传统的代码补全工具不同,Claude Code是一个真正意义上的编程智能体——它不仅能理解你的代码库,还能主动规划、执行多步骤任务,包括读取文件、运行命令、修改代码、创建Pull Request等完整的开发工作流。

Claude CodeAnthropic开发,基于Claude大语言模型,通过精心设计的智能体循环(Agentic Loop)和工具系统,将强大的语言理解能力与实际的代码执行能力结合在一起。无论是快速理解一个陌生代码库、修复复杂的Bug、还是自动化大规模重构,Claude Code都能以接近资深工程师的水准完成工作。

本文将系统介绍Claude Code的安装方法、核心概念、设计原理以及常用命令,帮助开发者充分发挥其潜力。

什么是Claude Code

Claude Code

基本介绍

Claude CodeAnthropic推出的AI驱动的编程助手,运行在终端、IDE插件、桌面应用和浏览器等多种环境中。它的核心能力是:

  • 全局代码理解:读取整个项目的文件结构,理解各组件之间的关联
  • 多步骤任务执行:自主规划并执行跨文件的复杂修改
  • 工具调用能力:通过内置工具执行Shell命令、搜索文件、读写代码等
  • 上下文持久化:通过CLAUDE.md和自动记忆机制在会话间保持项目知识

与只能看到当前文件的内联补全工具不同,Claude Code能感知整个项目,并像资深工程师一样做出有全局视野的决策。

常见使用场景

场景说明
理解新代码库快速了解项目架构、技术栈和代码惯例
功能开发从需求描述到代码实现的端到端开发
Bug修复定位问题根源并验证修复效果
代码重构大规模、跨文件的安全重构
单元测试识别未覆盖代码并生成测试用例
文档生成自动补充代码注释和README
Git操作生成提交信息、创建Pull Request
CI/CD集成非交互模式下作为自动化管道的一部分

安装与配置

安装Claude Code

Claude Code支持macOSLinuxWSLWindows,推荐使用官方脚本安装(不推荐使用npm安装):

curl -fsSL https://claude.ai/install.sh | bash

Windows用户需要先安装 Git for Windows

原生安装方式会自动在后台保持更新,始终运行最新版本。

启动Claude Code

在任意项目目录下启动:

cd /path/to/your/project
claude

第一次进入项目时,建议运行/init命令,Claude Code会自动分析项目结构并生成CLAUDE.md文件:

/init

CC Switch(可视化配置工具)

推荐使用CC Switch来可视化管理Claude Code配置,并且管理多个Token服务商,进行便捷的服务切换。CC Switch是一款专为Claude CodeCodexGemini CLIOpenCodeOpenClawAI CLI工具提供统一的可视化配置管理工具。它的核心价值在于消除手动编辑JSON/TOML/.env配置文件的繁琐操作——通过图形界面一键切换API供应商、管理MCP服务器与Skills,支持WindowsmacOSLinux全平台。

CC Switch

主要功能

功能说明
供应商管理内置50+供应商预设,复制API Key即可一键导入并切换
统一MCP管理单一面板管理多个CLI工具的MCP服务器配置,支持双向同步
Skills管理GitHub仓库或ZIP文件一键安装Skills,统一分发到各工具
系统托盘快速切换无需打开界面,直接从系统托盘菜单即时切换供应商
云同步通过DropboxOneDriveiCloudWebDAV跨设备同步配置
用量追踪跨供应商追踪API支出、请求数和Token用量,提供趋势图表
会话管理浏览、搜索和恢复全部CLI工具的历史对话记录

所有配置数据存储在本地SQLite数据库(~/.cc-switch/cc-switch.db),采用原子写入机制保护配置不被损坏,并自动保留最近10份备份。

如何安装

macOS(推荐使用Homebrew):

brew tap farion1231/ccswitch
brew install --cask cc-switch

其他发行版:

https://github.com/farion1231/cc-switch/releases 页面下载对应格式的安装包。

核心概念

Claude Code核心概念

智能体循环(Agentic Loop)

Claude Code的核心架构是智能体循环(Agentic Loop),这是它与普通聊天机器人的根本区别。

用户输入

收集上下文(读取文件、执行搜索)

分析与规划(模型推理)

执行操作(文件编辑、Shell命令、Web搜索)

验证结果(运行测试、检查输出)

循环直到任务完成

向用户报告结果

在这个循环中,Claude不是一次性回答问题,而是像人类工程师一样:逐步收集信息、做出判断、执行操作、根据结果调整策略,直到完成目标。

例如,当你说"修复失败的测试"时,Claude Code会:

  1. 运行测试套件获取错误信息
  2. 分析错误输出,定位到相关源文件
  3. 阅读这些文件理解代码逻辑
  4. 做出修改
  5. 再次运行测试验证修复效果

整个过程可能涉及数十次工具调用,完全自主完成。

内置工具体系

Claude Code的智能来源于一套强大的内置工具,这些工具使其能够真正与开发环境交互:

工具类别工具功能
文件操作ReadEditWrite读取、修改、创建文件
搜索GlobGrep按模式查找文件和内容
执行Bash运行Shell命令、测试、Git操作
WebWebFetchWebSearch获取文档、搜索信息
代码智能LSP类型检查、跳转到定义、查找引用
子智能体Agent在独立上下文中生成子任务
任务管理TaskCreateTaskList管理会话内的任务清单
计划模式EnterPlanModeExitPlanMode切换只读分析模式
WorktreeEnterWorktreeExitWorktree创建和切换隔离的工作树

Claude根据当前任务自主选择需要调用的工具,无需用户手动指定。

Memory机制

Claude Code每次会话都是全新的上下文窗口,但它提供了两种跨会话保持知识的机制:

CLAUDE.md文件

CLAUDE.md开发者手动编写的指令文件,可通过/init斜杠命令创建/更新(自动分析项目),Claude Code在每次会话启动时将其加载到上下文窗口中,整个会话期间持续生效。它相当于给Claude的"项目手册":

# 代码规范
- 使用 ES modules (import/export),不使用 CommonJS (require)
- 函数名使用 camelCase,组件名使用 PascalCase

# 工作流
- 提交前必须运行类型检查:npm run typecheck
- 测试命令:npm test
- 优先运行单个测试而不是整个测试套件

# 架构说明
- API 处理器位于 src/api/handlers/
- 数据模型位于 src/models/

CLAUDE.md的存放位置决定了其作用范围:

文件位置作用范围用途
~/.claude/CLAUDE.md个人全局个人编码习惯和工具偏好
./CLAUDE.md(项目根目录)项目团队共享项目规范、架构、工作流
./子目录/CLAUDE.md按需加载特定模块的专项规则
系统管理目录(参见下方)企业全局组织级安全策略和合规规范

企业管理员可以在以下位置部署组织级CLAUDE.md

  • macOS/Library/Application Support/ClaudeCode/CLAUDE.md
  • Linux/WSL/etc/claude-code/CLAUDE.md
  • WindowsC:\Program Files\ClaudeCode\CLAUDE.md

编写高效的CLAUDE.md的原则:

  • 保持在200行以内,超出会降低Claude对指令的遵循度
  • 使用具体、可验证的指令,例如"使用2空格缩进"而非"格式化代码"
  • 只包含Claude无法从代码本身推断出的信息
  • 通过@path/to/file语法引用其他文件,将详细内容外化
与Copilot Instructions的对比

CLAUDE.mdGitHub Copilot.github/copilot-instructions.md(或.instructions.md)在概念上相同,都是"持久上下文指令文件",在会话/对话启动时注入给模型。两者的主要区别如下:

特性CLAUDE.mdCopilot Instructions
触发方式会话启动时一次性加载到上下文窗口每次对话自动注入
作用范围4级:企业/个人全局/项目/子目录2级:项目/个人全局
行数限制建议200行以内无明确限制
文件引用支持@path语法导入外部文件不支持
路径范围规则.claude/rules/目录支持按文件路径按需加载applyTo模式匹配
配套记忆机制MEMORY.md(由Claude自动写入)无对应机制

自动记忆(Auto Memory)

自动记忆是Claude Code在与你协作过程中写给自己的笔记。当它发现有价值的经验时(如项目构建命令、调试技巧、你纠正它的偏好),会自动保存到本地文件:

~/.claude/projects/<project>/memory/
├── MEMORY.md # 索引文件,每次会话开头加载前200行
├── debugging.md # 调试经验
├── api-conventions.md # API设计决策
└── ...

MEMORY.md的前200行在每次会话开始时自动加载。详细笔记放在独立主题文件中,按需读取。

两种记忆机制的对比:

特性CLAUDE.md自动记忆
编写者开发者手动编写Claude自动生成
内容指令和规则经验和模式
适用范围项目、用户或组织每个工作区独立
会话加载完整加载加载前200
推荐用途编码标准、工作流构建命令、调试洞见

通过/memory命令可以查看和管理所有记忆文件。

会话管理与上下文窗口

Claude Code的所有对话都本地保存。每次会话共享同一个上下文窗口,包含:对话历史、读取的文件内容、命令输出、CLAUDE.md、加载的技能等。

上下文管理要点:

  • 上下文窗口满了会导致性能下降,Claude会开始忽略早期指令
  • Claude Code会在接近上限时自动压缩历史,优先保留关键代码和决策
  • 使用/clear命令在不相关任务之间重置上下文
  • 使用/compact <说明>手动指定压缩焦点

会话持续化命令:

claude --continue        # 继续当前目录最近的会话
claude --resume # 打开会话选择器
claude --resume session-name # 按名称恢复会话

在会话中使用/rename为当前会话命名,便于后续查找。

权限与安全模型

Claude Code采用分级权限模型,确保操作的安全性和可控性。

权限模式(通过Shift+Tab循环切换):

模式配置值说明
默认模式default文件编辑和Shell命令都需要确认
自动接受编辑acceptEdits文件编辑无需确认,命令仍需确认
计划模式plan只读操作,生成计划后等待批准
跳过权限模式bypassPermissions跳过所有权限检查(谨慎使用)

可以在配置文件中通过defaultPermissionMode字段设置会话启动时的默认权限模式,无需每次手动切换:

{
"defaultPermissionMode": "acceptEdits"
}

配置文件路径(按作用范围选择写入位置):

配置文件作用范围
~/.claude/settings.json个人全局,影响所有项目
.claude/settings.json当前项目,团队共享
.claude/settings.local.json当前项目,仅本人生效

配置文件权限规则:

{
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test *)",
"Read(~/.zshrc)"
],
"deny": [
"Bash(curl *)",
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
}
}

权限规则语法说明:

规则示例含义
Bash匹配所有Bash命令
Bash(npm run *)匹配以npm run开头的命令
Read(./.env)匹配读取.env文件
WebFetch(domain:example.com)匹配访问特定域名

推理努力程度(Effort Level)

Claude Code通过--effort参数控制模型在响应前投入的推理深度,实现速度、成本与答案质量之间的灵活权衡。支持以下四个等级:

等级参数值适用场景
低强度low简单查询、快速问答、代码格式调整等无需深度推理的任务,响应最快、消耗最少
中等强度medium日常开发任务的默认选择,在速度与质量之间取得平衡
高强度high复杂算法设计、架构分析、多步骤调试等需要深入思考的任务
最大强度max最高难度问题,如深层并发缺陷、大规模架构重构,Claude会投入最大推理预算

推理强度越高,模型的思考链越深,通常能带来更准确、更全面的答案,但也会消耗更多时间和API额度。建议根据任务复杂度选择合适等级,避免将高强度模式用于简单任务造成不必要的消耗。

claude --effort low      # 低强度,速度最快
claude --effort medium # 中等强度(默认)
claude --effort high # 高强度,适合复杂任务
claude --effort max # 最大强度,适合最高难度问题

也可以配合-p(非交互模式)按需指定推理强度,例如在自动化管道中对关键步骤单独提升等级:

# 快速查询用低强度
claude -p "提取函数签名列表" --effort low

# 复杂分析用高强度
claude -p "分析这段代码的潜在竞态条件并给出修复方案" --effort high

设计理念与架构原则

智能化设计

Claude Code的智能体现在三个层面:

  • 语言理解层:底层Claude模型具备强大的代码语义理解能力,能读懂任何编程语言,理解组件间的依赖关系,推断出代码意图。

  • 工具调用层:模型不只是"回答",而是通过工具真正与环境交互。每次工具调用的结果反馈给模型,形成感知-思考-行动的完整循环。

  • 自适应规划层:对于复杂任务,Claude会自动分解为多个步骤,根据执行结果动态调整计划。这种自适应能力使其能处理真实世界中的不确定性。

流程化设计

Claude Code通过多种机制实现可复用的工作流程:

  • CLAUDE.md:将项目知识和工作规范固化为可共享的文件
  • Skills(技能):在.claude/skills/目录下定义可复用的工作流脚本,通过/技能名调用
  • Hooks(钩子):在工具执行前后自动触发的命令脚本,例如每次编辑Python文件后自动运行格式化
  • Subagents(子智能体):预定义的专域助手,具有特定的工具权限和提示词,可被主Claude委托执行

可配置化设计

Claude Code的配置采用四层级优先级体系(从高到低):

Managed(企业管理,最高优先级)

Local(本地项目,个人)

Project(项目团队共享)

User(个人全局,最低优先级)

各层级配置文件位置:

层级配置文件共享范围
User~/.claude/settings.json个人全部项目
Project.claude/settings.json项目所有协作者
Local.claude/settings.local.json仅本人本项目
Managed系统管理目录组织所有用户

同一设置在多个层级同时存在时,高优先级的层级生效。数组类型的设置(如权限规则)跨层级合并而非覆盖。

常用命令参考

CLI命令

基本用法:

claude [options] [command] [prompt]

常用选项:

选项说明示例
claude启动交互式会话claude
claude <prompt>带初始提示启动claude "修复构建错误"
--print/-p非交互模式,打印输出后退出(适合管道或脚本)claude -p "解释这个函数"
--continue/-c继续当前目录最近的会话claude -c
--resume/-r [会话ID]打开历史会话选择器,或按ID恢复指定会话claude -r
--fork-session恢复会话时创建新会话ID而非沿用原始ID(配合-r-c使用)claude -c --fork-session
--from-pr [PR号/URL]恢复与指定PR关联的会话claude --from-pr 123
--worktree/-w [名称]创建Git Worktree并在其中启动会话claude -w feature-auth
--model <模型>指定模型,可用别名(如sonnetopus)或全名claude --model sonnet
--effort <级别>推理努力程度:low/medium/high/maxclaude --effort high
--permission-mode <模式>指定权限模式启动claude --permission-mode plan
--output-format <格式>输出格式:text/json/stream-json(需配合-pclaude -p "..." --output-format json
--input-format <格式>输入格式:text/stream-json(需配合-p
--system-prompt <提示>使用自定义系统提示词替换默认提示词
--append-system-prompt <提示>在默认系统提示词后追加内容
--add-dir <目录>额外授权工具访问的目录claude --add-dir /data
--allowedTools <工具>逗号或空格分隔的允许工具列表claude --allowedTools "Edit,Bash"
--disallowedTools <工具>逗号或空格分隔的禁止工具列表
--tools <工具>指定可用工具集,""禁用全部,default启用全部claude --tools "Bash,Edit,Read"
--mcp-config <配置>JSON文件或字符串加载MCP服务器配置
--strict-mcp-config仅使用--mcp-config中的MCP服务器,忽略其他配置
--agent <名称>指定当前会话使用的Agent
--agents <JSON>JSON定义自定义Agents
--settings <文件或JSON>加载额外的设置文件或JSON字符串
--session-id <UUID>指定会话使用的UUID
--max-budget-usd <金额>限制API调用最大花费(需配合-p
--no-session-persistence禁用会话持久化,不保存到磁盘(需配合-p
--dangerously-skip-permissions跳过所有权限检查(仅建议在无网络沙盒环境使用)
--tmuxWorktree创建tmux会话(需配合--worktree
--ide启动时若恰好有一个有效IDE则自动连接
--verbose覆盖配置中的详细模式设置
--debug/-d [过滤器]启用调试模式,可按类别过滤日志claude -d "api,hooks"
--version/-v输出版本号claude -v

内置子命令:

子命令说明
claude agents列出已配置的Agents
claude auth管理认证(登录/登出)
claude doctor检查自动更新器健康状态
claude install [target]安装原生构建,target可指定版本(stable/latest/具体版本号)
claude mcp配置和管理MCP服务器
claude plugin管理Claude Code插件
claude setup-token配置长期认证令牌(需要Claude订阅)
claude update检查并安装可用更新

会话内命令

命令说明
/help显示所有可用命令
/init分析项目并生成CLAUDE.md
/clear清除会话上下文
/compact压缩对话历史(可指定焦点)
/context查看上下文窗口使用情况
/memory查看和管理所有记忆文件
/model切换使用的模型
/agents查看和配置子智能体
/hooks配置生命周期钩子
/permissions查看和配置工具权限
/status查看当前配置来源和状态
/resume打开会话切换选择器
/rename <名称>为当前会话命名
/rewind打开历史回退菜单
/btw <问题>快速提问(不进入上下文历史)
/config打开配置界面

键盘快捷键

快捷键功能
Esc中断Claude当前操作
Esc + Esc打开回退菜单
Shift + Tab循环切换权限模式
Ctrl + O切换详细模式(显示思考过程)
Ctrl + G在文本编辑器中打开当前计划
Option + T(macOS)切换扩展思考模式
Ctrl + B将当前任务移入后台执行

最佳实践

给Claude提供可验证的标准

Claude Code在能够自我检验时表现最好,例如在任务描述中包含验证条件:

❌ 实现邮件验证函数

✅ 编写 validateEmail 函数。测试用例:
- user@example.com → true
- invalid → false
- user@.com → false
实现完成后运行测试。

先探索,再规划,最后编码

对于复杂任务,使用计划模式(Plan Mode)分离研究和实现:

  1. 在计划模式下理解代码库(无写操作)
  2. 制定详细实现方案
  3. 切回普通模式执行
  4. 验证并提交

主动管理上下文

  • 在不相关任务之间使用/clear重置上下文
  • 将关键规则写入CLAUDE.md而不是依赖对话历史(对话历史在压缩时可能丢失)
  • 使用子智能体进行代码库探索,保持主对话的清洁
  • 使用/btw进行不影响上下文的快速提问

及时纠偏

如果Claude走偏了:

  • Esc中断,重新描述方向
  • 双击Esc/rewind回退到之前的检查点
  • 若同一问题被纠正超过两次,使用/clear重新开始并写出更精确的提示词

CLAUDE.md维护

  • 定期回顾,删除冗余内容
  • 测试每条规则的必要性:如果Claude删掉后仍能正确运行,删除它
  • 可以使用IMPORTANTYOU MUST等强调词提升高优先级规则的遵循率
  • CLAUDE.md纳入版本控制,让团队成员共同维护

总结

Claude Code通过智能体循环、强大的工具体系和灵活的记忆机制,实现了真正意义上的自主编程助手。它的核心优势在于:

  • 全局理解:不仅看当前文件,而是理解整个代码库
  • 自主执行:从诊断到修复到验证,完整的工作闭环
  • 持久学习:通过CLAUDE.md和自动记忆积累项目知识
  • 灵活扩展:通过SkillsHooksMCP等机制适配特定工作流
  • 安全可控:分级权限模型和检查点机制确保操作可审计、可回退

掌握Claude Code的关键是理解它的边界:它的核心约束是上下文窗口。主动管理上下文、给它可验证的标准、善用计划模式和子智能体,就能充分发挥其潜力。随着使用深入,你会逐渐培养出判断何时需要规划、何时可以直接执行的直觉,将Claude Code真正融入高效的开发工作流中。

参考资料