Claude Code
Claude Code 是什么
Claude Code 是 Anthropic 官方出的 AI 编程助手,跑在终端里。不是网页版 ChatGPT,是直接在你的开发环境里工作。
主要特点:
- 命令行工具(CLI),在终端运行
- 能读、写、编辑你项目里的文件
- 理解整个代码库,不只是单个文件
- 支持 Git 集成
- 可扩展(MCP 服务器、自定义命令)
跟 Cursor 不一样:Cursor 是完整 IDE,Claude Code 是终端工具。你可以跟 VS Code、Cursor 这些编辑器一起用。
安装和配置
安装
npm install -g @anthropic-ai/claude-code需要 Node.js 18 或更高版本。
认证
方法一:API Key
- 去 Anthropic Console 拿 API key
- 设置环境变量:
export ANTHROPIC_API_KEY="your-api-key-here"加到 ~/.bashrc 或 ~/.zshrc 让它永久生效。
方法二:浏览器登录(推荐)
有 Claude Pro 或 Max 订阅的话,可以直接用浏览器登录,不用管 API key。
验证安装
claude --version能显示版本号就说明装好了。
基本使用
启动
# 启动交互模式
claude
# 带初始问题启动
claude "解释这个项目的结构"
# 查询一次就退出
claude -p "这个函数有什么问题?"
# 继续上次对话
claude -c
# 恢复指定会话
claude -r "session-id" "继续刚才的任务"交互模式
进入交互模式后,你就像跟一个结对程序员聊天:
你: 帮我重构这个函数,让它更易读
Claude: 我来看一下... [读取文件]
Claude: 这个函数主要问题有:
1. 嵌套太深
2. 变量命名不清晰
3. 缺少错误处理
我可以这样改... [展示修改方案]
要应用这些修改吗? (y/n)Claude Code 可以直接读写文件,不需要你复制粘贴。
核心功能
1. 文件操作
读取文件:
解释 @./src/utils/api.ts 这个文件编辑文件:
重构 @./src/components/Header.tsx :
1. 抽取重复逻辑到自定义 hook
2. 改善错误处理
3. 添加 TypeScript 类型创建文件:
创建一个用户认证模块:
- src/auth/login.ts
- src/auth/logout.ts
- src/auth/types.ts2. Git 集成
# 查看改动
"查看 git diff,生成提交信息"
# 创建 PR
"基于当前分支创建 pull request 描述"
# 代码审查
"审查这个 PR 的改动"Claude Code 能读懂 git 历史,理解项目演进。
3. 终端命令
用 ! 执行 shell 命令:
# 单个命令
!npm test
# 进入 shell 模式
!#
# 现在可以直接执行命令
npm run build
npm run test
exit # 退出 shell 模式实用场景:
你: 运行测试,看看有没有失败
Claude: [执行 npm test]
有3个测试失败了。让我看看问题在哪... [分析错误]Claude Code 可以自己跑命令、看结果、分析问题、修 bug。
4. 上下文管理
引用文件:
@./src/components/Button.tsx 这个按钮怎么实现无障碍?引用目录:
@./src/api/ 这些 API 端点加认证引用多个文件:
对比这两个实现:
@./src/old/utils.js
@./src/new/utils.tsGlob 模式:
检查 @./src/**/*.test.ts 覆盖率够不够5. 斜杠命令
内置命令,快速完成常见任务:
/help # 显示所有命令
/config # 配置设置
/allowed-tools # 配置工具权限
/hooks # 配置自动化钩子
/mcp # 管理 MCP 服务器
/agents # 管理子代理
/vim # 开启 vim 编辑模式
/model # 切换 AI 模型配置文件
设置层级
Claude Code 用三个层级的设置文件:
全局设置:
~/.claude/settings.json- 影响所有项目
项目设置:
.claude/settings.json- 影响当前项目,可以提交到 git
本地设置:
.claude/settings.local.json- 个人配置,不提交到 git
示例配置
{
"model": "claude-sonnet-4-20250514",
"maxTokens": 4096,
"permissions": {
"allowedTools": [
"Read",
"Write",
"Bash(git *)",
"Bash(npm test)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Write(./production.config.*)"
]
},
"hooks": {
"PostToolUse": [
{
"matcher": "Write(*.py)",
"hooks": [
{
"type": "command",
"command": "python -m black $file"
}
]
}
]
}
}说明:
model:默认模型permissions.allowedTools:允许的工具permissions.deny:禁止操作敏感文件hooks:自动化操作(这里写 Python 文件后自动格式化)
CLAUDE.md 文件
给 Claude Code 提供项目上下文。
层级:
~/.claude/CLAUDE.md- 全局./CLAUDE.md- 项目根目录子目录/CLAUDE.md- 特定目录
示例:
# 项目上下文
## 技术栈
- 前端:Next.js + TypeScript
- 后端:Node.js + Express
- 数据库:PostgreSQL + Prisma
- 状态:Zustand
## 编码规范
- 用 TypeScript 严格模式
- 组件用函数式 + Hooks
- API 调用必须处理错误
- 所有新功能写测试
## 文件结构
- src/components/ - React 组件
- src/utils/ - 工具函数
- src/api/ - API 调用
- tests/ - 测试文件这样 Claude Code 就知道怎么写符合你项目风格的代码。
高级功能
自定义命令
在 .claude/commands/ 创建命令文件。
简单命令:
<!-- .claude/commands/review.md -->
审查这段代码的安全漏洞:使用:/review
带参数的命令:
<!-- .claude/commands/fix.md -->
修复 issue #$ARGUMENTS,遵循项目编码规范使用:/fix 123
复杂命令(带上下文):
---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
description: 创建 git 提交
---
## 上下文
- 当前状态:!`git status`
- 改动:!`git diff HEAD`
- 分支:!`git branch --show-current`
基于以上改动生成有意义的提交信息。Hooks(自动化)
在特定事件自动执行命令。
示例:写完 Python 代码自动格式化
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write(*.py)",
"hooks": [
{
"type": "command",
"command": "python -m black $file"
}
]
}
]
}
}可用事件:
PreToolUse- 工具执行前PostToolUse- 工具执行后UserPromptSubmit- 用户提交提示前SessionStart- 会话开始时
MCP 服务器
扩展 Claude Code 的能力。
添加 MCP 服务器:
claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2常见用途:
- 连接 Google Drive 看设计文档
- 集成 Jira 管理任务
- 访问外部数据库
- 添加自定义开发工具
Skills(技能)
类似自定义命令,但用自然语言触发。
创建技能:
mkdir -p .claude/skills/add-test-coverage在目录里创建 SKILL.md:
---
name: add-test-coverage
description: 为函数添加单元测试
---
# 添加测试覆盖
当用户要求添加测试时:
1. 分析目标函数的输入输出
2. 识别边界情况和错误场景
3. 使用项目的测试框架(Jest/Vitest)
4. 确保测试覆盖率 > 80%
5. 运行测试验证
示例:
用户:"给 utils.ts 添加测试"
→ 创建 utils.test.ts 并编写完整测试Claude Code 会自动识别何时使用这个技能。
Subagents(子代理)
专门的 Claude 实例,处理特定领域任务。
使用场景:
- 代码审查专家
- 测试工程师
- 文档写手
- 性能优化顾问
创建子代理:
/agents create code-reviewer然后定义它的角色和任务。
实用技巧
1. 模型选择
| 模型 | 用途 | 特点 |
|---|---|---|
| Sonnet 4.5 | 默认选择 | 平衡速度和质量 |
| Haiku 4.5 | 简单任务 | 快速、便宜 |
| Opus 4.5 | 复杂任务 | 最强推理能力 |
切换模型:
/model claude-opus-42. 节省 token
- 只引用需要的文件
- 用
.gitignore风格排除不相关内容 - CLAUDE.md 提供上下文,减少重复说明
- 用 Haiku 处理简单任务
3. 权限管理
允许特定工具:
claude --allowedTools "Write" "Bash(git *)"禁止危险操作:
claude --disallowedTools "Bash(rm *)"配置文件里设置:
{
"permissions": {
"deny": [
"Write(./.env)",
"Write(./production.*)"
]
}
}4. 工作流集成
在 VS Code 中使用:
- 安装 Claude Code 扩展
- 在集成终端运行
claude - VS Code 和 Claude Code 同步
在 Cursor 中使用:
Claude Code 跟 Cursor 兼容,可以同时用。
典型使用场景
场景 1:理解新项目
cd new-project
claude "这个项目是干什么的?技术栈是什么?"Claude Code 会:
- 读取 package.json、README.md
- 分析目录结构
- 总结项目功能和架构
场景 2:重构代码
claude "重构 src/api/user.ts:
1. 抽取重复的错误处理
2. 改善类型定义
3. 添加 JSDoc 注释"Claude Code 会:
- 读取文件
- 分析代码
- 展示重构方案
- 等你确认后应用修改
场景 3:写测试
claude "为 src/utils/validation.ts 写单元测试"Claude Code 会:
- 分析函数逻辑
- 识别边界情况
- 生成测试用例
- 运行测试验证
场景 4:调试
npm test
# 测试失败了
claude "分析测试失败原因并修复"Claude Code 会:
- 读取测试代码
- 执行测试看错误信息
- 找出 bug
- 修复代码
- 重新测试
定价
Claude Code 本身免费,但需要消耗 Claude API 配额或订阅。
选项:
| 方式 | 价格 | 说明 |
|---|---|---|
| Claude Pro | $20/月 | 适合个人使用 |
| Claude Max | 官网查看 | 团队协作 |
| API 按量付费 | 用多少付多少 | 适合灵活使用 |
Pro/Max 订阅的好处:
- 不用管 API key 刷新
- 浏览器登录更方便
- 优先访问新功能
适合谁用 API:
- 使用量不稳定
- 团队需要集中计费
- 需要精确控制成本
跟其他工具对比
vs Cursor
| Claude Code | Cursor |
|---|---|
| 终端工具 | 完整 IDE |
| 跟任何编辑器配合 | 只在 Cursor 里用 |
| 更轻量 | 功能更集成 |
| 免费开源 | $20/月 |
可以同时用: 在 Cursor 里打开终端,跑 Claude Code,两个一起用。
vs GitHub Copilot
| Claude Code | Copilot |
|---|---|
| 命令行交互 | 编辑器内补全 |
| 能读写文件 | 主要补全代码 |
| Claude 模型 | OpenAI 模型 |
| 需要订阅/ API | $10/月 |
互补关系:
- Copilot:实时补全,像智能 autocomplete
- Claude Code:对话式,像结对程序员
vs ChatGPT 网页版
| Claude Code | ChatGPT 网页 |
|---|---|
| 直接操作文件 | 复制粘贴 |
| 理解项目结构 | 只看到贴的代码 |
| Git 集成 | 没有 |
| 可扩展 | 有限 |
优缺点
优点:
- 在真实开发环境工作
- 能直接操作文件和 Git
- 高度可定制
- 免费(需 API/订阅)
- 社区活跃,MCP 生态丰富
缺点:
- 需要命令行基础
- 没有图形界面(部分人可能不习惯)
- 需要网络连接
- 学习曲线比 Cursor 陡
学习资源
官方:
社区:
教程:
常见问题
Q: Claude Code 会把我的代码发给 Anthropic 吗? A: 会。代码发送到 Anthropic 的 API 处理。隐私政策声明不会用客户代码训练模型。
Q: 能在离线环境用吗? A: 不能。需要连接 Anthropic API。
Q: 支持哪些编程语言? A: 所有语言。Claude 对 Python、JavaScript、TypeScript、Go、Rust 等支持最好。
Q: 跟 Cursor 选哪个? A:
- 要图形界面、深度集成 → Cursor
- 要轻量、跟任何编辑器配合 → Claude Code
- 预算充足 → 两个都用
Q: 如何限制成本? A:
- 用 Haiku 处理简单任务
- 限制上下文大小
- 设置 token 警告
- Pro/Max 订阅比按量付费划算(如果经常用)
下一步
- 安装 Claude Code:
npm install -g @anthropic-ai/claude-code - 配置认证(API key 或浏览器登录)
- 在真实项目试试:
claude "解释这个项目" - 创建
.claude/settings.json配置 - 写
CLAUDE.md提供项目上下文 - 探索 MCP 服务器扩展功能