Claude Code 源码文档 - CLI 与入口
版本: 2.1.88 | 源码路径:
src/cli/,src/entrypoints/,src/main.tsx
1. CLI 模块 (src/cli/)
文件清单
| 文件 | 职责 |
|---|---|
exit.ts | 退出处理 |
print.ts | 输出打印 |
update.ts | 自动更新 |
ndjsonSafeStringify.ts | NDJSON 安全序列化 |
remoteIO.ts | 远程 I/O |
structuredIO.ts | 结构化 I/O |
CLI Handlers (cli/handlers/)
| 文件 | 处理的子命令 |
|---|---|
agents.ts | agents 相关命令 |
auth.ts | 认证命令 (login/logout) |
autoMode.ts | 自动模式 |
mcp.tsx | MCP 管理命令 |
plugins.ts | 插件管理命令 |
util.tsx | 工具函数 |
CLI Transports (cli/transports/)
| 文件 | 传输方式 |
|---|---|
SSETransport.ts | Server-Sent Events |
WebSocketTransport.ts | WebSocket |
HybridTransport.ts | 混合传输 |
ccrClient.ts | CCR 客户端 |
SerialBatchEventUploader.ts | 批量事件上传 |
WorkerStateUploader.ts | Worker 状态上传 |
transportUtils.ts | 传输工具函数 |
2. 入口点 (src/entrypoints/)
| 文件 | 用途 |
|---|---|
cli.tsx | CLI 模式入口 |
init.ts | 初始化逻辑 |
mcp.ts | MCP 服务器模式 |
agentSdkTypes.ts | Agent SDK 类型定义 |
sandboxTypes.ts | 沙盒类型 |
sdk/coreTypes.ts | SDK 核心类型 |
sdk/coreSchemas.ts | SDK 核心 Schema |
sdk/controlSchemas.ts | SDK 控制 Schema |
3. 主入口 (src/main.tsx)
主入口文件,初始化 React 应用并启动终端 UI:
main.tsx
↓ 解析 CLI 参数
↓ 初始化状态
↓ 启动 REPL 或 SDK 模式
↓ 渲染 React 组件树
AppState Provider
→ MailboxProvider
→ REPL Screen