Claude Code 是 Anthropic 官方推出的终端 AI 编程助手,通过自然语言命令帮助开发者执行代码编辑、文件操作、Git 工作流、代码审查等任务。2026 年 3 月 31 日,由于 npm 包发布时的打包错误,完整源码通过 sourcemap 文件泄露。
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
}
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 # 仓库说明
| 类别 | 技术 | 说明 |
|---|---|---|
| 运行时 | 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
核心 LLM API 调用引擎,负责与 Anthropic API 通信。
定义所有工具的基础类型和接口。
管理所有 Slash 命令的注册和执行。
/commit, /diff, /review/config, /mcp, /memory/doctor, /cost, /context/vim, /tasks, /skills/login, /logout应用入口,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
| 工具 | 描述 | 文件数 |
|---|---|---|
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 |
Sub-Agent 系统,支持多 Agent 并行协作。
generalPurposeAgent - 通用 AgentplanAgent - 计划 AgentexploreAgent - 探索 AgentverificationAgent - 验证 AgentclaudeCodeGuideAgent - 使用指南 AgentrunAgent.ts - Agent 执行核心forkSubagent.ts - Sub-Agent 分叉agentMemory.ts - Agent 记忆agentColorManager.ts - Agent 颜色管理(终端显示)resumeAgent.ts - Agent 恢复| 命令 | 描述 |
|---|---|
/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 |
移动应用移交 |
src/components/
├── agents/ # Agent 相关组件
├── messages/ # 消息组件
├── diff/ # Diff 视图
├── permissions/ # 权限对话框
├── settings/ # 设置面板
├── memory/ # 记忆管理
├── mcp/ # MCP 配置
├── skills/ # 技能展示
├── tasks/ # 任务列表
├── teams/ # 团队管理
├── sandbox/ # Sandbox 状态
├── PromptInput/ # 输入框
├── HelpV2/ # 帮助系统
├── design-system/ # 设计系统基础组件
└── ui/ # 通用 UI 组件
基于 Ink (React for CLI) 构建终端 UI,支持:
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/ # 工具使用摘要
src/bridge/
├── bridgeMain.ts # 桥接主循环
├── bridgeMessaging.ts # 消息协议
├── bridgePermissionCallbacks.ts # 权限回调
├── replBridge.ts # REPL 会话桥接
├── jwtUtils.ts # JWT 认证
└── sessionRunner.ts # 会话执行管理
支持 VS Code 和 JetBrains IDE 的双向通信,实现 IDE 内嵌 Claude Code 体验。
每个工具调用都会检查权限,支持多种权限模式:
default - 默认模式,需要用户确认plan - 计划模式,批量确认bypassPermissions - 绕过权限(开发用)auto - 自动模式,基于规则自动批准rm -rf, dd 等命令会提示确认使用 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
| 特性 | 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) |
Claude Code 源码展示了构建生产级 AI Agent CLI 工具的最佳实践:
报告生成时间:2026-04-02 | Claude Code 泄露源码分析 | 基于 GitHub 镜像仓库
⚠️ 免责声明:本分析仅用于教育和研究目的。所有源码版权归 Anthropic 所有。