civil-engineering-cloud-cla.../01-claude-code-source-crack/claude-code-source
kuanghaowei 01a829a0b8 feat: Claude Code Source v2.1.88 源码泄露存档合集
- 01-claude-code-source-crack: 原始破解版 (source map 还原)
- 02-claude-code-source-research: 学术研究版 (架构分析)
- 03-claude-code-runnable: 可运行版 (bun install && bun run dev)
2026-03-31 16:28:13 +00:00
..
patches feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00
src feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00
stubs feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00
vendor feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00
.gitignore feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00
README.md feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00
build.ts feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00
package.json feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00
pnpm-lock.yaml feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00
pnpm-workspace.yaml feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00
tsconfig.json feat: Claude Code Source v2.1.88 源码泄露存档合集 2026-03-31 16:28:13 +00:00

README.md

Claude Code 源码还原与构建

从源码重新构建

# 1. 安装 Bun构建工具
curl -LO https://github.com/oven-sh/bun/releases/latest/download/bun-darwin-aarch64.zip
unzip bun-darwin-aarch64.zip -d /tmp/bun && sudo cp /tmp/bun/bun-darwin-aarch64/bun /usr/local/bin/bun

# 2. 安装/更新依赖
pnpm install --registry https://registry.npmjs.org

# 3. 构建
bun run build.ts

# 4. 运行
bun dist/cli.js --version

@anthropic-ai/claude-code v2.1.88 npm 包中的 cli.js.map source map 文件还原出的完整源代码,并配置为可编译运行。

效果验证

$ bun dist/cli.js --version
2.1.88 (Claude Code)

$ bun dist/cli.js --help
Usage: claude [options] [command] [prompt]
Claude Code - starts an interactive session by default...

源码还原方法

# 1. 下载 npm 包
npm pack @anthropic-ai/claude-code --registry https://registry.npmjs.org

# 2. 解压
tar xzf anthropic-ai-claude-code-2.1.88.tgz

# 3. 解析 cli.js.map将 sourcesContent 按原始路径写出
node -e "
const fs = require('fs'), path = require('path');
const map = JSON.parse(fs.readFileSync('package/cli.js.map', 'utf8'));
const outDir = './claude-code-source';
for (let i = 0; i < map.sources.length; i++) {
  const content = map.sourcesContent[i];
  if (!content) continue;
  let relPath = map.sources[i];
  while (relPath.startsWith('../')) relPath = relPath.slice(3);
  const outPath = path.join(outDir, relPath);
  fs.mkdirSync(path.dirname(outPath), { recursive: true });
  fs.writeFileSync(outPath, content);
}
"

source map 包含 4756 个源文件及完整 sourcesContent,可无损还原所有 TypeScript/TSX 原始代码。

构建环境搭建

依赖

工具 用途
Bun v1.3.11 构建工具(源码使用 bun:bundle 特性)
pnpm v10+ 包管理
Node.js v18+ 运行时

安装步骤

# 1. 安装 BunmacOS arm64
curl -LO https://github.com/oven-sh/bun/releases/latest/download/bun-darwin-aarch64.zip
unzip bun-darwin-aarch64.zip

# 2. 安装依赖pnpm + npm registry
pnpm install --registry https://registry.npmjs.org

# 3. 构建
bun run build.ts

# 4. 运行
bun dist/cli.js --version

构建说明

为什么需要 Bun

源码中大量使用了 bun:bundlefeature() API

import { feature } from 'bun:bundle'

// 编译期特性开关Bun 构建时进行死代码消除
const coordinatorModule = feature('COORDINATOR_MODE')
  ? require('./coordinator/coordinatorMode.js')
  : null

这是 Bun bundler 的专有特性,等价于 webpack 的 DefinePlugin,在构建时静态替换为 true/false 并消除死分支。

特性开关配置

build.ts 中定义了 90+ 个特性开关,均已按生产外部版本的默认值设置:

const featureFlags = {
  BRIDGE_MODE: false,        // IDE 桥接(生产关闭)
  COORDINATOR_MODE: false,   // 多代理协调(内部功能)
  KAIROS: false,             // 助手模式(内部功能)
  BUILTIN_EXPLORE_PLAN_AGENTS: true,  // 内置探索/计划代理(启用)
  TOKEN_BUDGET: true,        // Token 预算显示(启用)
  // ...等 80+ 个开关
}

MACRO 常量注入

源码使用 MACRO.VERSION 等编译期常量(类似 C 语言的宏):

console.log(`${MACRO.VERSION} (Claude Code)`)  // → "2.1.88 (Claude Code)"

build.ts 中通过 define 注入:

define: {
  'MACRO.VERSION': JSON.stringify('2.1.88'),
  'MACRO.BUILD_TIME': JSON.stringify(new Date().toISOString()),
  'MACRO.ISSUES_EXPLAINER': JSON.stringify('...'),
  // ...
}

私有包处理

以下内部包不在公开 npm 中,已创建功能存根:

包名 说明
color-diff-napi 语法高亮 native 模块(存根:禁用高亮)
modifiers-napi macOS 按键修饰符 native 模块(存根:返回空)
@ant/claude-for-chrome-mcp Chrome 扩展 MCP 服务器(存根)
@anthropic-ai/mcpb MCP bundle 处理器(存根)
@anthropic-ai/sandbox-runtime 沙盒运行时(存根)

commander 兼容性补丁

源码使用 -d2e 作为调试标志的短选项(多字符短选项),但 commander v14 只允许单字符短选项。 已对 node_modules/commander/lib/option.js 做最小化补丁,将正则从 /^-[^-]$/ 改为 /^-[^-]+$/

目录结构

.
├── src/                  # 核心源码1902 个文件)
│   ├── entrypoints/
│   │   └── cli.tsx       # ← 构建入口点
│   ├── main.tsx          # 主 REPL 逻辑(由 cli.tsx 动态 import
│   ├── Tool.ts           # 工具类型系统
│   ├── Task.ts           # 任务管理
│   ├── QueryEngine.ts    # 查询引擎
│   ├── assistant/        # 会话历史管理
│   ├── bridge/           # IDE 桥接层31
│   ├── buddy/            # 子代理系统6
│   ├── cli/              # CLI 参数解析19
│   ├── commands/         # 斜杠命令207
│   ├── components/       # 终端 UI 组件389
│   ├── constants/        # 全局常量21
│   ├── context/          # 上下文管理9
│   ├── entrypoints/      # 各类入口点8
│   ├── hooks/            # 生命周期钩子104
│   ├── ink/              # 自研终端渲染引擎96
│   ├── keybindings/      # 键盘快捷键14
│   ├── memdir/           # 记忆目录8
│   ├── migrations/       # 数据迁移11
│   ├── plugins/          # 插件系统2
│   ├── remote/           # 远程执行4
│   ├── services/         # 核心服务130
│   ├── skills/           # 技能系统20
│   ├── state/            # 状态管理6
│   ├── tasks/            # 任务执行12
│   ├── tools/            # 工具实现184
│   ├── types/            # 类型定义11
│   ├── utils/            # 工具函数564
│   ├── vim/              # Vim 模式5
│   └── voice/            # 语音输入1
├── vendor/               # 内部 vendor 代码4 文件)
├── node_modules/         # 依赖pnpm 安装 + 私有包存根)
├── dist/                 # 构建产出
│   └── cli.js            # 可执行文件22MB
├── build.ts              # Bun 构建脚本(含特性开关配置)
├── tsconfig.json         # TypeScript 配置
└── package.json          # 项目配置

统计

指标 数值
源文件总数 4,756
核心源码src/ + vendor/ 1,906 文件
第三方依赖node_modules/ 2,850 + npm 安装
Source Map 大小 57 MB
构建产出大小 22 MB
包版本 2.1.88
特性开关数量 90 个