Claude Code 是 Anthropic 推出的命令行 AI 编程助手,它可以理解你的代码库、执行命令、读写文件,并协助你完成各种开发任务。本文将详细介绍 Claude Code 的使用方法,特别是如何配合自定义模型使用。

安装和配置

安装 Claude Code

Claude Code 原生安装使用了 bun 打包的,性能更好:

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

安装完成后,需要配置 API 密钥:

1
2
claude
# 首次运行会提示输入 API 密钥

或者通过环境变量设置:

1
export ANTHROPIC_API_KEY="your-api-key-here"

验证安装

运行以下命令验证安装是否成功:

1
claude --version

基本使用

启动交互式会话

在项目根目录运行 claude 命令启动交互式会话:

1
claude

启动后,你可以直接输入自然语言描述你的需求,例如:

1
帮我创建一个简单的 HTTP 服务器

执行单次查询

使用 -p 参数执行单次查询并退出:

1
claude -p "解释一下这个项目的结构"

命令行参数

参数说明示例
-p, --prompt执行单次查询claude -p "解释代码"
-d, --directory指定工作目录claude -d /path/to/project
--verbose显示详细日志claude --verbose
--version显示版本号claude --version
--help显示帮助信息claude --help

会话内命令

在交互式会话中可以使用的命令:

命令说明示例
/clear清除当前会话历史/clear
/exit退出会话/exit
/help显示帮助信息/help
/save <file>保存会话到文件/save session.json
/load <file>加载历史会话/load session.json
/model查看/切换模型/model claude-3-opus
/bug报告问题/bug 描述问题

自定义模型配置

为什么需要自定义模型

Claude Code 默认使用 Anthropic 的官方模型,但在某些场景下,你可能需要:

  • 降低成本:使用第三方提供的更便宜的 API 服务
  • 数据合规:使用本地部署的模型满足数据隐私要求
  • 特殊需求:使用特定版本或微调的模型

配置自定义模型端点

Claude Code 支持通过环境变量配置自定义模型端点:

1
2
3
4
5
# 设置自定义 API 端点
export ANTHROPIC_BASE_URL="https://your-custom-endpoint.com/v1"

# 设置使用的模型名称
export ANTHROPIC_MODEL="your-model-name"

使用兼容 Anthropic API 的服务

许多服务提供兼容 Anthropic API 的接口,可以直接使用:

使用 OpenRouter

1
2
3
export ANTHROPIC_BASE_URL="https://openrouter.ai/api/v1"
export ANTHROPIC_API_KEY="your-openrouter-key"
export ANTHROPIC_MODEL="anthropic/claude-3.5-sonnet"

使用本地部署的模型

如果你使用 vLLM、Ollama 等本地部署方案:

1
2
3
4
# 以 Ollama 为例
export ANTHROPIC_BASE_URL="http://localhost:11434/v1"
export ANTHROPIC_API_KEY="ollama"
export ANTHROPIC_MODEL="llama3.1:70b"

使用阿里云百炼

1
2
3
export ANTHROPIC_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
export ANTHROPIC_API_KEY="your-dashscope-key"
export ANTHROPIC_MODEL="qwen-plus"

配置文件方式

创建 .claude/config.json 文件保存配置:

1
2
3
4
5
{
"api_key": "your-api-key",
"base_url": "https://your-custom-endpoint.com/v1",
"model": "your-model-name"
}

高级使用技巧

项目上下文理解

Claude Code 会自动读取项目中的文件来理解上下文。为了更好地利用这个功能:

创建项目说明文件

在项目根目录创建 PROJECT.mdREADME.md,描述项目结构和技术栈:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 项目概述

这是一个基于 Spring Boot 的分布式服务...

## 技术栈
- Java 17
- Spring Boot 3.x
- MySQL 8.0

## 目录结构
- `src/main/java`: 源代码
- `src/test/java`: 测试代码
- `src/main/resources`: 配置文件

多文件操作

批量读取文件

在对话中明确指定要读取的文件:

1
2
请读取 src/main/java/com/example/Service.java 和 
src/main/java/com/example/Controller.java,分析它们的关系

创建多个文件

1
2
3
4
5
创建一个完整的用户模块,包括:
- User 实体类
- UserRepository 数据访问层
- UserService 业务逻辑层
- UserController 控制器

代码执行和验证

Claude Code 可以执行 shell 命令来验证代码:

1
帮我修复这个编译错误,然后运行 mvn test 验证

安全提示:Claude Code 在执行命令前会请求确认,确保你了解命令的作用。

会话管理

保存重要对话

使用 /save 命令保存当前会话:

1
/save important-session.json

加载历史会话

1
/load important-session.json

Skills 使用

Claude Code 的 Skills 是一种可扩展的能力系统,允许你定义自定义命令和工作流。

什么是 Skills

Skills 是预定义的指令模板,可以帮助你:

  • 标准化工作流程:确保团队使用一致的方法
  • 提高效率:减少重复输入
  • 封装最佳实践:将经验固化为可复用的指令

内置 Skills

Claude Code 提供了一些内置的 Skills:

Skill说明使用方法
/dev开发相关任务/dev 实现一个功能
/test测试相关任务/test 为这个类生成测试
/docs文档相关任务/docs 生成 API 文档
/refactor重构相关任务/refactor 优化这段代码
/debug调试相关任务/debug 分析这个错误

自定义 Skills

在项目根目录创建 .claude/skills/ 目录,可以定义自定义 Skills。

创建 Skill 文件

创建 .claude/skills/review.json

1
2
3
4
5
6
{
"name": "review",
"description": "代码审查技能",
"instructions": "请作为资深代码审查员,审查以下代码:\n1. 检查代码规范和风格\n2. 识别潜在的 bug 和安全问题\n3. 评估性能和可维护性\n4. 提出具体的改进建议\n\n代码:",
"category": "development"
}

使用自定义 Skill

1
claude /review src/main/java/Service.java

Skill 模板示例

测试生成 Skill (.claude/skills/test.json):

1
2
3
4
5
6
{
"name": "test",
"description": "生成单元测试",
"instructions": "请为以下代码生成完整的单元测试:\n- 使用 JUnit 5 框架\n- 使用 Mockito 进行依赖模拟\n- 覆盖所有公共方法\n- 包括正常情况和边界情况\n- 断言要具体明确\n\n代码:",
"category": "testing"
}

Git 提交 Skill (.claude/skills/commit.json):

1
2
3
4
5
6
{
"name": "commit",
"description": "生成 Git 提交信息",
"instructions": "请根据以下 git diff 生成符合 Conventional Commits 规范的提交信息:\n- 格式:<type>(<scope>): <description>\n- type 包括:feat, fix, docs, style, refactor, test, chore\n- 提供简短的正文说明(可选)\n\ngit diff:",
"category": "git"
}

SQL 生成 Skill (.claude/skills/sql.json):

1
2
3
4
5
6
{
"name": "sql",
"description": "生成 SQL 查询",
"instructions": "请根据以下需求生成 SQL 查询:\n- 考虑性能和索引使用\n- 使用参数化查询防止 SQL 注入\n- 添加必要的注释\n- 遵循团队 SQL 规范\n\n需求:",
"category": "database"
}

Skill 最佳实践

  1. 保持专注:每个 Skill 只做一件事
  2. 明确输入输出:清楚说明需要什么输入,会产生什么输出
  3. 包含示例:在 instructions 中添加使用示例
  4. 分类管理:使用 category 字段组织 Skills

实际应用场景

代码审查

1
2
3
4
请审查这个 Pull Request 的改动,找出潜在的问题:
1. 检查是否有空指针风险
2. 检查异常处理是否完善
3. 检查是否有性能问题

重构辅助

1
2
3
4
这个类有 500 行代码,太长了。请帮我:
1. 分析职责划分
2. 提出拆分建议
3. 逐步执行重构

测试生成

1
2
3
4
为 UserService 类生成单元测试,要求:
- 使用 JUnit 5 和 Mockito
- 覆盖所有公共方法
- 包括边界条件测试

文档生成

1
2
3
4
根据代码生成 API 文档:
- 提取所有 REST 端点
- 说明请求参数和响应格式
- 添加使用示例

Bug 调试

1
2
3
4
5
这个测试失败了,请帮我分析原因:
1. 查看错误日志
2. 定位问题代码
3. 提出修复方案
4. 验证修复结果

使用 Skills 简化流程

使用自定义 Skills 可以简化常见任务:

1
2
3
4
5
6
7
8
# 使用 review skill 快速审查代码
claude /review src/main/java/UserService.java

# 使用 test skill 生成测试
claude /test src/main/java/UserService.java

# 使用 commit skill 生成提交信息
git diff | claude /commit

最佳实践

提示词技巧

  1. 具体明确:不要说"修复这个 bug",而要说"修复 NullPointerException,发生在第 42 行"

  2. 分步执行:复杂任务分解成多个小步骤

    1
    2
    3
    第一步:分析代码结构
    第二步:提出改进建议
    第三步:执行重构
  3. 提供上下文:告诉 AI 项目的技术栈和约束条件

  4. 使用 Skills:将常用操作封装为 Skills,提高效率

安全注意事项

  1. 审查所有改动:在提交前仔细检查 AI 生成的代码
  2. 敏感信息保护:不要在对话中暴露 API 密钥、数据库密码等
  3. 命令执行确认:仔细审查要执行的命令,特别是 rm、chmod 等危险操作

成本控制

  1. 使用合适的模型:简单任务使用较小的模型
  2. 精简上下文:只包含必要的文件
  3. 复用会话:在同一会话中继续任务,避免重复发送上下文

常见问题

模型响应慢

  • 检查网络连接
  • 尝试使用更小的模型
  • 减少上下文文件大小

API 调用失败

1
2
3
4
5
6
7
8
# 检查 API 密钥是否正确
echo $ANTHROPIC_API_KEY

# 检查端点是否可达
curl -I $ANTHROPIC_BASE_URL

# 查看详细日志
claude --verbose

模型不理解项目

  • 确保在项目根目录运行
  • 创建清晰的项目说明文档
  • 主动提供相关文件路径

常见问题

模型响应慢

  • 检查网络连接
  • 尝试使用更小的模型
  • 减少上下文文件大小

API 调用失败

1
2
3
4
5
6
7
8
# 检查 API 密钥是否正确
echo $ANTHROPIC_API_KEY

# 检查端点是否可达
curl -I $ANTHROPIC_BASE_URL

# 查看详细日志
claude --verbose

模型不理解项目

  • 确保在项目根目录运行
  • 创建清晰的项目说明文档
  • 主动提供相关文件路径

总结

Claude Code 是一个强大的编程助手,通过合理配置和使用技巧,可以显著提高开发效率。

核心要点

  • 灵活配置:支持自定义模型端点,可以对接各种兼容服务
  • 上下文理解:自动读取项目文件,理解代码结构
  • 安全可控:所有命令执行前都会请求确认
  • 场景广泛:适用于代码审查、重构、测试、调试等多种场景
  • 可扩展性:通过 Skills 系统可以自定义工作流程

推荐配置

1
2
3
4
5
6
7
8
# 生产环境使用官方模型
export ANTHROPIC_API_KEY="sk-..."
export ANTHROPIC_MODEL="claude-3-5-sonnet-20241022"

# 开发测试使用本地模型
export ANTHROPIC_BASE_URL="http://localhost:11434/v1"
export ANTHROPIC_API_KEY="ollama"
export ANTHROPIC_MODEL="qwen2.5:72b"

常用命令速查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 启动交互式会话
claude

# 执行单次查询
claude -p "解释这段代码"

# 使用 Skill
claude /review src/main/java/Service.java

# 指定模型
/model claude-3-opus

# 保存/加载会话
/save session.json
/load session.json

通过掌握这些技巧,你可以让 Claude Code 更好地服务于你的开发工作流。