LING71671/Open-ClaudeCode
GitHub: LING71671/Open-ClaudeCode
该项目是从 npm source map 重建的 Claude Code 完整源码与运行时存档,兼具研究学习与实际运行能力。
Stars: 926 | Forks: 1222
# Open-ClaudeCode
🌐 **语言**: [中文](README.md) | [English](README.en.md)
## 📖 项目简介
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+** ([下载](https://nodejs.org/))
- **API 密钥**(任选一种):
- 🔵 **Anthropic 官方 API** — 在 [console.anthropic.com](https://console.anthropic.com/) 注册获取 API Key
- 🟢 **第三方代理** — 国内用户推荐,获取代理地址和 API Key
- 🔴 **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
```
### 第二步:认证
首次运行需要认证,选择以下**任一方式**:
#### 方式一:第三方代理(国内推荐 🇨🇳)
适合中国大陆用户,无需科学上网:
1. 获取第三方代理的 API 地址和密钥
2. 创建 `settings.json`:
```
{
"env": {
"ANTHROPIC_BASE_URL": "https://你的代理地址",
"ANTHROPIC_AUTH_TOKEN": "sk-你的密钥"
}
}
```
3. 运行:`node package/cli.js --settings settings.json`
#### 方式二:Anthropic 官方 API
1. 访问 [console.anthropic.com](https://console.anthropic.com/) 注册账号
2. 获取 API Key(格式 `sk-ant-...`)
3. 创建 `settings.json`:
```
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-ant-你的密钥"
}
}
```
4. 运行:`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
```
## ⚙️ 常用配置
### 🔑 配置自己的 API(第三方代理 / 自定义端点)
如果你使用第三方 API 代理服务或有自定义端点,可以这样配置:
#### 方式一:通过 Settings 文件(推荐,持久化)
1. 创建配置文件:
```
// settings.json
{
"env": {
"ANTHROPIC_BASE_URL": "https://你的代理地址",
"ANTHROPIC_AUTH_TOKEN": "sk-你的API密钥"
}
}
```
2. 运行时加载配置:
```
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`:
```
// C:\Users\你的用户名\.claude\settings.json (Windows)
// ~/.claude/settings.json (macOS/Linux)
{
"env": {
"ANTHROPIC_BASE_URL": "https://你的代理地址",
"ANTHROPIC_AUTH_TOKEN": "sk-你的API密钥"
}
}
```
配置后每次运行 `node package/cli.js` 都会自动使用这些设置。
#### 支持的模型别名
```
# 常用模型
node package/cli.js --model sonnet # Claude Sonnet(默认)
node package/cli.js --model opus # Claude Opus(最强)
node package/cli.js --model haiku # Claude Haiku(最快)
# 指定完整模型名
node package/cli.js --model claude-sonnet-4-6
node package/cli.js --model claude-opus-4-6
```
#### ⚠️ 注意事项
- 第三方代理可能不支持所有模型,请以代理方提供的模型列表为准
- `ANTHROPIC_AUTH_TOKEN` 和 `ANTHROPIC_API_KEY` 任选其一即可
- 如果同时设置了环境变量和 settings 文件,环境变量优先级更高
- **不要在公开仓库分享包含 API Key 的配置文件**
### 选择模型
```
# Sonnet(默认,速度快,性价比高)
node package/cli.js --model sonnet
# Opus(最强,但较慢较贵)
node package/cli.js --model opus
# Haiku(最快最便宜)
node package/cli.js --model haiku
```
### 权限模式
```
# 默认模式(每次操作需要确认)
node package/cli.js
# 自动接受编辑(不用每次确认文件修改)
node package/cli.js --permission-mode acceptEdits
# 跳过所有权限检查(⚠️ 仅限沙箱环境)
node package/cli.js --dangerously-skip-permissions
```
### 使用插件
```
# 从指定目录加载插件
node package/cli.js --plugin-dir ./plugins/code-review
# 加载多个插件
node package/cli.js --plugin-dir ./plugins/code-review --plugin-dir ./plugins/commit-commands
```
## 🎯 实战示例
### 示例 1:让 Claude 帮你写代码
```
# 进入你的项目目录
cd your-project
# 启动 Claude
node /path/to/Open-ClaudeCode/package/cli.js
# 然后输入:
> 帮我创建一个用户登录 API,使用 Express.js
> 给这个函数添加单元测试
> 修复 src/auth.ts 中的类型错误
```
### 示例 2:代码审查
```
# 使用 code-review 插件
node package/cli.js --plugin-dir ./plugins/code-review
# 或者直接让 Claude 审查
> 帮我审查最近的 git diff
> 检查这个 PR 有没有潜在问题
```
### 示例 3:Git 工作流
```
# 使用 commit-commands 插件
node package/cli.js --plugin-dir ./plugins/commit-commands
# 或者直接用内置命令
> /commit # 智能生成 commit message
```
## 📋 内置命令速查
在交互模式下输入 `/` 开头的命令:
| 命令 | 功能 |
|------|------|
| `/help` | 显示帮助 |
| `/clear` | 清空对话 |
| `/compact` | 压缩对话历史 |
| `/model` | 切换模型 |
| `/theme` | 切换主题 |
| `/vim` | 切换 Vim 模式 |
| `/cost` | 查看费用统计 |
| `/stats` | 查看使用统计 |
| `/share` | 分享会话 |
| `/exit` | 退出 |
## ❓ 常见问题
### Q: 提示需要认证怎么办?
A: 首次运行需要登录。运行后会自动打开浏览器,用你的 Claude 账号登录即可。或者设置 `ANTHROPIC_API_KEY` 环境变量。
### Q: 运行后卡住了?
A: 检查网络连接。如果在中国大陆,可能需要代理:
```
$env:HTTPS_PROXY="http://127.0.0.1:7890"
node package/cli.js
```
### Q: 如何查看花了多少钱?
A: 在交互模式下输入 `/cost` 或 `/stats` 查看。
### Q: 如何配置第三方代理或自定义 API?
A: 创建 `settings.json` 文件,内容如下:
```
{
"env": {
"ANTHROPIC_BASE_URL": "https://你的代理地址",
"ANTHROPIC_AUTH_TOKEN": "sk-你的密钥"
}
}
```
然后运行 `node package/cli.js --settings settings.json`。也可以放到 `~/.claude/settings.json` 实现全局配置。
### Q: 可以在任何目录运行吗?
A: 可以!但建议在你的项目目录下运行,这样 Claude 可以访问项目文件。
### Q: 和 npm 安装的区别?
A: 这个仓库提供的是从 npm 包恢复的完整源码,适合学习研究。功能上和 npm 安装的版本一致。
### Q: 支持 OpenAI 格式的 API 吗?
A: Claude Code 原生使用 Anthropic API 格式。如果你需要使用 OpenAI SDK 格式调用,可以使用 **[Universal-AI-Protocol-Bridge](https://github.com/LING71671/Universal-AI-Protocol-Bridge)** 进行协议转换:
**功能特性:**
- 🔄 **协议转换** - 将 OpenAI SDK 格式转换为 Anthropic/Claude API 格式
- 🌐 **多协议支持** - OpenAI、Anthropic、Google Gemini、AWS Bedrock、Azure、Ollama 等
- ⚡ **流式传输优化** - 完整支持 SSE/NDJSON 流式响应
- 🔐 **安全加密** - AES-GCM 加密保护 API Key
- ☁️ **Cloudflare Workers** - 边缘部署,全球低延迟
**使用方法:**
1. 访问 [在线测试地址](https://apibridge.071.cc.cd/) 或自行部署
2. 选择目标协议(如 Anthropic)并填入 API Key
3. 生成代理 URL,将你的 OpenAI SDK `baseURL` 指向该地址即可
```
// 示例:使用 OpenAI SDK 调用 Claude
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://your-bridge-url/proxy/{token}/v1',
apiKey: 'any-key' // 实际 Key 已加密在 token 中
});
// 现在可以用 OpenAI 格式调用 Claude 了!
const response = await client.chat.completions.create({
model: 'claude-3-5-sonnet-latest',
messages: [{ role: 'user', content: 'Hello!' }]
});
```
## 📚 学习源码
源码位于 `src/` 目录,包含 1,902 个源文件:
```
# 查看入口点
cat src/main.tsx
# 查看工具实现
ls src/tools/
# 查看命令实现
ls src/commands/
```
### 使用插件
插件位于 `plugins/` 目录,包含 13 个官方插件:
```
# 查看插件列表
ls plugins/
# 查看插件详情
cat plugins/ralph-wiggum/.claude-plugin/plugin.json
```
## 📊 项目统计
| 类别 | 数量 |
|------|------|
| TypeScript 源码 (.ts + .tsx) | 1,884 文件 |
| JavaScript 源码 (.js) | 18 文件 |
| 所有源码文件总计 | 1,902 文件 |
| 工具实现 | 30+ 个 |
| 命令实现 | 50+ 个 |
| 服务模块 | 15+ 个 |
| UI 组件 | 25+ 个 |
| 官方插件 | 13 个 |
| 原生模块 | 2 个 (audio-capture, ripgrep) |
| 支持平台 | 6 个 (macOS/Linux/Windows × arm64/x64) |
## 📜 许可证
本项目源码版权归 **Anthropic PBC** 所有。
本仓库仅供学习和研究使用,不代表 Anthropic 官方立场。
详见 [LICENSE](LICENSE) 和 [ACKNOWLEDGEMENTS.md](ACKNOWLEDGEMENTS.md)。
## 🔗 相关链接
- [Anthropic 官网](https://www.anthropic.com/)
- [Claude Code 文档](https://code.claude.com/)
- [本项目 GitHub](https://github.com/LING71671/Open-ClaudeCode)
- [讨论区](https://github.com/LING71671/Open-ClaudeCode/issues/2)
*最后更新: 2026-04-01*
标签:Claude, CVE检测, MITM代理, TypeScript, 云资产清单, 人工智能, 安全插件, 源码恢复, 用户模式Hook绕过, 自动化攻击, 逆向工程