Skip to main content

Claude Code 源码教学文档 — 项目总览与快速导航

项目背景

Claude Code 是 Anthropic 开发的 CLI 工具,允许用户从终端与 Claude 交互,执行软件工程任务:编辑文件、运行命令、搜索代码库、协调工作流。

本仓库是 2026 年 3 月 31 日通过 npm 发布包中的 source map 文件公开暴露的源码快照,仅用于教育和安全研究目的。

技术栈

类别技术
运行时Bun
语言TypeScript (strict)
终端 UIReact + Ink (自定义 fork)
CLI 解析Commander.js (extra-typings)
Schema 验证Zod v4
代码搜索ripgrep
协议MCP SDK, LSP
APIAnthropic SDK
遥测OpenTelemetry + gRPC
特性开关GrowthBook + bun:bundle 编译期消除
认证OAuth 2.0, JWT, macOS Keychain

代码规模

  • ~1,900 个源文件,512,000+ 行代码
  • src/ 单包结构,无 package.json(此快照仅包含源码)
  • 301 个目录

快速导航

我想了解...章节核心文件
整体架构长什么样01-architecturesrc/ 目录结构
程序怎么启动的02-startup-flowentrypoints/cli.tsx, main.tsx
Agent 循环怎么运行的03-core-loopquery.ts, QueryEngine.ts
工具怎么定义和执行的04-tool-systemTool.ts, tools.ts, services/tools/
权限系统怎么工作05-permission-securityutils/permissions/, types/permissions.ts
System Prompt 怎么组装06-context-promptconstants/prompts.ts, context.ts
记忆系统怎么设计07-memory-systemmemdir/, services/SessionMemory/
终端 UI 怎么渲染08-terminal-uiink/, screens/REPL.tsx, components/
MCP 协议怎么集成09-mcp-integrationservices/mcp/, tools/MCPTool/
多 Agent 怎么协作10-multi-agenttools/AgentTool/, utils/swarm/
插件和技能系统11-plugin-skillplugins/, skills/, tools/SkillTool/
API 调用和流式处理12-api-streamingservices/api/claude.ts, services/api/client.ts
配置体系13-config-settingsutils/settings/
上下文压缩14-compact-context-mgmtservices/compact/
斜杠命令系统15-command-systemcommands.ts, commands/
设计模式总结16-design-patterns跨文件

推荐阅读路径

快速路线(约 2 小时)

适合想快速理解核心机制的读者:

00-overview → 01-architecture → 03-core-loop → 04-tool-system → 06-context-prompt

这条路线覆盖了 Agent 最核心的"大脑"——循环如何运转、工具如何执行、提示词如何组装。

完整路线(约 1-2 天)

适合想系统性深入学习的读者,按序阅读全部 17 篇文档:

00 → 01 → 02 → 03 → 04 → 05 → 06 → 07 → 08 → 09 → 10 → 11 → 12 → 13 → 14 → 15 → 16

按兴趣分支

  • 想理解 Agent 核心:03 → 04 → 05 → 06
  • 想理解扩展机制:09 → 10 → 11 → 15
  • 想理解工程实践:02 → 12 → 13 → 14 → 16
  • 想理解 UI 实现:08

源码目录速览

src/
├── main.tsx # 主入口(Commander CLI + Ink 渲染)
├── query.ts # 核心 Agent 循环
├── QueryEngine.ts # SDK/无头模式的查询引擎封装
├── Tool.ts # 工具类型定义与上下文
├── tools.ts # 工具注册表
├── commands.ts # 命令注册表
├── context.ts # 上下文收集(CLAUDE.md、git 等)
├── cost-tracker.ts # Token 成本追踪

├── entrypoints/ # 入口点(cli.tsx、init.ts、mcp.ts)
├── bootstrap/ # 全局启动状态
├── screens/ # 全屏 UI(REPL、Doctor)
├── query/ # 查询管道辅助(deps、config、stopHooks)

├── tools/ # ~40 个工具实现
├── commands/ # ~50 个斜杠命令
├── components/ # ~140 个 Ink UI 组件
├── hooks/ # React Hooks
├── ink/ # Ink 渲染引擎(自定义 fork)
├── services/ # 外部服务集成(API、MCP、OAuth 等)
├── utils/ # 工具函数(权限、设置、模型等)

├── plugins/ # 插件系统
├── skills/ # 技能系统
├── bridge/ # IDE 桥接
├── memdir/ # 持久化记忆目录
├── tasks/ # 任务管理(子 Agent、Teammate)
├── state/ # 状态管理
├── keybindings/ # 快捷键配置
├── vim/ # Vim 模式
├── voice/ # 语音输入
├── remote/ # 远程会话
└── ...

动手实验

除了文档阅读,我们还提供了 15 个 Python 实验,让你通过编码复现 Claude Code 的核心设计模式。

实验支持三种运行模式:--mock(离线)、--provider anthropic--provider openai

实验目录

实验对应章节学习路径
exp_03 核心 Agent 循环03 - Core Loop核心
exp_04 工具系统04 - Tool System核心
exp_05 权限引擎05 - Permissions核心
exp_06 提示词组装06 - Context/Prompt核心
exp_07 记忆系统07 - Memory核心
exp_09 MCP 客户端09 - MCP核心
exp_10 多 Agent 协作10 - Multi-Agent核心
exp_12 流式 API12 - API/Streaming核心
exp_14 上下文压缩14 - Compaction核心
exp_02 启动流程02 - Startup Flow扩展
exp_08 终端 UI08 - Terminal UI扩展
exp_11 插件技能11 - Plugin/Skill扩展
exp_13 配置系统13 - Config扩展
exp_15 命令系统15 - Commands扩展
exp_16 设计模式16 - Patterns扩展

详细指南请参阅 实验指南

下一步

前往 01-architecture.md 了解整体架构设计。