Claude Code — 源码泄露 (2026-03-31)

2026年3月31日,Anthropic 的 Claude Code CLI 完整源代码通过 npm 仓库中暴露的 .map 文件泄露。


泄露经过

Chaofan Shou (@Fried_rice) 发现了这次泄露并公开发布:

"Claude code 源代码已通过 npm 仓库中的 map 文件泄露!"

--- @Fried_rice, 2026年3月31日

发布的 npm 包中的 source map 文件包含了对完整的、未混淆的 TypeScript 源码的引用,该源码可从 Anthropic 的 R2 存储桶下载为 zip 压缩包。


概述

Claude Code 是 Anthropic 的官方 CLI 工具,让你可以直接从终端与 Claude 交互,执行软件工程任务------编辑文件、运行命令、搜索代码库、管理 git 工作流等。

本仓库包含泄露的 src/ 目录。

  • 泄露日期:2026-03-31
  • 语言:TypeScript
  • 运行时:Bun
  • 终端 UI :React + Ink(CLI 版 React)
  • 规模:约 1,900 个文件,512,000+ 行代码

目录结构

复制代码
src/
├── main.tsx                 # 入口(基于 Commander.js 的 CLI 解析器)
├── commands.ts              # 命令注册
├── tools.ts                 # 工具注册
├── Tool.ts                  # 工具类型定义
├── QueryEngine.ts           # LLM 查询引擎(核心 Anthropic API 调用)
├── context.ts               # 系统/用户上下文收集
├── cost-tracker.ts          # Token 成本追踪
│
├── commands/                # 斜杠命令实现(约 50 个)
├── tools/                   # Agent 工具实现(约 40 个)
├── components/              # Ink UI 组件(约 140 个)
├── hooks/                   # React hooks
├── services/                # 外部服务集成
├── screens/                 # 全屏 UI(Doctor、REPL、Resume)
├── types/                   # TypeScript 类型定义
├── utils/                   # 工具函数
│
├── bridge/                  # IDE 集成桥接(VS Code、JetBrains)
├── coordinator/             # 多 Agent 协调器
├── plugins/                 # 插件系统
├── skills/                  # 技能系统
├── keybindings/             # 快捷键配置
├── vim/                     # Vim 模式
├── voice/                   # 语音输入
├── remote/                  # 远程会话
├── server/                  # 服务器模式
├── memdir/                  # 内存目录(持久化内存)
├── tasks/                   # 任务管理
├── state/                   # 状态管理
├── migrations/              # 配置迁移
├── schemas/                 # 配置模式(Zod)
├── entrypoints/             # 初始化逻辑
├── ink/                     # Ink 渲染器封装
├── buddy/                   # 伙伴精灵(彩蛋)
├── native-ts/               # 原生 TypeScript 工具
├── outputStyles/            # 输出样式
├── query/                   # 查询管道
└── upstreamproxy/           # 代理配置

核心架构

1. 工具系统 (src/tools/)

Claude Code 可以调用的每个工具都实现为一个独立模块。每个工具定义其输入模式、权限模型和执行逻辑。

工具 描述
BashTool Shell 命令执行
FileReadTool 文件读取(图片、PDF、笔记本)
FileWriteTool 文件创建/覆盖
FileEditTool 部分文件修改(字符串替换)
GlobTool 文件模式匹配搜索
GrepTool 基于 ripgrep 的内容搜索
WebFetchTool 获取 URL 内容
WebSearchTool 网页搜索
AgentTool 子 Agent 生成
SkillTool 技能执行
MCPTool MCP 服务器工具调用
LSPTool 语言服务器协议集成
NotebookEditTool Jupyter 笔记本编辑
TaskCreateTool / TaskUpdateTool 任务创建和管理
SendMessageTool Agent 间消息传递
TeamCreateTool / TeamDeleteTool 团队 Agent 管理
EnterPlanModeTool / ExitPlanModeTool 计划模式切换
EnterWorktreeTool / ExitWorktreeTool Git worktree 隔离
ToolSearchTool 延迟工具发现
CronCreateTool 定时触发器创建
RemoteTriggerTool 远程触发
SleepTool 主动模式等待
SyntheticOutputTool 结构化输出生成

2. 命令系统 (src/commands/)

用户使用的以 / 为前缀的斜杠命令。

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

3. 服务层 (src/services/)

服务 描述
api/ Anthropic API 客户端、文件 API、引导程序
mcp/ 模型上下文协议服务器连接和管理
oauth/ OAuth 2.0 认证流程
lsp/ 语言服务器协议管理器
analytics/ 基于 GrowthBook 的功能标志和分析
plugins/ 插件加载器
compact/ 对话上下文压缩
policyLimits/ 组织策略限制
remoteManagedSettings/ 远程托管设置
extractMemories/ 自动内存提取
tokenEstimation.ts Token 计数估算
teamMemorySync/ 团队内存同步

4. 桥接系统 (src/bridge/)

连接 IDE 扩展(VS Code、JetBrains)与 Claude Code CLI 的双向通信层。

  • bridgeMain.ts --- 桥接主循环
  • bridgeMessaging.ts --- 消息协议
  • bridgePermissionCallbacks.ts --- 权限回调
  • replBridge.ts --- REPL 会话桥接
  • jwtUtils.ts --- 基于 JWT 的认证
  • sessionRunner.ts --- 会话执行管理

5. 权限系统 (src/hooks/toolPermission/)

在每次工具调用时检查权限。根据配置的权限模式(default、plan、bypassPermissions、auto 等)提示用户批准/拒绝或自动解决。

6. 功能标志

通过 Bun 的 bun:bundle 功能标志进行死代码消除:

typescript 复制代码
import { feature } from 'bun:bundle'

// 非活动代码在构建时完全被移除
const voiceCommand = feature('VOICE_MODE')
  ? require('./commands/voice/index.js').default
  : null

notable 标志:PROACTIVE、KAIROS、BRIDGE_MODE、DAEMON、VOICE_MODE、AGENT_TRIGGERS、MONITOR_TOOL


关键文件详解

QueryEngine.ts(约 46K 行)

LLM API 调用的核心引擎。处理流式响应、工具调用循环、思考模式、重试逻辑和 token 计数。

Tool.ts(约 29K 行)

定义所有工具的基础类型和接口------输入模式、权限模型和进度状态类型。

commands.ts(约 25K 行)

管理所有斜杠命令的注册和执行。使用条件导入根据环境加载不同的命令集。

main.tsx

基于 Commander.js 的 CLI 解析器 + React/Ink 渲染器初始化。启动时并行执行 MDM 设置、钥匙串预取和 GrowthBook 初始化以加快启动速度。


技术栈

类别 技术
运行时 Bun
语言 TypeScript(严格模式)
终端 UI React + Ink
CLI 解析 Commander.js(extra-typings)
模式验证 Zod v4
代码搜索 ripgrep(通过 GrepTool)
协议 MCP SDK、LSP
API Anthropic SDK
遥测 OpenTelemetry + gRPC
功能标志 GrowthBook
认证 OAuth 2.0、JWT、macOS 钥匙串

值得注意的设计模式

并行预取

通过并行预取 MDM 设置、钥匙串读取和 API 预连接来优化启动时间------在重型模块评估开始之前。

typescript 复制代码
// main.tsx --- 作为副作用在其他导入之前触发
startMdmRawRead()
startKeychainPrefetch()

懒加载

重型模块(OpenTelemetry ~400KB、gRPC ~700KB)通过动态 import() 延迟加载,直到实际需要时才加载。

Agent 群

通过 AgentTool 生成子 Agent,coordinator/ 处理多 Agent 编排。TeamCreateTool 支持团队级别的并行工作。

技能系统

在 skills/ 中定义的可重用工作流,通过 SkillTool 执行。用户可以添加自定义技能。

插件架构

内置和第三方插件通过 plugins/ 子系统加载。


免责声明

本仓库归档了 2026-03-31 从 Anthropic 的 npm 仓库泄露的源代码。所有原始源代码均为 Anthropic 的财产。

相关推荐
白帽攻防录2 小时前
SRC 挖洞:Apache APISIX 非规范路径授权绕过深度复盘,CVE-2026-94269 怎么绕过网关访问后端
网络安全·apache·src漏洞挖掘
学逆向的11 小时前
win32注入代码
开发语言·网络安全·api·win32
Web Security Loop12 小时前
MAC安装最新Burpsuite pro详细步骤教程
web安全·macos·网络安全·安全性测试
墨云安全18 小时前
红队评估和渗透测试的区别是什么?2026 年从目标、方法到交付物的对比
网络·安全·web安全·网络安全·渗透测试
刘婉晴21 小时前
【APP安全测试】Frida 基础
网络安全
科技象限1 天前
数据防泄密系统怎么选?看它怎么把几道防线叠成网
运维·安全·网络安全·安企神
sbjdhjd1 天前
云安全 | 从特权容器到旧版 runC:Docker 宿主机访问与运行时缺陷复盘
运维·网络安全·docker·云原生·kubernetes·云计算·云安全
sbjdhjd2 天前
云安全 | Docker 容器逃逸复盘(三):docker.sock 挂载与 Docker-in-Docker 风险
经验分享·网络安全·docker·云原生·容器·kubernetes·云安全
Dachui_11222 天前
内网穿透如何限制访问地区?ZeroNews Geo Location 区域访问控制实践
运维·网络安全·内网穿透·访问控制·远程办公·api安全·ip白名单
HackTwoHub2 天前
DeepSeek Harness 红队破甲插件|适配 SRC 挖掘场景,区分平台拦截与模型原生输出,用于大模型安全边界合规测评研究
安全·web安全·网络安全·系统安全·密码学·网络攻击模型·安全架构