# Claude Code SDK

URL: https://caijiao.org/claude-code-in-action/19-the-claude-code-sdk
Source: docs/claude-code-in-action/19-the-claude-code-sdk.md
Description: 了解 Claude Code SDK 的安装、使用方法和实际应用场景，包括 TypeScript 和 Python 示例

原文链接：[https://anthropic.skilljar.com/claude-code-in-action/303250](https://anthropic.skilljar.com/claude-code-in-action/303250)

**标签：** 视频 + 讲义

---

Claude Code SDK 让你可以在应用或脚本中以编程方式调用 Claude Code。它提供 TypeScript、Python 以及 CLI 方式，功能与终端中的 Claude Code 一致。

## 基础用法

以下是一个 TypeScript 示例，用于查找重复查询：

```typescript
import { query } from "@anthropic-ai/claude-code";

const prompt = "Look for duplicate queries in the ./src/queries dir";

for await (const message of query({
  prompt,
})) {
  console.log(JSON.stringify(message, null, 2));
}
```

## SDK 功能

Claude Code SDK 提供了以下核心功能：

- **query()**：发送提示词并获取响应
- **tool()**：直接调用工具
- **会话管理**：创建和管理对话会话

## 安装 SDK

```bash
# TypeScript
npm install @anthropic-ai/claude-code

# Python
pip install anthropic-code
```

## 认证

使用 SDK 需要设置 API Key 或通过 CLI 认证：

```bash
# 通过 CLI 认证
claude auth login
```

## 实际应用场景

SDK 可以用于：

- **CI/CD 集成**：在自动化流程中调用 Claude
- **自定义工具**：构建特定领域的 AI 助手
- **批量处理**：对多个文件执行相同操作
- **测试验证**：自动验证代码变更

## 示例：批量重构

```typescript
import { query, readFile, writeFile } from "@anthropic-ai/claude-code";

const files = ["./src/a.ts", "./src/b.ts", "./src/c.ts"];

for (const file of files) {
  const content = await readFile({ path: file });
  
  const result = await query({
    prompt: `Refactor this code to use modern TypeScript patterns:\n\n${content}`,
  });
  
  console.log(`Refactored ${file}`);
}
```

---

**下一节：** [20 Claude Code 测验](./20-quiz-on-claude-code)
