本仓库镜像了在 2026年3月31日 通过 npm 分发包中的 source map 泄露而公开暴露的 Claude Code 源码快照。它仅用于教育、防御性安全研究和软件供应链分析。
翻译来自https://github.com/instructkr/claude-code
本仓库由一名大学生维护,用于研究以下内容:
- 软件供应链暴露与构建产物泄露
- 安全软件工程实践
- 智能体开发工具架构
- 对真实世界 CLI 系统的防御性分析
本存档旨在支持:
- 教育学习
- 安全研究实践
- 架构审查
- 关于打包与发布流程失败的讨论
它不声称拥有原始代码的所有权,也不应被解读为 Anthropic 的官方仓库。
Chaofan Shou (@Fried_rice) 公开指出,Claude Code 的源码材料可以通过 npm 包中暴露的 .map 文件访问:
"Claude Code 的源码通过 npm 注册表中的 map 文件泄露了!"
公开发布的 source map 引用了托管在 Anthropic R2 存储桶中的未混淆 TypeScript 源码,这使得 src/ 快照可以被公开下载。
Claude Code 是 Anthropic 推出的命令行工具(CLI),用于在终端中与 Claude 交互,执行软件工程任务,例如编辑文件、运行命令、搜索代码库和协调工作流。
本仓库包含一个用于研究和分析的 src/ 镜像快照。
- 公开暴露发现日期:2026-03-31
- 编程语言:TypeScript
- 运行时:Bun
- 终端 UI:React + Ink
- 规模:约 1,900 个文件,512,000+ 行代码
src/
├── main.tsx # 入口编排(基于 Commander.js 的 CLI 路径)
├── commands.ts # 命令注册表
├── tools.ts # 工具注册表
├── Tool.ts # 工具类型定义
├── QueryEngine.ts # LLM 查询引擎
├── context.ts # 系统/用户上下文收集
├── cost-tracker.ts # Token 成本追踪
│
├── commands/ # 斜杠命令实现(约 50 个)
├── tools/ # 智能体工具实现(约 40 个)
├── components/ # Ink UI 组件(约 140 个)
├── hooks/ # React hooks
├── services/ # 外部服务集成
├── screens/ # 全屏 UI(Doctor、REPL、Resume)
├── types/ # TypeScript 类型定义
├── utils/ # 工具函数
│
├── bridge/ # IDE 和远程控制桥接
├── coordinator/ # 多智能体协调器
├── plugins/ # 插件系统
├── skills/ # 技能系统
├── keybindings/ # 快捷键配置
├── vim/ # Vim 模式
├── voice/ # 语音输入
├── remote/ # 远程会话
├── server/ # 服务器模式
├── memdir/ # 持久化记忆目录
├── tasks/ # 任务管理
├── state/ # 状态管理
├── migrations/ # 配置迁移
├── schemas/ # 配置 schema(Zod)
├── entrypoints/ # 初始化逻辑
├── ink/ # Ink 渲染器包装器
├── buddy/ # 伴侣精灵
├── native-ts/ # 原生 TypeScript 工具
├── outputStyles/ # 输出样式
├── query/ # 查询管道
└── upstreamproxy/ # 代理配置
Claude Code 可以调用的每个工具都实现为一个独立的模块。每个工具都定义了自己的输入 schema、权限模型和执行逻辑。
| 工具 | 描述 |
|---|---|
BashTool |
执行 shell 命令 |
FileReadTool |
读取文件(支持图片、PDF、notebook) |
FileWriteTool |
创建/覆盖文件 |
FileEditTool |
部分修改文件(字符串替换) |
GlobTool |
文件模式匹配搜索 |
GrepTool |
基于 ripgrep 的内容搜索 |
WebFetchTool |
获取 URL 内容 |
WebSearchTool |
网络搜索 |
AgentTool |
生成子智能体 |
SkillTool |
执行技能 |
MCPTool |
MCP 服务器工具调用 |
LSPTool |
语言服务器协议集成 |
NotebookEditTool |
编辑 Jupyter notebook |
TaskCreateTool / TaskUpdateTool |
任务创建与管理 |
SendMessageTool |
智能体间消息传递 |
TeamCreateTool / TeamDeleteTool |
团队智能体管理 |
EnterPlanModeTool / ExitPlanModeTool |
切换计划模式 |
EnterWorktreeTool / ExitWorktreeTool |
Git 工作树隔离 |
ToolSearchTool |
延迟工具发现 |
CronCreateTool |
创建定时触发器 |
RemoteTriggerTool |
远程触发 |
SleepTool |
主动模式等待 |
SyntheticOutputTool |
生成结构化输出 |
用户通过 / 前缀调用的斜杠命令。
| 命令 | 描述 |
|---|---|
/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 |
切换到移动应用 |
| 服务 | 描述 |
|---|---|
api/ |
Anthropic API 客户端、文件 API、引导程序 |
mcp/ |
Model Context Protocol 服务器连接与管理 |
oauth/ |
OAuth 2.0 认证流程 |
lsp/ |
语言服务器协议管理器 |
analytics/ |
基于 GrowthBook 的功能标志与分析 |
plugins/ |
插件加载器 |
compact/ |
对话上下文压缩 |
policyLimits/ |
组织策略限制 |
remoteManagedSettings/ |
远程托管设置 |
extractMemories/ |
自动记忆提取 |
tokenEstimation.ts |
Token 数量估算 |
teamMemorySync/ |
团队记忆同步 |
一个双向通信层,连接 IDE 扩展(VS Code、JetBrains)与 Claude Code CLI。
bridgeMain.ts— 桥接主循环bridgeMessaging.ts— 消息协议bridgePermissionCallbacks.ts— 权限回调replBridge.ts— REPL 会话桥接jwtUtils.ts— 基于 JWT 的身份验证sessionRunner.ts— 会话执行管理
在每次工具调用时检查权限。根据用户批准/拒绝,或基于配置的权限模式(default、plan、bypassPermissions、auto 等)自动解析。
通过 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
LLM API 调用的核心引擎。处理流式响应、工具调用循环、思考模式、重试逻辑和 Token 计数。
定义所有工具的基础类型和接口 — 输入 schema、权限模型和进度状态类型。
管理所有斜杠命令的注册和执行。使用条件导入按环境加载不同的命令集。
基于 Commander.js 的 CLI 解析器和 React/Ink 渲染器初始化。在启动时,它会并行执行 MDM 设置、钥匙串预取和 GrowthBook 初始化,以加快启动速度。
| 类别 | 技术 |
|---|---|
| 运行时 | Bun |
| 语言 | TypeScript(严格模式) |
| 终端 UI | React + Ink |
| CLI 解析 | Commander.js(extra-typings) |
| Schema 验证 | Zod v4 |
| 代码搜索 | ripgrep |
| 协议 | MCP SDK、LSP |
| API | Anthropic SDK |
| 遥测 | OpenTelemetry + gRPC |
| 功能标志 | GrowthBook |
| 认证 | OAuth 2.0、JWT、macOS 钥匙串 |
通过在其他模块求值之前并行预取 MDM 设置、钥匙串读取和 API 预连接,来优化启动时间。
// main.tsx — 在其他导入之前作为副作用触发
startMdmRawRead()
startKeychainPrefetch()重量级模块(OpenTelemetry、gRPC、分析系统以及部分功能标志子系统)通过动态 import() 延迟加载,直到真正需要时才加载。
通过 AgentTool 生成子智能体,由 coordinator/ 处理多智能体编排。TeamCreateTool 支持团队级别的并行工作。
skills/ 中定义的可复用工作流通过 SkillTool 执行。用户可以添加自定义技能。
内置和第三方插件通过 plugins/ 子系统加载。
- 本仓库是一份由大学生维护的教育和防御性安全研究存档。
- 它存在的目的是研究源码暴露、打包失败以及现代智能体 CLI 系统的架构。
- 原始 Claude Code 源码仍归 Anthropic 所有。
- 本仓库不隶属于 Anthropic,未获得其认可,也不由其维护。