Claude Code 源码被从 npm source map 完整还原

cover

GitHub 上出现名为 claude-code-sourcemap 的非官方仓库,通过 npm 发布包 @anthropic-ai/claude-code 附带的 source map(cli.js.map)中的 sourcesContent 字段,还原了 Claude Code 2.1.88 的完整 TypeScript 源码,共计 4756 个文件,其中 1884 个为 .ts.tsx 源文件。

仓库说明中写明,内容基于公开 npm 包与 source map 分析整理,不代表 Anthropic 官方内部开发仓库结构,仅供研究使用。

还原出了什么

还原的目录结构覆盖了 Claude Code 的主要功能模块:

  • main.tsx — CLI 入口
  • tools/ — 30+ 工具实现,包括 Bash、FileEdit、Grep、MCP 等
  • commands/ — 40+ 命令,包括 commit、review、config 等
  • services/ — API、MCP、分析等服务层
  • coordinator/ — 多 Agent 协调模式
  • assistant/ — 助手模式(代号 KAIROS)
  • plugins/ — 插件系统
  • skills/ — 技能系统
  • voice/ — 语音交互
  • vim/ — Vim 模式

body

从还原出的架构来看,Claude Code 的内部实现远比外部可见的 CLI 交互复杂。多 Agent 协调、插件和技能系统、语音与 Vim 模式的存在,说明 Anthropic 在 CLI 层面做了大量功能扩展,这些模块在正常使用中大多不可见。

source map 的供应链风险

source map 是前端和 Node.js 工程中常见的构建产物,用于将压缩后的代码映射回原始源码,方便调试。问题在于:当 source map 中包含完整的 sourcesContent 时,任何人拿到发布包就能还原出原始代码。

这在 Web 前端领域是一个被反复讨论的供应链安全问题——许多项目会在构建配置中移除 sourcesContent,或在发布前清理 source map。Claude Code 作为一个 npm 公开包,将带有完整 sourcesContent 的 source map 一同发布,等于把源码公开放在了每个用户的 node_modules 里。

目前该仓库仍在 GitHub 上可见,Anthropic 尚未对此作出公开回应。

来源: https://github.com/ChinaSiro/claude-code-sourcemap

相关推荐