为什么需要 Claude Code CLI?
想象这个场景:你正在终端里调试一个复杂的微服务,突然发现某个 API 响应格式有问题。传统做法是:
- 切换到浏览器,打开 Claude 网页版
- 手动复制粘贴错误日志
- 描述问题,等待回答
- 再把代码复制回终端测试
繁琐且容易出错。而有了 Claude Code CLI(后文简称 CC),你只需在终端输入:
cc "分析刚才的报错,给出修复方案"
CC 直接读取终端上下文、项目文件,甚至能直接运行修复命令。本文带你从零搭建 CC 工作流,并编写 3 个实用的自定义工具。
准备工作:环境与依赖
步骤 1:安装与基础配置
安装 CLI
使用 npm 全局安装:
npm install -g @anthropic-ai/claude-code
# 或使用 bun
bun install -g @anthropic-ai/claude-code
配置 API Key
运行配置向导:
claude-code config
按提示输入 API Key,或手动编辑 ~/.claude-code/config.json:
{
"apiKey": "sk-ant-api03-xxxxxxxxxxxxx",
"model": "claude-sonnet-4-20260101"
}
验证安装
cc "hello" --quiet
看到响应即表示配置成功。
步骤 2:核心用法速览
单行查询模式
最简单的用法,类似 curl:
cc "解释这个正则表达式:^\\w+@[\\w-]+\\.\\w+$"
加 --quiet 只输出结果,不显示思考过程:
cc "git commit -m 'fix: typo'" --quiet
交互式会话
进入 REPL 模式,进行多轮对话:
cc
> 帮我重构这个函数
> 再加上类型注释
> 现在写单元测试
CC 会记住上下文,连续执行任务。
文件操作
直接让 CC 读取或修改文件:
cc "检查 package.json 是否有未使用的依赖"
cc "把 src/utils.ts 里的工具函数改成 ES Module"
使用 @path/to/file 显式指定文件:
cc "@src/api.ts 添加错误处理"
代码执行
CC 可以直接运行 shell 命令:
cc "运行测试并修复失败的用例"
⚠️ 注意:默认会询问是否执行命令,可在配置中关闭确认。
步骤 3:编写自定义 Tool(实战)
CC 的强大之处在于可以扩展自定义工具。下面编写 3 个实用工具:
工具 1:Git 提交检查器
在 commit 前自动检查提交信息格式:
// tools/git-checker.ts
import { tool } from '@anthropic-ai/claude-code';
export const gitCommitChecker = tool({
name: 'check_commit_message',
description: '验证 git commit message 是否符合约定式提交规范',
parameters: {
message: { type: 'string', description: '提交信息' }
},
execute: async ({ message }) => {
const regex = /^(feat|fix|docs|style|refactor|test|chore):\s.+/;
if (!regex.test(message)) {
return {
valid: false,
error: '格式错误。应为:type: description'
};
}
return { valid: true };
}
});
工具 2:依赖分析器
分析 package.json 并建议删除未使用依赖:
// tools/dep-analyzer.ts
import { tool } from '@anthropic-ai/claude-code';
import { execSync } from 'child_process';
import { readFileSync } from 'fs';
export const depAnalyzer = tool({
name: 'analyze_dependencies',
description: '扫描项目并找出未使用的 npm 依赖',
parameters: {
path: { type: 'string', default: '.' }
},
execute: async ({ path }) => {
// 使用 depcheck 工具扫描
const pkg = JSON.parse(readFileSync(`${path}/package.json`, 'utf-8'));
const usedDeps = execSync(`npx depcheck ${path}`).toString();
const unused = Object.keys(pkg.dependencies).filter(
dep => !usedDeps.includes(dep)
);
return {
total: Object.keys(pkg.dependencies).length,
unused,
suggestion: unused.length > 0
? `建议运行:npm uninstall ${unused.join(' ')}`
: '所有依赖都在使用'
};
}
});
工具 3:API 测试生成器
根据 OpenAPI 规范自动生成测试用例:
// tools/api-test-gen.ts
import { tool } from '@anthropic-ai/claude-code';
import { OpenAPIV3 } from 'openapi-types';
export const apiTestGen = tool({
name: 'generate_api_tests',
description: '从 OpenAPI spec 生成 Jest 测试',
parameters: {
specPath: { type: 'string', description: 'OpenAPI JSON 文件路径' },
endpoint: { type: 'string', description: '要测试的端点路径' }
},
execute: async ({ specPath, endpoint }) => {
const spec: OpenAPIV3.Document =
JSON.parse(readFileSync(specPath, 'utf-8'));
const pathItem = spec.paths[endpoint];
const methods = Object.keys(pathItem);
return methods.map(method => `
test('${method.toUpperCase()} ${endpoint}', async () => {
const response = await request(app)
.${method}(endpoint)
.send(${JSON.stringify(pathItem[method].requestBody)});
expect(response.status).toBe(200);
});
`.trim()).join('\n');
}
});
步骤 4:注册与使用自定义工具
创建工具注册文件
在 ~/.claude-code/tools/ 下创建 index.ts:
// ~/.claude-code/tools/index.ts
import { gitCommitChecker } from './git-checker';
import { depAnalyzer } from './dep-analyzer';
import { apiTestGen } from './api-test-gen';
export const tools = [
gitCommitChecker,
depAnalyzer,
apiTestGen
];
配置 CC 加载工具
修改 ~/.claude-code/config.json:
{
"apiKey": "...",
"customTools": ["~/.claude-code/tools/index.ts"]
}
在对话中调用
重启 CC 后,可以直接说:
cc "检查我刚才的 commit message 格式"
cc "分析当前项目的依赖使用情况"
cc "为/api/users 生成测试用例"
CC 会自动识别并调用对应的自定义工具。
步骤 5:搭建自动化工作流
将 CC 集成到日常开发流程中:
Git Hook 集成
在 .git/hooks/pre-commit 中:
#!/bin/bash
# 让 CC 检查代码质量
cc "扫描暂存文件中的潜在 bug" || exit 1
# 检查提交信息
commit_msg=$(git log -1 --pretty=%B)
cc "检查提交信息格式:$commit_msg" || exit 1
CI/CD 集成
GitHub Actions workflow:
name: AI Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Claude Code Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
npm install -g @anthropic-ai/claude-code
cc "Review this PR for bugs and best practices"
Shell 别名优化
在 ~/.zshrc 中添加:
# 快捷命令
alias ccr='cc --quiet' # 快速响应
alias ccd='cc --debug' # 调试模式
alias ccf='cc --file' # 文件模式
# 智能函数
ccg() {
cc "生成 $1 的单元测试" --quiet
}
ccr() {
cc "Code review: $*" --quiet
}
常见问题 FAQ
Q: CC 和 Cursor/Copilot 有什么区别?
A: Cursor 是 IDE 插件,侧重代码补全;CC 是独立 CLI 工具,可以执行 shell 命令、操作文件系统,更适合自动化工作流。两者可以配合使用。
Q: API 费用如何计算?
A: 按 Token 计费。简单查询约 100-500 tokens($0.0001-0.0005),复杂代码分析可能 2000+ tokens。建议日常使用 Sonnet 模型,复杂任务再用 Opus。
Q: 自定义工具不生效怎么办?
A: 检查三点:1) 工具文件路径正确;2) config.json 中 customTools 数组配置正确;3) 重启 CC 使配置生效。可用 cc --list-tools 查看已加载工具。
Q: 如何让 CC 理解整个项目?
A: 使用 cc --project 启动会话,CC 会自动索引项目结构。也可在对话中说"读取@src 目录"来指定范围。
总结
- ✓ 掌握了 CC 的安装配置和基础用法
- ✓ 学会了编写 3 个实用的自定义工具
- ✓ 将 CC 集成到 Git Hook 和 CI/CD 流程
- ✓ 通过 Shell 别名提升日常效率