技术栈
Claude Code 采用了一套现代化且高性能的技术栈,以下逐一剖析各技术选型的原因与作用。
运行时:Bun
选择 Bun 而非 Node.js 作为运行时,核心优势在于:
- 启动速度快 — Bun 的冷启动时间远低于 Node.js,对 CLI 工具至关重要
- 内置 TypeScript 支持 — 无需
ts-node或预编译 - 内置打包器 — 通过
bun:bundle实现编译时特性标记 - 兼容 Node.js API — 可以无缝使用 npm 生态
语言:TypeScript (Strict Mode)
全量使用 TypeScript 严格模式,确保类型安全:
// 工具定义的类型约束示例
type ToolInput = z.infer<typeof toolInputSchema>;
interface ToolResult {
output: string;
isError?: boolean;
}
终端 UI:React + Ink
Ink 是 React 的终端渲染器,让 Claude Code 可以用 React 组件模型构建复杂的终端 UI:
// 使用 JSX 构建终端界面
<Box flexDirection="column">
<Text bold color="green">Claude Code</Text>
<Box borderStyle="round" padding={1}>
<Text>{response}</Text>
</Box>
</Box>
为什么选择 Ink?
- 组件化 — 144 个组件组成了完整的 UI 库
- Hook 驱动 — 104 个 React Hook 管理状态和副作用
- 声明式布局 — Flexbox 布局模型适配终端
- 主题系统 — 支持自定义主题和样式
- 热更新 — 开发体验接近 Web 前端
CLI 框架:Commander.js
Commander.js 用于解析 CLI 参数和子命令:
# Commander.js 处理的命令行参数
claude --model opus --verbose --resume session-id
claude "fix the bug in auth.ts"
Schema 校验:Zod v4
使用 Zod v4 进行运行时类型校验,主要用于:
- 工具输入校验 — 确保 LLM 传入的工具参数合法
- 配置校验 — 验证用户配置文件格式
- API 响应校验 — 校验外部 API 返回数据
const bashToolInput = z.object({
command: z.string().describe("The command to execute"),
timeout: z.number().optional(),
});
代码搜索:ripgrep
内置 ripgrep (rg) 进行高性能代码搜索,支持:
- 正则表达式搜索
- 文件类型过滤
- Glob 模式匹配
- 多种输出模式(内容、文件名、计数)
协议
MCP (Model Context Protocol)
MCP 是 Anthropic 推出的开放协议,用于连接 AI 模型与外部工具和数据源:
- 动态工具注册
- 资源管理
- 多服务器并发
- 生命周期管理
LSP (Language Server Protocol)
集成 LSP 实现代码智能分析:
- 语义搜索
- 符号查找
- 代码补全
- 诊断信息
API 客户端:Anthropic SDK
使用官方 Anthropic SDK 与 Claude API 通信:
- 流式消息传递
- 工具使用(Tool Use)
- 多模态输入(图片、PDF)
- Token 计数与成本追踪
遥测:OpenTelemetry + gRPC
可选的遥测系统用于诊断和性能监控:
- OpenTelemetry 标准化追踪
- gRPC 高效数据传输
- 本地优先,可选上报
特性管理:GrowthBook
通过 GrowthBook 实现 A/B 测试和特性管理:
- 渐进式功能发布
- 实验性功能开关
- 用户分群配置
认证
| 方式 | 用途 |
|---|---|
| OAuth 2.0 | 第三方服务授权 |
| JWT | IDE 桥接认证 |
| macOS Keychain | 本地密钥存储 |
| API Key | Anthropic API 认证 |
完整技术栈表
| 类别 | 技术 |
|---|---|
| 运行时 | Bun |
| 语言 | TypeScript (strict) |
| 终端 UI | React + Ink |
| CLI 框架 | Commander.js |
| Schema 校验 | Zod v4 |
| 代码搜索 | ripgrep |
| AI 协议 | MCP, LSP |
| API 客户端 | Anthropic SDK |
| 遥测 | OpenTelemetry + gRPC |
| 特性管理 | GrowthBook |
| 认证 | OAuth 2.0, JWT, Keychain |