5.1 KiB
5.1 KiB
Claude Code 源码中文 Wiki
本文件说明:总索引文档,介绍整个 Wiki 的结构和各部分内容。
概述
Claude Code 是 Anthropic 开发的 CLI 工具,用于在终端环境中与 Claude 交互完成软件工程任务。本 Wiki 基于 2026-03-31 通过 npm source map 泄露的源码进行详细分析。
项目规模
- 文件数量:约 1900 个文件
- 代码规模:512K+ 行代码
- 源码泄露时间:2026-03-31(通过 npm source map)
技术栈
| 组件 | 技术 |
|---|---|
| 运行时 | Bun |
| 语言 | TypeScript |
| 终端 UI | React + Ink |
| CLI 框架 | Commander.js |
| 参数校验 | Zod v4 |
| 代码搜索 | ripgrep |
| 构建工具 | Bun bundle |
Wiki 结构
1. 架构总览 (01-架构总览.md)
介绍 Claude Code 的整体架构设计,包括:
- 项目背景与定位
- 技术栈详解
- 核心架构设计
- 源码泄露事件
2. 核心模块详解 (02-核心模块详解.md)
详细分析以下核心文件的实现原理:
| 文件 | 功能 |
|---|---|
src/main.tsx |
CLI 入口点,应用程序初始化 |
src/QueryEngine.ts |
LLM 查询引擎核心,处理流式响应、工具调用循环、思考模式、重试逻辑、token 计数 |
src/Tool.ts |
工具基类和接口定义,工具注册表核心 |
src/commands.ts |
命令注册中心,所有 slash command 的注册和管理 |
src/context.ts |
系统/用户上下文收集,Git 状态、CLAUDE.md 处理 |
src/cost-tracker.ts |
Token 成本追踪,费用计算 |
src/query.ts |
查询管道,消息处理循环 |
3. 工具系统 (03-工具系统.md)
详细介绍所有内置工具的实现:
文件操作工具
BashTool- 执行 Shell 命令FileReadTool- 读取文件(支持文本、图片、PDF、Jupyter Notebook)FileWriteTool- 写入文件FileEditTool- 编辑文件(支持 Search/Replace 模式)GlobTool- 文件模式匹配GrepTool- 代码搜索NotebookEditTool- Jupyter Notebook 编辑
Web 工具
WebFetchTool- 获取网页内容WebSearchTool- 网络搜索
Agent 与团队工具
AgentTool- 创建和管理子 AgentTeamCreateTool- 创建 Agent 团队TeamDeleteTool- 删除团队SendMessageTool- 向团队成员发送消息
任务管理工具
TaskCreateTool- 创建任务TaskGetTool- 获取任务详情TaskUpdateTool- 更新任务状态TaskListTool- 列出任务TaskStopTool- 停止任务TaskOutputTool- 获取任务输出TodoWriteTool- 待办事项管理
模式与工作流工具
EnterPlanModeTool- 进入计划模式ExitPlanModeTool- 退出计划模式EnterWorktreeTool- 进入 Git WorktreeExitWorktreeTool- 退出 Git Worktree
搜索与技能工具
ToolSearchTool- 工具搜索SkillTool- 技能执行MCPTool- Model Context Protocol 工具
其他工具
LSPTool- 语言服务器协议工具CronCreateTool- 创建定时任务RemoteTriggerTool- 远程触发器SleepTool- 延迟执行SyntheticOutputTool- 结构化输出
核心概念
1. 工具系统 (Tool System)
Claude Code 的工具系统基于 Tool 基类构建,每个工具实现:
call()- 工具执行逻辑description()- 工具描述inputSchema- 输入参数校验checkPermissions()- 权限检查renderToolUseMessage()- 渲染工具使用消息renderToolResultMessage()- 渲染工具结果消息
2. 查询引擎 (Query Engine)
QueryEngine 是核心查询处理组件:
- 管理对话生命周期
- 处理流式 API 响应
- 执行工具调用循环
- 支持思考模式 (Thinking Mode)
- 实现自动压缩 (Auto-compact) 机制
3. 命令系统 (Command System)
命令系统支持多种命令类型:
prompt- 展开为提示文本发送给模型local- 本地执行的命令local-jsx- 本地执行并渲染 Ink UI
4. 上下文管理 (Context Management)
上下文系统收集:
- Git 状态信息
- CLAUDE.md 文件内容
- 用户上下文
- 系统上下文
5. 成本追踪 (Cost Tracking)
成本追踪系统记录:
- 输入/输出 Token 数量
- 缓存读写 Token
- Web 搜索请求次数
- API 调用时长
目录结构
claude-code-源码/
├── src/
│ ├── main.tsx # CLI 入口
│ ├── QueryEngine.ts # 查询引擎
│ ├── Tool.ts # 工具基类
│ ├── commands.ts # 命令注册
│ ├── context.ts # 上下文收集
│ ├── cost-tracker.ts # 成本追踪
│ ├── query.ts # 查询管道
│ ├── tools/ # 工具实现
│ │ ├── BashTool/
│ │ ├── FileReadTool/
│ │ ├── FileEditTool/
│ │ ├── AgentTool/
│ │ └── ...(其他工具)
│ └── ...(其他模块)
└── package.json
扩展阅读
- 深入理解工具系统请阅读
03-工具系统.md - 深入理解核心模块请阅读
02-核心模块详解.md - 架构概览请阅读
01-架构总览.md