从
@anthropic-ai/[email protected]的 Source Map 完整还原的 TypeScript 源码,可独立构建运行。
Claude Code 是 Anthropic 推出的 AI 编程助手命令行工具。本项目通过解析 npm 发布包中的 .js.map 文件,从 sources 和 sourcesContent 字段提取并还原了完整的 TypeScript 源码树。
- 原始版本:
2.1.88 - 源文件数量: 2,100+ 个
.ts/.tsx文件 - 构建工具: Bun (bundler)
- 运行时: Node.js >= 18
- UI 框架: React 19 + Ink (终端 UI)
| 工具 | 版本 | 用途 |
|---|---|---|
| Bun | >= 1.0 | 构建时依赖(不需要作为运行时) |
| Node.js | >= 18 | 运行时 |
| Git | any | 克隆源码 |
git clone https://github.com/MrCatAI/claude-code.git
cd claude-code公开仓库: https://github.com/Safphere/claude-code
bun installbun run build构建产物: dist/cli.js (~29MB,自包含,无外部依赖)
# 方式一: 环境变量
export ANTHROPIC_API_KEY="sk-ant-your-key-here"
# 方式二: 使用配置文件 (~/.claude/settings.json)
mkdir -p ~/.claude
cat > ~/.claude/settings.json << 'EOF'
{
"env": {
"ANTHROPIC_API_KEY": "sk-ant-your-key-here"
}
}
EOF也支持自定义 API 端点(代理/兼容 API):
{
"env": {
"ANTHROPIC_API_KEY": "your-key",
"ANTHROPIC_BASE_URL": "https://your-proxy.example.com/api/anthropic"
}
}# 直接运行
node dist/cli.js -p "hello"
# 查看版本
node dist/cli.js --version
# 输出: 2.1.88 (Claude Code)安装后可直接使用 claude 命令:
# 在项目目录内执行
npm link
# 现在可以在任意位置使用
claude -p "你好"
claude --version
claude --help
# 取消全局安装
npm unlink -g @anthropic-ai/claude-code# 非交互模式 (单次问答)
claude -p "你的问题"
echo "你的问题" | claude -p
# 交互模式 (进入 REPL)
claude
# 指定模型
claude -p "hello" --model sonnet
# 继续上次对话
claude -c
# 查看帮助
claude --helpclaude-code/
├── src/
│ ├── entrypoints/cli.tsx # CLI 主入口
│ ├── tools/ # 内置工具集 (50+)
│ ├── services/ # 核心服务 (API, Auth, MCP...)
│ ├── components/ # React 终端 UI
│ ├── ink/ # Ink 框架 (React 终端渲染)
│ ├── shims/ # Bun/React API 兼容层
│ ├── stubs/ # Anthropic 内部包 stub
│ └── ...
├── scripts/build.ts # 构建脚本
├── package.json
├── tsconfig.json
└── dist/ # 构建输出 (gitignored)
└── cli.js
构建过程 (bun run build) 执行以下步骤:
- 复制
src/→build-src/作为工作副本 - 将
feature('FLAG')调用替换为true/false字面量 - 移除
bun:bundle导入 - 为缺失的内部 Anthropic 模块创建 stub 文件
- 将
src/...绝对导入改为相对路径 - 使用
bun build --target node打包为单文件 - 修补
useEffectEventpolyfill(Ink reconciler 兼容) - 添加
#!/usr/bin/env nodeshebang
# AWS Bedrock
export CLAUDE_CODE_USE_BEDROCK=1
# Google Vertex AI
export CLAUDE_CODE_USE_VERTEX=1| 变量 | 说明 |
|---|---|
ANTHROPIC_API_KEY |
API 密钥 |
ANTHROPIC_BASE_URL |
自定义 API 端点 |
ANTHROPIC_MODEL |
覆盖默认模型 |
CLAUDE_CODE_USE_BEDROCK |
使用 AWS Bedrock |
CLAUDE_CODE_USE_VERTEX |
使用 Google Vertex |
本项目从 @anthropic-ai/[email protected] 的 57MB Source Map 文件还原:
- 解析
.js.map中的sources和sourcesContent - 按原始目录结构写入文件系统
- 通过分析 import 语句逆向还原
package.json依赖列表 - 创建 Bun API polyfill 和 Anthropic 内部包 stub
- Anthropic 内部包 (
@ant/*,@anthropic-ai/sandbox-runtime等) 仅有 stub - 原生 N-API 模块以 TypeScript 纯实现替代
- 部分被 Feature Flag 保护的功能未激活
- 交互模式 (无
-p) 需要 TTY 终端环境
本项目仅用于学习和研究目的。Claude Code 的原始代码版权归 Anthropic 所有。