🔍 Claude Code 泄露源码架构分析报告

报告生成时间:2026-04-02

泄露时间:2026-03-31(通过 npm sourcemap 文件)

代码规模:~512,000 行 TypeScript / ~1,903 文件

GitHub 仓库: tanbiralam/claude-code

发现者: Chaofan Shou (@Fried_rice)

📅 泄露事件时间线

512K+ 代码行数
1,903 文件总数
1,332 TypeScript 文件
~40 Agent 工具
~50 Slash 命令
140+ UI 组件

📑 目录

1. 执行摘要

Claude Code 是 Anthropic 官方推出的终端 AI 编程助手,通过自然语言命令帮助开发者执行代码编辑、文件操作、Git 工作流、代码审查等任务。2026 年 3 月 31 日,由于 npm 包发布时的打包错误,完整源码通过 sourcemap 文件泄露。

核心定位:Claude Code 是一个基于 Bun 运行时、React + Ink 终端 UI 的 Agentic Coding 工具,支持多 Agent 协作、MCP 协议、LSP 集成、技能系统等高级功能。

关键特性

2. 泄露细节

2.1 泄露原因

Claude Code 的 npm 包在构建时包含了 .map sourcemap 文件,该文件引用了 Anthropic R2 存储桶中的完整未混淆 TypeScript 源码。任何下载 npm 包的用户都可以通过 sourcemap 恢复完整源码。

# 泄露的 sourcemap 引用
{
  "version": 3,
  "file": "main.js",
  "sources": [
    "webpack://claude-code/./src/main.tsx",
    "webpack://claude-code/./src/QueryEngine.ts",
    "webpack://claude-code/./src/Tool.ts",
    ...
  ],
  "sourceRoot": "https://anthropic-r2.storage.com/claude-code-src/",
  "sourcesContent": null
}

2.2 仓库结构

claude-code-leaked/
├── src/                          # 完整源码目录
│   ├── main.tsx                  # 入口文件
│   ├── commands.ts               # 命令注册
│   ├── tools.ts                  # 工具注册
│   ├── Tool.ts                   # 工具类型定义 (~29K 行)
│   ├── QueryEngine.ts            # LLM 查询引擎 (~46K 行)
│   ├── context.ts                # 上下文收集
│   ├── cost-tracker.ts           # Token 成本追踪
│   │
│   ├── commands/                 # Slash 命令实现 (~110 文件)
│   ├── tools/                    # Agent 工具实现 (~149 文件)
│   ├── components/               # Ink UI 组件 (~140 组件)
│   ├── hooks/                    # React Hooks (~76 文件)
│   ├── services/                 # 服务层 (~127 文件)
│   ├── screens/                  # 全屏 UI
│   ├── types/                    # TypeScript 类型
│   ├── utils/                    # 工具函数 (~549 文件)
│   │
│   ├── bridge/                   # IDE 桥接 (~31 文件)
│   ├── coordinator/              # 多 Agent 协调器
│   ├── plugins/                  # 插件系统
│   ├── skills/                   # 技能系统 (~20 文件)
│   ├── keybindings/              # 键位配置
│   ├── vim/                      # Vim 模式
│   ├── voice/                    # 语音输入
│   ├── remote/                   # 远程会话
│   ├── server/                   # 服务器模式
│   ├── memdir/                   # 记忆目录
│   ├── tasks/                    # 任务管理
│   ├── state/                    # 状态管理
│   └── ...
└── README.md                     # 仓库说明

3. 技术栈

类别 技术 说明
运行时 Bun 高性能 JS 运行时,替代 Node.js
语言 TypeScript (strict) 严格模式 TypeScript
终端 UI React + Ink React for CLI
CLI 解析 Commander.js 命令行参数解析
Schema 验证 Zod v4 类型安全的 Schema 验证
代码搜索 ripgrep 通过 GrepTool 集成
协议 MCP SDK, LSP Model Context Protocol, Language Server Protocol
API Anthropic SDK Claude API 客户端
遥测 OpenTelemetry + gRPC 性能追踪和日志
特性标志 GrowthBook A/B 测试和特性开关
认证 OAuth 2.0, JWT, macOS Keychain 多种认证方式

技术栈标签

TypeScript Bun React Ink

4. 系统架构

┌─────────────────────────────────────────────────────────────────────────┐ │ User Terminal / IDE │ └────────────────────────────────────┬────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ Claude Code CLI (Bun Runtime) │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ main.tsx (Entrypoint) - Commander.js + Ink Renderer │ │ │ │ - Parallel Prefetch: MDM settings, Keychain, API preconnect │ │ │ │ - Lazy Loading: OpenTelemetry (~400KB), gRPC (~700KB) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────┼───────────────────────────┐ │ │ │ │ │ ▼ ▼ ▼ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ Command Layer │ │ QueryEngine │ │ Tool Layer │ │ │ (commands.ts) │ │ (~46K lines) │ │ (tools.ts) │ │ │ │ │ │ │ │ │ │ - /commit │ │ - LLM API │ │ - BashTool │ │ │ - /review │ │ - Streaming │ │ - FileRead │ │ │ - /mcp │ │ - Tool Calls │ │ - FileWrite │ │ │ - /memory │ │ - Thinking │ │ - AgentTool │ │ │ - /tasks │ │ - Retry Logic │ │ - MCPTool │ │ │ - /vim │ │ - Token Count │ │ - LSPTool │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ┌───────────────────────────┼───────────────────────────┐ │ │ │ │ │ ▼ ▼ ▼ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ Bridge Layer │ │ Services │ │ Components │ │ │ (IDE 桥接) │ │ (服务层) │ │ (Ink UI) │ │ │ │ │ │ │ │ │ │ - VS Code │ │ - API Client │ │ - Messages │ │ │ - JetBrains │ │ - MCP Server │ │ - Diff View │ │ │ - JWT Auth │ │ - OAuth │ │ - Settings │ │ │ - Session Mgmt │ │ - LSP Manager │ │ - Agents │ │ │ │ │ - Analytics │ │ - Memory │ │ │ │ │ - Compact │ │ - Skills │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ┌───────────────────────────┼───────────────────────────┐ │ │ │ │ │ ▼ ▼ ▼ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ Coordinator │ │ memdir/ │ │ Plugins │ │ │ (多 Agent) │ │ (持久记忆) │ │ (插件系统) │ │ │ │ │ │ │ │ │ │ - Sub-Agent │ │ - User Memory │ │ - Loader │ │ │ - Team Mgmt │ │ - Team Sync │ │ - Registry │ │ │ - Orchestration│ │ - Extraction │ │ - Hooks │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ External Services │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Anthropic │ │ MCP │ │ LSP │ │ GitHub │ │ │ │ API │ │ Servers │ │ Servers │ │ API │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────────────────┘

5. 核心模块详解

5.1 QueryEngine.ts (~46K 行)

核心 LLM API 调用引擎,负责与 Anthropic API 通信。

关键功能

5.2 Tool.ts (~29K 行)

定义所有工具的基础类型和接口。

核心定义

5.3 commands.ts (~25K 行)

管理所有 Slash 命令的注册和执行。

命令分类

5.4 main.tsx

应用入口,Commander.js CLI 解析器 + React/Ink 渲染器初始化。

启动优化

// 并行预取(启动前执行)
startMdmRawRead()      // MDM 设置读取
startKeychainPrefetch() // Keychain 凭证预取
apiPreconnect()         // API 预连接

// 懒加载(按需加载)
const otel = await import('@opentelemetry/sdk-node')  // ~400KB
const grpc = await import('@grpc/grpc-js')            // ~700KB

6. 工具系统

6.1 核心工具列表

工具 描述 文件数
BashTool Shell 命令执行(含安全校验、破坏性命令警告) ~15
FileReadTool 文件读取(支持图片、PDF、Jupyter Notebook) ~8
FileWriteTool 文件创建/覆盖 ~5
FileEditTool 部分文件修改(字符串替换、sed 编辑) ~10
GlobTool 文件模式匹配搜索 ~3
GrepTool ripgrep 内容搜索 ~5
WebFetchTool URL 内容抓取 ~4
WebSearchTool 网络搜索 ~3
AgentTool Sub-Agent 生成(含 6+ 内置 Agent) ~15
SkillTool 技能执行 ~20
MCPTool MCP Server 工具调用 ~8
LSPTool Language Server Protocol 集成 ~6
NotebookEditTool Jupyter Notebook 编辑 ~4
TaskCreateTool / TaskUpdateTool 任务创建和管理 ~6
SendMessageTool Agent 间消息传递 ~3
TeamCreateTool / TeamDeleteTool 团队 Agent 管理 ~5
EnterPlanModeTool / ExitPlanModeTool 计划模式切换 ~4
EnterWorktreeTool / ExitWorktreeTool Git Worktree 隔离 ~4
ToolSearchTool 延迟工具发现 ~3
CronCreateTool 定时触发器创建 ~3
RemoteTriggerTool 远程触发 ~3
SleepTool Proactive 模式等待 ~2
SyntheticOutputTool 结构化输出生成 ~3
ConfigTool 配置管理 ~5
AskUserQuestionTool 用户澄清提问 ~3

6.2 AgentTool 详解

Sub-Agent 系统,支持多 Agent 并行协作。

内置 Agent

关键文件

7. 命令系统

7.1 Slash 命令列表

命令 描述
/commit 创建 Git 提交
/review 代码审查
/compact 上下文压缩
/mcp MCP Server 管理
/config 设置管理
/doctor 环境诊断
/login / /logout 认证
/memory 持久记忆管理
/skills 技能管理
/tasks 任务管理
/vim Vim 模式切换
/diff 查看变更
/cost 查看使用成本
/theme 切换主题
/context 上下文可视化
/pr_comments 查看 PR 评论
/resume 恢复上次会话
/share 分享会话
/desktop 桌面应用移交
/mobile 移动应用移交

8. UI 系统

8.1 组件目录结构

src/components/
├── agents/                    # Agent 相关组件
├── messages/                  # 消息组件
├── diff/                      # Diff 视图
├── permissions/               # 权限对话框
├── settings/                  # 设置面板
├── memory/                    # 记忆管理
├── mcp/                       # MCP 配置
├── skills/                    # 技能展示
├── tasks/                     # 任务列表
├── teams/                     # 团队管理
├── sandbox/                   # Sandbox 状态
├── PromptInput/               # 输入框
├── HelpV2/                    # 帮助系统
├── design-system/             # 设计系统基础组件
└── ui/                        # 通用 UI 组件

8.2 Ink 渲染

基于 Ink (React for CLI) 构建终端 UI,支持:

9. 服务层

9.1 服务目录

src/services/
├── api/                       # Anthropic API 客户端
├── mcp/                       # MCP Server 连接
├── oauth/                     # OAuth 2.0 认证
├── lsp/                       # LSP 管理器
├── analytics/                 # GrowthBook 分析
├── plugins/                   # 插件加载器
├── compact/                   # 上下文压缩
├── policyLimits/              # 组织策略限制
├── extractMemories/           # 自动记忆提取
├── teamMemorySync/            # 团队记忆同步
├── tokenEstimation.ts         # Token 估算
├── SessionMemory/             # 会话记忆
├── settingsSync/              # 设置同步
├── MagicDocs/                 # 文档生成
├── autoDream/                 # 自动梦境(Easter Egg)
├── PromptSuggestion/          # 提示建议
├── tips/                      # 使用技巧
└── toolUseSummary/            # 工具使用摘要

9.2 Bridge 系统(IDE 桥接)

src/bridge/
├── bridgeMain.ts              # 桥接主循环
├── bridgeMessaging.ts         # 消息协议
├── bridgePermissionCallbacks.ts # 权限回调
├── replBridge.ts              # REPL 会话桥接
├── jwtUtils.ts                # JWT 认证
└── sessionRunner.ts           # 会话执行管理

支持 VS Code 和 JetBrains IDE 的双向通信,实现 IDE 内嵌 Claude Code 体验。

10. 安全与权限

10.1 权限系统

每个工具调用都会检查权限,支持多种权限模式:

10.2 Bash 安全

10.3 特性标志

使用 Bun 的 bun:bundle 特性标志实现死代码消除:

import { feature } from 'bun:bundle'

const voiceCommand = feature('VOICE_MODE')
  ? require('./commands/voice/index.js').default
  : null

// 未启用的代码在构建时完全移除

已知特性标志:PROACTIVE, KAIROS, BRIDGE_MODE, DAEMON, VOICE_MODE, AGENT_TRIGGERS, MONITOR_TOOL

11. 与 DeerFlow 对比

特性 Claude Code DeerFlow 2.0
运行时 Bun Python (LangGraph)
UI Ink (React for CLI) Next.js + React (Web)
Agent 架构 AgentTool + Coordinator Lead Agent + Sub-Agents
工具系统 40+ 内置工具 配置工具 + MCP + 内置
技能系统 Skills (~20 文件) Skills (Markdown 定义)
记忆系统 memdir/ (持久化) 长期记忆 + 短期记忆
IDE 集成 Bridge (VS Code/JetBrains)
IM 渠道 Telegram/Slack/飞书
Sandbox 可选沙箱 Local/Docker/K8s
代码规模 ~512K 行 ~100K 行(估计)
开源状态 泄露(非官方开源) 官方开源 (MIT)

11.1 设计哲学对比

12. 总结

12.1 架构优势

12.2 技术亮点

12.3 泄露影响

⚠️ 法律风险: 此源码为 Anthropic 专有财产,泄露源于 npm 打包错误。本分析仅用于教育和研究目的,不构成使用或分发建议。

12.4 学习价值

Claude Code 源码展示了构建生产级 AI Agent CLI 工具的最佳实践:

总体评价: Claude Code 是一个设计精良、工程化完善的商业级 AI 编程助手。虽然因泄露事件引发关注,但其架构设计、性能优化、用户体验等方面都值得学习参考。与 DeerFlow 相比,两者定位不同:Claude Code 专注终端和 IDE 集成,DeerFlow 专注 Web 和 IM 渠道,各有优势。

报告生成时间:2026-04-02 | Claude Code 泄露源码分析 | 基于 GitHub 镜像仓库

⚠️ 免责声明:本分析仅用于教育和研究目的。所有源码版权归 Anthropic 所有。