Claude Code源码泄露与架构深度解析在你压力大的时候不妨去看看Anthropic的工作人员。2026年3月31日Claude Code 的完整 TypeScript 源码通过 npm 包中的 source map 文件意外泄露。本文将回顾这一事件分析 Claude Code 的整体架构设计并预告后续将对其核心模块进行逐篇深入讲解。 源码已上传至GitHub我已将提取的 Claude Code 源码上传至 GitHub供大家学习研究https://github.com/XiaoMaColtAI/claude-code-source事件回顾源码是如何泄露的2026年3月31日用户 Fried_rice 在 X原 Twitter上公开指出“Claude code source code has been leaked via a map file in their npm registry!”问题出在 Claude Code 的 npm 发布包中包含了完整的.map源映射文件而这些源映射文件引用了托管在 Anthropic R2 存储桶上的未混淆 TypeScript 源码。这使得任何人都可以下载完整的src/目录快照。泄露的代码规模指标数据文件数量~1,900 个代码行数512,000 行主要语言TypeScript运行时Bun这不是一个简单的 demo而是一个完整的、生产级别的 AI 开发者工具代码库。源码提取方法如果你想自己提取 Claude Code 源码可以按照以下步骤操作步骤 1下载 source map 文件首先从 npm registry 下载包含完整源码的 source map 文件# 使用 curl 下载curl-Ohttps://unpkg.com/anthropic-ai/claude-code2.1.88/cli.js.map# 或者使用 wgetwgethttps://unpkg.com/anthropic-ai/claude-code2.1.88/cli.js.map步骤 2准备提取脚本将以下代码保存为unpack.mjsimport{readFileSync,writeFileSync,mkdirSync}fromfs;import{dirname,join}frompath;constmapFilejoin(import.meta.dirname,cli.js.map);constoutDirjoin(import.meta.dirname,unpacked);console.log(正在读取 source map57MB请稍等 10-20 秒...);constmapJSON.parse(readFileSync(mapFile,utf-8));constsourcesmap.sources||[];constcontentsmap.sourcesContent||[];console.log(共发现${sources.length}个源文件正在提取...);letwritten0;letskipped0;for(leti0;isources.length;i){constsrcsources[i];constcontentcontents[i];if(contentnull){skipped;continue;}constoutPathjoin(outDir,src.replace(/^\.\.\//g,));mkdirSync(dirname(outPath),{recursive:true});writeFileSync(outPath,content);written;}console.log(✅ 提取完成共写入${written}个文件到${outDir}目录);if(skipped0)console.log(跳过了${skipped}个空文件);步骤 3运行提取脚本nodeunpack.mjs脚本会自动读取cli.js.map约 57MB提取所有嵌入的 TypeScript 源码将文件写入unpacked/目录注意事项⚠️请确保仅用于学习和研究目的遵守相关法律法规不要用于商业用途Claude Code 架构概览Claude Code 是 Anthropic 官方开发的 CLI 工具让用户可以在终端中与 Claude AI 交互执行软件工程任务。让我们先来看看它的整体架构。系统架构图基础设施层服务层核心引擎层用户交互层CLI入口 main.tsx命令系统 commands/REPL模式 replLauncher交互式UI screens/QueryEngine查询引擎工具系统 tools/技能系统 skills/任务管理 tasks/Claude APIMCP服务LSP客户端OAuth认证终端渲染 ink/状态管理 state/桥接系统 bridge/权限控制 hooks/核心技术栈类别技术选型运行时Bun语言TypeScript (strict)终端UIReact InkCLI解析Commander.jsschema验证Zod v4代码搜索ripgrep协议MCP SDK, LSPAPIAnthropic SDK遥测OpenTelemetry gRPC核心模块详解1. 入口与命令系统主入口 (main.tsx)这是整个应用的启动点采用了精心设计的并行预加载策略// 启动优化并行预读取startMdmRawRead()// 并行读取 MDM 设置startKeychainPrefetch()// 预取密钥链凭证initializeGrowthBook()// 初始化功能标志这种设计让启动时间减少了约 65ms对于 CLI 工具来说非常重要。命令系统 (commands/)Claude Code 提供了约 50 个内置斜杠命令主要分为类别命令示例认证/login,/logout配置/config,/theme,/keybindings开发/commit,/diff,/review,/branchAI功能/agents,/skills,/tasks,/memory高级/plan,/mcp,/resume2. 查询引擎 (QueryEngine.ts)这是整个系统的核心大脑约 46,000 行代码负责消息历史管理上下文构建系统提示、文件状态、记忆工具调用协调流式响应处理Token 成本追踪核心流程工具系统Claude APIQueryEngine终端UI用户工具系统Claude APIQueryEngine终端UI用户alt[需要工具调用]输入消息处理输入构建上下文发送请求流式响应tool_use执行工具工具结果继续对话流式输出显示结果3. 工具系统 (Tool.ts, tools/)工具是 AI 与外部世界交互的接口。Claude Code 内置了约 40 个工具工具类别示例文件操作FileReadTool,FileWriteTool,FileEditTool,GlobTool,GrepTool执行BashTool,AgentTool网络WebSearchTool,WebFetchTool任务管理TaskCreateTool,TaskUpdateTool,TodoWriteTool开发LSPTool,SkillTool,MCPTool其他EnterPlanModeTool,CronCreateTool,NotebookEditTool每个工具都定义了清晰的输入 schema、权限模型和执行逻辑。4. Prompt 系统 (constants/prompts.ts)Claude Code 的 prompt 系统是其核心竞争力之一通过精心设计的模块化提示词工程确保 AI 能够稳定、高效地完成任务。系统架构Prompt 系统采用分段式模块化设计主要包含以下部分模块作用Intro Section定义 AI 角色定位和基本行为准则System Section系统级规则工具执行、权限模式等Doing Tasks Section任务执行指南代码风格、协作方式等Actions Section谨慎操作指南不可逆操作需要确认Using Tools Section工具使用规范优先使用专用工具而非 BashTone Style语气风格要求简洁、引用文件路径等Output Efficiency输出效率要求直截了当、避免冗余Environment环境信息CWD、Git 状态、模型信息等Memory持久化记忆从 memdir 加载MCP InstructionsMCP 服务器指令动态连接的服务器缓存优化策略为了优化性能和降低成本Claude Code 采用了静态/动态内容分离的缓存策略// 静态内容边界标记exportconstSYSTEM_PROMPT_DYNAMIC_BOUNDARY__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__静态内容可缓存角色定义、系统规则、工具指南等动态内容不可缓存环境信息、记忆、MCP 服务器状态等这种设计使得大部分提示词可以跨会话缓存显著减少 token 使用量。核心提示词片段让我们看看几个关键的提示词部分Intro Section角色定义You are an interactive agent that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.Doing Tasks Section任务执行不要添加超出要求的功能不要为一次性操作创建抽象只在逻辑不明显时添加注释在报告任务完成前验证它确实有效Actions Section谨慎操作仔细考虑可逆性和影响范围破坏性操作需要用户确认删除文件、强制推送等遇到障碍时找出根本原因而不是绕过安全检查Output Efficiency输出效率直截了当先尝试最简单的方法保持回复简短直奔主题跳过填充词和不必要的过渡功能标志控制Prompt 系统还支持通过功能标志动态调整功能标志作用PROACTIVE/KAIROS启用自主工作模式CACHED_MICROCOMPACT启用工具结果自动清理EXPERIMENTAL_SKILL_SEARCH启用技能搜索TOKEN_BUDGET启用 Token 预算控制VERIFICATION_AGENT启用验证代理对抗性验证特别有意思的设计Anthropic 内部专用提示更严格的代码风格要求默认不写注释更主动的协作方式指出用户的误解更诚实的结果报告不造假测试结果验证代理Verification Agent非平凡实现完成后需要独立的对抗性验证只有验证代理可以分配 PASS/FAIL 判决自己的检查不能替代验证代理Undercover 模式从系统提示中移除所有模型名称/ID防止内部信息泄露到公开提交中这个 prompt 系统展示了企业级 AI 应用在提示词工程上的深度思考——不仅关注功能实现更注重稳定性、安全性和成本控制。5. 桥接系统 (bridge/)这是 Claude Code 最有趣的部分之一它实现了一个双向通信层连接 IDE 扩展VS Code、JetBrains与 CLI。核心组件包括bridgeMain.ts- 桥接主循环bridgeMessaging.ts- 消息协议replBridge.ts- REPL 会话桥接jwtUtils.ts- JWT 认证sessionRunner.ts- 会话执行管理这使得用户可以在 IDE 中使用 Claude Code同时保持 CLI 的完整功能。5. 权限系统每次工具调用都会经过权限检查typePermissionMode|ask// 每次询问用户|auto// 自动批准受限|plan// 计划模式|bypass// 绕过权限危险这种设计既保证了安全性又提供了足够的灵活性。6. 技能系统 (skills/)技能是可复用的工作流可以理解为高级命令。内置技能包括batchSkill- 批量处理debugSkill- 调试辅助loopSkill- 循环执行stuckSkill- 处理卡顿verifySkill- 结果验证用户还可以添加自定义技能。设计亮点1. 并行预加载// main.tsx - 在其他 import 之前作为副作用触发startMdmRawRead()startKeychainPrefetch()通过并行预读取 MDM 设置和密钥链显著优化了启动时间。2. 懒加载重型模块OpenTelemetry、gRPC、analytics通过动态import()延迟加载直到真正需要时才加载。3. 功能标志使用 Bun 的bun:bundle功能标志进行死代码消除import{feature}frombun:bundle// 未激活的代码在构建时完全被移除constvoiceCommandfeature(VOICE_MODE)?require(./commands/voice/index.js).default:null主要的功能标志包括PROACTIVE,KAIROS,BRIDGE_MODE,DAEMON,VOICE_MODE,AGENT_TRIGGERS,MONITOR_TOOL目录结构总览src/ ├── main.tsx # 入口点 ├── commands.ts # 命令注册表 ├── tools.ts # 工具注册表 ├── Tool.ts # 工具类型定义 ├── QueryEngine.ts # LLM 查询引擎~46K行 ├── context.ts # 系统/用户上下文收集 ├── cost-tracker.ts # Token 成本追踪 │ ├── commands/ # 斜杠命令实现~50个 ├── tools/ # Agent 工具实现~40个 ├── components/ # Ink UI 组件~140个 ├── hooks/ # React 钩子 ├── services/ # 外部服务集成 ├── screens/ # 全屏 UIDoctor、REPL、Resume ├── types/ # TypeScript 类型定义 ├── utils/ # 工具函数 │ ├── bridge/ # IDE 和远程控制桥接 ├── coordinator/ # 多代理协调器 ├── plugins/ # 插件系统 ├── skills/ # 技能系统 ├── keybindings/ # 键绑定配置 ├── vim/ # Vim 模式 ├── voice/ # 语音输入 ├── remote/ # 远程会话 ├── server/ # 服务器模式 ├── memdir/ # 持久化记忆目录 ├── tasks/ # 任务管理 ├── state/ # 状态管理 ├── migrations/ # 配置迁移 ├── schemas/ # 配置模式Zod └── ...后续预告模块深度解析系列本文只是一个开始。在接下来的文章中我将逐个深入讲解 Claude Code 的核心模块计划中的主题序号主题预计内容1QueryEngine 深度解析消息管理、上下文构建、工具调用循环2Prompt 系统设计模块化架构、缓存策略、提示词工程实践3工具系统设计与实现Tool 接口、权限模型、内置工具源码分析4命令系统架构命令注册、参数解析、执行流程5终端 UI 框架Ink组件系统、布局引擎、事件处理6桥接系统详解WebSocket 通信、会话管理、JWT 认证7技能系统设计技能定义、钩子机制、执行流程8状态管理架构AppState、选择器、持久化9MCP 协议集成Model Context Protocol 实现10安全架构分析权限控制、SSRF 防护、输入验证11性能优化策略启动优化、缓存策略、流式处理每篇文章都将包含源码分析架构图解关键代码片段设计思路解读实际使用示例GitHub 仓库说明为了方便大家学习研究我已将提取的 Claude Code 源码上传至 GitHub仓库地址https://github.com/XiaoMaColtAI/claude-code-source仓库内容✅ 完整的src/目录约 1,900 个文件✅ 完整的工具实现40 工具✅ TypeScript 类型定义✅ 配置文件和 Schema使用方式# 克隆仓库gitclone https://github.com/XiaoMaColtAI/claude-code-source.git# 浏览源码cdclaude-code-sourcels-la学习建议推荐从以下几个入口开始探索src/QueryEngine.ts- 核心查询引擎src/Tool.ts- 工具基类定义src/tools/- 各种工具实现目录src/services/mcp/- MCP 协议实现写在最后Claude Code 源码泄露是一个有趣的事件。从安全角度看这是一个发布流程的失误但从学习角度看这为我们提供了一个学习生产级 AI 开发者工具架构的绝佳机会。这个代码库展示了许多优秀的软件工程实践清晰的模块化设计精心考虑的性能优化完善的安全模型灵活的扩展机制希望这个系列文章能帮助你更好地理解 Claude Code 的内部工作原理并从中汲取灵感用于自己的项目。下一篇[QueryEngine 深度解析] — 敬请期待