Files
2026-04-03 13:01:19 +08:00

5.1 KiB
Raw Permalink Blame History

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