Open-ClaudeCode
完整开源的 Claude Code 项目 - 基于 Anthropic 官方源码重建
🌐 Languages: 中文 | English
🙏 特别感谢
本项目由衷感谢 Anthropic 公司的开源贡献!
Anthropic 通过 npm 包发布 Claude Code,使我们能够学习和研究这个优秀的 AI 编程助手架构。本项目的源码是从官方 npm 包的 source map 中恢复的,仅供学习和研究使用。
"您说的对,我不应该把map文件一并发布到npm中,这是一个非常严重的错误。"
我们理解 source map 文件本应用于开发调试,而非公开发布。Anthropic 对此问题的认识和处理方式值得我们学习。
📖 项目简介
Open-ClaudeCode 是一个完整的 Claude Code 开源版本,包含:
- ✅ 可运行的 CLI - 编译后的完整可执行文件 (v2.1.88)
- ✅ TypeScript 源码 - 1,902 个恢复的源文件供学习研究
- ✅ 官方插件 - 13 个 Anthropic 官方插件
- ✅ 配置示例 - 多种场景的 settings 配置
- ✅ 完整文档 - 项目说明、使用指南、CHANGELOG
📁 目录结构
Open-ClaudeCode/
├── package/ # 可运行的 CLI
│ ├── cli.js # 编译后的 CLI (12.5MB)
│ ├── cli.js.map # Source Map (57MB)
│ ├── package.json # 包配置
│ ├── bun.lock # Bun 锁文件
│ ├── sdk-tools.d.ts # SDK 类型定义 (117KB)
│ └── vendor/ # 原生二进制模块
│ ├── audio-capture/ # 音频捕获 (6 平台)
│ └── ripgrep/ # 代码搜索工具 (6 平台)
├── src/ # 完整 TypeScript 源码 (1,902 文件)
│ ├── tools/ # 30+ 工具实现 (184 文件)
│ ├── commands/ # 50+ 命令实现 (207 文件)
│ ├── services/ # API、MCP、OAuth 服务 (130 文件)
│ ├── components/ # React UI 组件 (389 文件)
│ ├── ink/ # Ink UI 框架 (96 文件)
│ ├── utils/ # 工具函数 (564 文件)
│ ├── hooks/ # React Hooks (104 文件)
│ ├── bridge/ # 桥接模块 (31 文件)
│ ├── vendor/ # 原生模块源码 (4 文件)
│ └── ... # 更多模块
├── plugins/ # 13 个官方插件
│ ├── agent-sdk-dev/
│ ├── claude-opus-4-5-migration/
│ ├── code-review/
│ ├── commit-commands/
│ ├── explanatory-output-style/
│ ├── feature-dev/
│ ├── frontend-design/
│ ├── hookify/
│ ├── learning-output-style/
│ ├── plugin-dev/
│ ├── pr-review-toolkit/
│ ├── ralph-wiggum/
│ └── security-guidance/
├── examples/ # 配置示例
│ └── settings/ # strict / lax / bash-sandbox
├── docs/ # 文档
├── README.md # 本文件
├── ACKNOWLEDGEMENTS.md # 感谢声明
├── CHANGELOG.md # 版本更新记录
├── LICENSE # 许可证说明
├── .gitignore # Git 忽略规则
└── .gitattributes # Git 属性
🚀 快速开始
前置要求
- Node.js 18+ (下载)
- API 密钥(任选一种):
- 🔵 Anthropic 官方 API — 在 console.anthropic.com 注册获取 API Key
- 🟢 第三方代理 — 国内用户推荐,获取代理地址和 API Key(如
ai.ltcraft.cn 等)
- 🔴 Claude 订阅账号 — 运行后通过 OAuth 登录(需科学上网)
第一步:克隆并运行
# 1. 克隆仓库
git clone https://github.com/LING71671/Open-ClaudeCode.git
cd Open-ClaudeCode
# 2. 验证环境
node --version # 需要 >= 18.0.0
node package/cli.js --version # 应显示 2.1.88
# 3. 启动!
node package/cli.js
第二步:认证
首次运行需要认证,选择以下任一方式:
方式一:第三方代理(国内推荐 🇨🇳)
适合中国大陆用户,无需科学上网:
- 获取第三方代理的 API 地址和密钥
- 创建
settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://你的代理地址",
"ANTHROPIC_AUTH_TOKEN": "sk-你的密钥"
}
}
- 运行:
node package/cli.js --settings settings.json
方式二:Anthropic 官方 API
- 访问 console.anthropic.com 注册账号
- 获取 API Key(格式
sk-ant-...)
- 创建
settings.json:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-ant-你的密钥"
}
}
- 运行:
node package/cli.js --settings settings.json
方式三:Claude 订阅账号(OAuth)
需要 Claude 订阅 + 科学上网:
# 直接运行,会自动打开浏览器登录
node package/cli.js
🖥️ 运行截图

📖 使用教程
模式一:交互模式(推荐新手)
直接运行,像聊天一样对话:
node package/cli.js
进入后你会看到交互界面,可以直接输入问题或指令:
> 帮我创建一个 Python Flask 项目
> 解释一下这段代码
> 帮我修复这个 bug
常用操作:
- 输入文字 → 按 Enter 发送
Ctrl+C → 中断当前操作
/help → 查看所有可用命令
/clear → 清空对话
/exit → 退出
模式二:非交互模式(脚本/管道)
适合自动化、脚本调用:
# 简单问答
node package/cli.js -p "解释一下什么是闭包"
# 处理文件
node package/cli.js -p "帮我重构 src/main.ts 中的 getUser 函数"
# 指定模型
node package/cli.js -p "写一个排序算法" --model sonnet
# JSON 输出(适合程序处理)
node package/cli.js -p "列出当前目录的文件" --output-format json
模式三:继续上次对话
# 继续当前目录的最近对话
node package/cli.js -c
# 恢复指定会话
node package/cli.js -r <session-id>
⚙️ 常用配置
🔑 配置自己的 API(第三方代理 / 自定义端点)
如果你使用第三方 API 代理服务或有自定义端点,可以这样配置:
方式一:通过 Settings 文件(推荐,持久化)
- 创建配置文件:
// settings.json
{
"env": {
"ANTHROPIC_BASE_URL": "https://你的代理地址",
"ANTHROPIC_AUTH_TOKEN": "sk-你的API密钥"
}
}
- 运行时加载配置:
node package/cli.js --settings settings.json
方式二:通过环境变量(临时)
# PowerShell
$env:ANTHROPIC_BASE_URL = "https://你的代理地址"
$env:ANTHROPIC_AUTH_TOKEN = "sk-你的API密钥"
node package/cli.js
# CMD
set ANTHROPIC_BASE_URL=https://你的代理地址
set ANTHROPIC_AUTH_TOKEN=sk-你的API密钥
node package/cli.js
方式三:通过全局配置目录
Claude Code 会自动读取 ~/.claude/settings.json: