入门指南
Claude Code v2.1.88 是 Anthropic 官方开发的 AI 编程助手命令行工具。本指南从宏观到微观,全方位介绍项目的架构设计、启动流程、特性门控系统以及开发者上手方法。
项目定位
Claude Code 是一个运行在终端内的交互式 AI 编程代理(Agentic Coding Assistant),核心能力包括:
- 对话式编程:通过自然语言与 AI 协作完成代码编写、修改、调试
- 工具调用:40+ 内置工具(文件读写、Bash 执行、搜索、Web 访问等)
- MCP 扩展:通过 Model Context Protocol 接入外部工具服务器
- 多模型支持:Anthropic Direct、AWS Bedrock、Azure Foundry、Google Vertex AI
- 远程协作:Bridge 协议实现 claude.ai Web 端与 CLI 端的双向通信
- 企业级功能:团队记忆、策略限制、远程托管设置、SSO 认证
技术栈总览
| 技术 | 版本/规格 | 用途 |
|---|---|---|
| TypeScript | 严格模式 | 主要开发语言,全项目 ~1500+ 源文件 |
| Bun | 运行时 | 构建、打包、运行、包管理(非 Node.js) |
| React 19 | ConcurrentRoot | UI 渲染框架,配合自定义 Ink 终端渲染器 |
| Ink | 深度定制版 | 87 个文件的自定义终端 React 渲染器 |
| Zod v4 | Schema 验证 | 工具输入/输出、设置验证、Hook 定义 |
| MCP | Model Context Protocol | 工具服务器扩展协议 |
| Yoga Layout | Flexbox 引擎 | 终端 Flexbox 布局计算 |
| React Compiler Runtime | 自动记忆化 | c() 运行时提供免 useMemo/useCallback |
| Commander.js | CLI 参数解析 | ~50 个命令行选项定义 |
| GrowthBook | 特性门控 | 运行时 A/B 测试和功能开关 |
| OpenTelemetry | 可观测性 | 遥测数据采集(~400KB 延迟加载) |
源码规模
src/ ~1500+ TypeScript/TSX 文件
├── 根文件 (26) 核心系统入口
├── tools/ (40+) 内置工具实现
├── commands/ (70+) 斜杠命令实现
├── services/ (16 子目录) 后台服务
├── components/ (130+) UI 组件
├── hooks/ (80+) React Hook
├── utils/ (300+) 工具函数
├── ink/ (87) 自定义渲染器
├── bridge/ (31) 远程通信
├── constants/ (21) 常量定义
├── state/ (6) 状态管理
├── keybindings/ (14) 快捷键系统
└── ... 其他子系统
vendor/ 原生模块源码
├── audio-capture-src/ 音频采集
├── image-processor-src/ 图像处理
├── modifiers-napi-src/ 修饰键检测
└── url-handler-src/ URL 处理文档导航
| 章节 | 内容 | 适合谁 |
|---|---|---|
| 总体架构 | 6 层分层设计、数据流图、模块依赖 | 架构师、首次阅读者 |
| 启动流程详解 | cli.tsx → init.ts → REPL.tsx 完整链路 | 需要理解初始化的开发者 |
| 特性门控系统 | feature() 编译时消除、~47 个 Flag | 需要理解条件编译的开发者 |
| 开发者指南 | 构建、调试、测试、代码规范 | 想要参与开发的贡献者 |