# claude-code-source-analysis **Repository Path**: edwinlee1/claude-code-source-analysis ## Basic Information - **Project Name**: claude-code-source-analysis - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-11 - **Last Updated**: 2026-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Claude Code 源码深度分析 > 基于 2026-03-31 泄露的 Anthropic Claude Code CLI 完整 TypeScript 源码的逐模块架构解读 **作者**: [Wang Yanshu](https://catyans.github.io) --- ## 背景 2026 年 3 月 31 日,Anthropic 的 Claude Code CLI 源码通过 npm 包中未清理的 `.map` 文件泄露,由 [@Fried_rice](https://x.com/Fried_rice) 首先公开。Source Map 文件包含了从编译后代码到原始 TypeScript 源码的完整映射,使得完整源码得以还原。 本项目对还原后的源码进行深度分析,覆盖全部核心子系统。 ## 项目规模 | 指标 | 数值 | |---|---| | 文件数 | ~1,884 个 `.ts/.tsx` | | 代码行数 | 512,664 行 | | 运行时 | Bun | | 语言 | TypeScript (strict) | | UI 框架 | React + 自定义 Ink 渲染器 | | CLI 解析 | Commander.js | | Schema 验证 | Zod v4 | ## 目录 | # | 章节 | 说明 | |---|---|---| | 00 | [总览](00%20总览.md) | 项目背景、技术栈、目录结构、章节索引 | | 01 | [启动流程](01%20启动流程.md) | 多阶段启动流水线、91 个 CLI 选项、6 种执行模式 | | 02 | [查询引擎](02%20查询引擎.md) | Generator 状态机、7 级错误恢复、流式处理、Token 预算 | | 03 | [工具系统](03%20工具系统.md) | Tool 接口 30+ 方法、buildTool 工厂、并发分区策略 | | 04 | [BashTool 详解](04%20工具详解-BashTool.md) | 三层安全防护、23 项安全检查、权限规则匹配 | | 05 | [AgentTool 与多 Agent](05%20工具详解-AgentTool与多Agent.md) | Agent 生成、Coordinator 编排、团队管理、消息路由 | | 06 | [文件与搜索工具](06%20工具详解-文件与搜索工具.md) | FileRead/Write/Edit、Glob、Grep、WebFetch 等 9 个工具 | | 07 | [权限系统](07%20权限系统.md) | ResolveOnce 竞态防护、6 路并发竞争、7 种权限模式 | | 08 | [状态管理](08%20状态管理.md) | 150+ 字段 AppState、35 行纯函数 Store、6 个同步点 | | 09 | [服务层](09%20服务层.md) | 多 Provider API、MCP 协议、5 种上下文压缩策略 | | 10 | [IDE 集成 (Bridge)](10%20IDE集成-Bridge.md) | V1/V2 双传输路径、JWT 刷新调度、多会话工作窃取 | | 11 | [记忆系统](11%20记忆系统.md) | 文件记忆、4 种类型、Sonnet 语义召回、团队记忆 | | 12 | [Skill 与插件系统](12%20Skill与插件系统.md) | 懒提取、O_EXCL 安全写入、插件热加载 | | 13 | [UI 渲染层](13%20UI渲染层.md) | 自定义 React 终端渲染器、双缓冲、硬件滚动、虚拟滚动 | | 14 | [命令系统](14%20命令系统.md) | 103 个命令、3 种类型、并行加载、可用性过滤 | | 15 | [Feature Flags 与编译优化](15%20Feature%20Flags与编译优化.md) | 编译时死代码消除、运行时 GrowthBook、12 次配置迁移 | | 16 | [数据流与架构模式](16%20数据流与架构模式.md) | 12 个跨切面设计模式 | | 17 | [其他子系统](17%20其他子系统.md) | Vim 状态机、Buddy 彩蛋、语音、远程会话、Server 模式 | | 18 | [架构设计总结](18%20架构设计总结.md) | 7 大设计原则、性能优化、安全架构分层 | ## 核心架构一览 ``` ┌─────────────┐ │ main.tsx │ CLI 入口 └──────┬──────┘ │ ┌──────────────────┼──────────────────┐ │ │ │ ┌─────┴─────┐ ┌──────┴──────┐ ┌──────┴──────┐ │ REPL │ │ Bridge │ │ SDK/Print │ │ (React) │ │ (IDE集成) │ │ (非交互) │ └─────┬─────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ └──────────────────┼──────────────────┘ │ ┌────────────┴────────────┐ │ QueryEngine │ │ (AsyncGenerator 状态机) │ └────────────┬────────────┘ │ ┌──────────┬───────┴───────┬──────────┐ │ │ │ │ ┌─────┴────┐ ┌──┴───┐ ┌───────┴──┐ ┌────┴─────┐ │ 工具系统 │ │权限系统│ │ 服务层 │ │ 状态管理 │ │ (39个) │ │(分层) │ │(API/MCP) │ │(AppState)│ └──────────┘ └──────┘ └──────────┘ └──────────┘ ``` ## 亮点发现 - **自定义 React 终端渲染器**: 没有直接使用 Ink 库,而是实现了完整的 React reconciler + Yoga 布局 + 双缓冲 + 硬件滚动 - **23 项 Bash 安全检查**: 覆盖命令注入、Zsh 特有攻击、混淆检测、信息泄露等 - **7 级错误恢复**: 从流式降级到上下文压缩再到模型切换,层层递进 - **6 路权限竞争**: 用户对话框、Bridge CCR、Channel 中继、Hook 回调、Bash 分类器、Abort 信号同时竞争 - **Feature Flag 编译时消除**: 单一代码库通过 `bun:bundle` 编译出 External/Ant/Assistant/Bridge 多种变体 - **虚拟宠物系统**: 基于 userId hash 生成 18 种物种、5 种稀有度的伴侣精灵 ## License 本分析文档以学习和研究为目的。原始源码版权归 [Anthropic](https://www.anthropic.com) 所有。