# 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` - 创建和管理子 Agent - `TeamCreateTool` - 创建 Agent 团队 - `TeamDeleteTool` - 删除团队 - `SendMessageTool` - 向团队成员发送消息 **任务管理工具** - `TaskCreateTool` - 创建任务 - `TaskGetTool` - 获取任务详情 - `TaskUpdateTool` - 更新任务状态 - `TaskListTool` - 列出任务 - `TaskStopTool` - 停止任务 - `TaskOutputTool` - 获取任务输出 - `TodoWriteTool` - 待办事项管理 **模式与工作流工具** - `EnterPlanModeTool` - 进入计划模式 - `ExitPlanModeTool` - 退出计划模式 - `EnterWorktreeTool` - 进入 Git Worktree - `ExitWorktreeTool` - 退出 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`