架构概览
1,902 个文件,512K 行 TypeScript,一个 AI 编程助手的完整解剖
~5 分钟阅读
项目规模 #
Claude Code 有多大?
想象一本 1,000 页的技术书,每页 500 行代码 — 这就是 Claude Code 的体量。它用 TypeScript 编写,运行在 Bun 上(比 Node.js 更快的 JavaScript 运行时),用 React 画界面 — 不过不是画在浏览器里,而是画在你的终端里。
0
源文件
0
代码行数
0
.ts 文件
0
.tsx 文件
模块全景 #
每个气泡的面积代表代码量,颜色代表所属层级
技术栈 #
Claude Code 用了什么技术?
Bun
JavaScript/TypeScript 运行时,比 Node.js 快 3-5x
TypeScript
类型安全的 JavaScript,所有代码都有严格类型
React + Ink
React 渲染到终端而非浏览器,组件化 TUI
Yoga
Facebook 的 Flexbox 布局引擎,用于终端布局
Zod
运行时类型验证,用于工具输入和配置校验
tree-sitter
Bash 命令的 AST 解析,用于安全分析
目录结构 #
点击文件夹展开查看
设计亮点 #
Claude Code 最值得学习的工程实践
Async Generator 驱动一切
从 API 流式响应到工具执行,所有数据流都用 async generator 实现。内存占用平稳,UI 实时更新,取消操作天然支持。
读并行、写串行的工具调度
读操作(Glob、Grep、Read)可以安全并行,写操作(Edit、Write、Bash)必须串行。这个简单的分区策略大幅提升了速度,同时避免竞态条件。
三层纵深防御的权限系统
ML 分类器处理 80% 的常见情况,规则引擎覆盖用户自定义策略,最后才弹出确认对话框。速度和安全的完美平衡。
特性门控的渐进发布
通过 feature('FLAG_NAME') 函数控制功能开关,支持按用户类型、环境、百分比灰度发布。Bun 打包时未使用的代码会被消除。
← → 键盘切换页面