# Claude-Code
**Repository Path**: wcly/Claude-Code
## Basic Information
- **Project Name**: Claude-Code
- **Description**: 可运行的Claude Code源码
- **Primary Language**: TypeScript
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-02
- **Last Updated**: 2026-04-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Claude Code 源码还原
> 从 `@anthropic-ai/claude-code` npm 包的 source map 中还原的完整 TypeScript 源码,**可本地运行**
> [!WARNING]
> 本仓库为**非官方**版本,基于公开 npm 发布包 source map 还原,**仅供研究学习**。源码版权归 [Anthropic](https://www.anthropic.com) 所有。
---
## 快速开始
### 本地运行
```bash
bun install # 安装依赖(需要 Bun ≥ 1.3.5、Node.js ≥ 24)
bun run dev # 启动 CLI
bun run version # 验证版本
```
### 全局使用 `ccc`
如果你想像全局命令一样使用这个还原版,可以按下面的步骤配置。
#### 1. 在仓库根目录注册全局命令
```bash
bun link
```
#### 2. 把 Bun 全局命令目录加入 `PATH`
如果你的 shell 里执行 `ccc` 提示 `command not found`,通常是因为 `~/.bun/bin` 还没加入 `PATH`。
推荐这样追加,前面显式补一个换行,避免和现有注释拼到同一行:
```bash
printf '\nexport PATH="$HOME/.bun/bin:$PATH"\n' >> ~/.zshrc
source ~/.zshrc
rehash
```
#### 3. 验证全局命令是否已经生效
```bash
which ccc
ccc --help
```
正常情况下,`which ccc` 应该输出:
```bash
/Users/<你的用户名>/.bun/bin/ccc
```
#### 4. 在任意目录中使用
```bash
ccc
ccc --help
ccc --version
```
说明:
- `ccc` 会保留你当前所在目录作为工作空间,不会切到安装目录
- 当前仓库仍然是 restored 开发态;如果源码入口还有残缺,`ccc` 也会表现为同样的开发态提示
- 如果你之前已经执行过一次 `bun link`,改名后需要在仓库根目录重新执行一次 `bun link`,这样 `~/.bun/bin/ccc` 才会生成
- 如果你曾经把旧命令名 `cc` 链接到 `~/.bun/bin`,建议删除它,避免和系统编译器 `cc` 冲突:
```bash
rm -f ~/.bun/bin/cc
```
- 如果 `PATH` 还没刷新,也可以先直接运行:
```bash
~/.bun/bin/ccc --help
```
***
## 配置 Codex / OpenAI 兼容服务
本仓库保留了原有 Anthropic 登录流程作为默认回退路径,同时新增了一个可选的 Codex/OpenAI 兼容提供方配置:
- 当 `~/.claude/codex.json` **存在且配置有效**时,启动后会优先走 Codex / OpenAI 路径
- 当 `~/.claude/codex.json` **不存在、禁用或配置不完整**时,仍然走原来的 Anthropic 登录流程
### 配置文件路径
```text
~/.claude/codex.json
```
### 配置项说明
```json
{
"enabled": true,
"baseURL": "https://api.openai.com/v1",
"apiKey": "sk-xxx",
"model": "gpt-5-codex",
"proxy": {
"http": "http://127.0.0.1:7890",
"https": "http://127.0.0.1:7890"
}
}
```
- `enabled`:是否启用 Codex/OpenAI 路径,默认文件存在时视为启用
- `baseURL`:OpenAI 兼容服务的基础地址,可写服务根地址或直接写到 `/v1`
- `apiKey`:服务对应的 API Key
- `model`:要使用的模型名,例如 `gpt-5-codex`
- `proxy.http` / `proxy.https`:可选的代理地址
### OpenAI 官方示例
```json
{
"enabled": true,
"baseURL": "https://api.openai.com/v1",
"apiKey": "sk-xxx",
"model": "gpt-5-codex"
}
```
### OpenAI 兼容网关示例
```json
{
"enabled": true,
"baseURL": "https://your-gateway.example.com/v1",
"apiKey": "sk-xxx",
"model": "gpt-5-codex"
}
```
### Packy 示例
```json
{
"enabled": true,
"baseURL": "https://www.packyapi.com/v1",
"apiKey": "sk-xxx",
"model": "gpt-5-codex"
}
```
### 使用说明
- `baseURL` 可以填写服务根地址,也可以直接写到 `/v1`
- 当前适配层在缺少 `/v1` 时会自动补试一次 `/v1/...` 端点
- `model` 必须填写你的服务端实际支持的模型名
- 修改 `codex.json` 后,后续请求会按最新配置读取
- 使用 Codex 模式时,大模型请求会走 OpenAI Responses API 兼容路径
- 如果请求失败,终端会优先显示 OpenAI/Codex 侧的真实错误,便于排查 `baseURL`、`apiKey` 和 `model`
### 快速排查
- 报 `Invalid value: 'input_text'` 一类协议错误时,通常说明上游兼容层不完全支持 Responses API
- 报 `404` 时,先检查 `baseURL`、网关路由和上游服务实际开放的端点
- 报 `401` / `403` 时,优先检查 `apiKey`
- 报 `400 invalid model` 时,优先检查 `model` 是否是该网关实际支持的名称
***
## 从源码中发现的 7 大隐藏功能
通过阅读还原后的 1,987 个 TypeScript 源文件,我们发现了大量未公开的隐藏功能。这些功能通过**编译开关**(`feature()`)和**用户类型**(`USER_TYPE`)进行门控,外部发布版中大部分被裁剪。
---
### 1. [BUDDY — AI 电子宠物](docs/01-buddy.md)
> 源码位置:`src/buddy/` · [查看完整分析 →](docs/01-buddy.md)
终端里的拓麻歌子!一个完整的虚拟宠物系统。
- **18 种物种**:鸭子、鹅、猫、龙、章鱼、猫头鹰、企鹅、乌龟、蜗牛、幽灵、六角恐龙、水豚、仙人掌、机器人、兔子、蘑菇、果冻、胖猫
- **5 级稀有度**:普通(60%) → 非凡(25%) → 稀有(10%) → 史诗(4%) → 传说(1%)
- **1% 闪光概率**:独立于稀有度,任何宠物都有 1% 概率成为闪光个体
- **确定性生成**:使用账号 UUID + 固定盐值 `'friend-2026-401'` 经 FNV-1a 哈希 → Mulberry32 PRNG,每人只会得到一只固定的宠物,改配置也没用
- **外观系统**:6 种眼睛样式 + 8 种帽子(皇冠、巫师帽、光环等),common 稀有度没有帽子
- **交互**:`/buddy pet` 抚摸(爱心动画)、`/buddy hatch` 孵化、`/buddy card` 查看卡片
- **动画**:500ms 帧率的 ASCII 精灵动画,气泡对话,窄终端自动退化为表情文字脸(如 `=·ω·=`)
- **编译开关**:`feature('BUDDY')`
---
### 2. [KAIROS — 永不关机的 Claude](docs/02-kairos.md)
> 源码位置:`src/assistant/`、`src/proactive/`、`src/services/autoDream/` · [查看完整分析 →](docs/02-kairos.md)
关掉终端 Claude 还在运行的持久助手模式。
- **跨会话持久运行**:通过 `.claude/settings.json` 的 `assistant: true` 激活,会话状态持久化到磁盘
- **每日日志**:自动在 `/logs/YYYY/MM/YYYY-MM-DD.md` 记录工作日志
- **自动做梦(Dream)**:距上次整合超 24 小时且有 5+ 新会话时,后台自动启动记忆整合子代理,分四阶段运行:Orient → Gather → Consolidate → Prune
- **锁机制**:`.consolidate-lock` 文件 + PID 存活检查,防止多进程同时做梦
- **主动模式(Proactive)**:没人说话时自己找活干,没活就调用 `SleepTool` 等着。接收周期性 `` 提示来检查是否有事可做
- **后台任务**:命令超 15 秒自动丢后台,支持持久 cron 任务(`permanent: true` 不受 7 天过期限制)
- **编译开关**:`feature('KAIROS')`、`feature('KAIROS_BRIEF')`、`feature('KAIROS_CHANNELS')`
- **远程开关**:GrowthBook `tengu_kairos`、`tengu_onyx_plover`(Dream 阈值配置)
---
### 3. [ULTRAPLAN — 云端深度规划](docs/03-ultraplan.md)
> 源码位置:`src/commands/ultraplan.tsx`、`src/utils/ultraplan/` · [查看完整分析 →](docs/03-ultraplan.md)
把难题甩给云端 Opus 独立研究最长 30 分钟。
- **流程**:`/ultraplan ` → 创建远程 CCR 会话 → Opus 模型独立研究 → 后台轮询等待(30 分钟超时)→ 浏览器查看/修改方案 → 批准执行或传送回本地
- **关键词触发**:消息中包含 "ultraplan" 自动触发,智能排除引号/路径/标识符中的误触发
- **传送(Teleport)**:`src/utils/teleport.tsx` 实现本地 ↔ 远程会话传输,支持 Git Bundle 打包代码上下文
- **完全内部限定**:`isEnabled: () => "external" === 'ant'`,外部版永远不可用
- **编译开关**:`feature('ULTRAPLAN')`
- **远程开关**:`tengu_ultraplan_model`(控制使用的模型)
---
### 4. [Coordinator — 多 Agent 编排模式](docs/04-coordinator.md)
> 源码位置:`src/coordinator/` · [查看完整分析 →](docs/04-coordinator.md)
主 Claude 变成纯指挥官,Worker 并行执行任务。
- **角色分离**:Coordinator 只有三个工具——派活(Agent)、通信(SendMessage)、停工(Shutdown)
- **Worker 机制**:Worker 在独立子进程中运行,各自拥有完整工具集
- **核心铁律**:系统提示中明确规定"禁止甩锅式委派"——不能把不清楚的需求直接丢给 Worker
- **任务追踪**:基于文件的共享任务列表(`~/.claude/tasks/`),Coordinator 和 Worker 共同读写
- **编译开关**:`feature('COORDINATOR_MODE')`
- **环境变量**:`CLAUDE_CODE_COORDINATOR_MODE`
---
### 5. [26+ 隐藏命令 & 秘密开关](docs/05-hidden-commands.md)
> 源码位置:`src/commands.ts`、`src/commands/` · [查看完整分析 →](docs/05-hidden-commands.md)
#### Feature-gated 命令(编译开关控制)
| 命令 | 功能 | 开关 |
|------|------|------|
| `/buddy` | 宠物系统 | `BUDDY` |
| `/proactive` | 主动自主模式 | `PROACTIVE` / `KAIROS` |
| `/assistant` | 助手模式 | `KAIROS` |
| `/brief` | 简报模式 | `KAIROS` / `KAIROS_BRIEF` |
| `/bridge` | 远程控制桥接 | `BRIDGE_MODE` |
| `/voice` | 语音模式 | `VOICE_MODE` |
| `/ultraplan` | 云端深度规划 | `ULTRAPLAN` |
| `/fork` | 子代理分叉 | `FORK_SUBAGENT` |
| `/peers` | 对等通信 | `UDS_INBOX` |
| `/workflows` | 工作流脚本 | `WORKFLOW_SCRIPTS` |
| `/torch` | Torch 功能 | `TORCH` |
| `/force-snip` | 强制历史截断 | `HISTORY_SNIP` |
#### 仅内部用户(`USER_TYPE === 'ant'`)命令
| 命令 | 功能 |
|------|------|
| `/teleport` | 传送会话到远程/本地 |
| `/bughunter` | 内部 Bug 猎人 |
| `/mock-limits` | 模拟速率限制 |
| `/ctx_viz` | 上下文可视化 |
| `/break-cache` | 强制缓存清除 |
| `/ant-trace` | 内部追踪工具 |
| `/good-claude` | 内部反馈 |
| `/agents-platform` | 智能体平台 |
| `/autofix-pr` | 自动修复 PR |
| `/debug-tool-call` | 调试工具调用 |
| `/reset-limits` | 重置速率限制 |
#### 隐藏 CLI 参数
```
--teleport [session] 恢复传送会话
--remote [description] 创建远程会话
--proactive 主动模式
--assistant 助手模式
--brief 简报模式
--remote-control 远程控制
--hard-fail 硬失败模式
--agent-teams 多代理团队
```
---
### 6. [Bridge — 远程遥控终端](docs/06-bridge.md)
> 源码位置:`src/bridge/`(33 个文件) · [查看完整分析 →](docs/06-bridge.md)
从 claude.ai 或手机直接操控本地 CLI。
- **WebSocket 实时连接**:本地 CLI 通过 WebSocket 与 claude.ai 建立双向通道
- **完整远程控制**:远程端可以发送消息、批准权限、查看输出
- **进程间通信**:跨 Claude 会话的消息传递机制
- **状态同步**:`bridgeStatusUtil.ts` 实时同步运行状态
- **权限回调**:`bridgePermissionCallbacks.ts` 远程权限审批
- **编译开关**:`feature('BRIDGE_MODE')`、`feature('DAEMON')`
---
### 7. [50 个编译开关 + 远程门控](docs/07-feature-gates.md)
外部发布版是**阉割版**。Anthropic 通过三层门控控制功能。[查看完整分析 →](docs/07-feature-gates.md)
#### 第一层:编译时开关(`feature()`,约 50 个)
构建时决定代码包含/排除,以下是完整列表:
点击展开全部 50 个编译开关
| 开关 | 说明 |
|------|------|
| `BUDDY` | 宠物伴侣系统 |
| `KAIROS` | 持久助手模式 |
| `KAIROS_BRIEF` | 简报模式 |
| `KAIROS_CHANNELS` | 通道通知 |
| `KAIROS_GITHUB_WEBHOOKS` | GitHub Webhook |
| `ULTRAPLAN` | 云端深度规划 |
| `COORDINATOR_MODE` | 多 Agent 编排 |
| `BRIDGE_MODE` | 远程控制桥接 |
| `VOICE_MODE` | 语音交互 |
| `PROACTIVE` | 主动自主模式 |
| `FORK_SUBAGENT` | 子代理分叉 |
| `DAEMON` | 守护进程模式 |
| `UDS_INBOX` | Unix Socket 收件箱 |
| `WORKFLOW_SCRIPTS` | 工作流脚本 |
| `TORCH` | Torch 功能 |
| `MONITOR_TOOL` | 监控工具 |
| `HISTORY_SNIP` | 历史截断 |
| `ANTI_DISTILLATION_CC` | 反蒸馏保护 |
| `BASH_CLASSIFIER` | Bash 命令分类器 |
| `BG_SESSIONS` | 后台会话 |
| `CACHED_MICROCOMPACT` | 缓存微压缩 |
| `CCR_REMOTE_SETUP` | Web 远程设置 |
| `CHICAGO_MCP` | MCP 扩展(Computer Use) |
| `COMMIT_ATTRIBUTION` | 提交归属标注 |
| `CONNECTOR_TEXT` | 连接器文本 |
| `CONTEXT_COLLAPSE` | 上下文折叠 |
| `COWORKER_TYPE_TELEMETRY` | 协作者遥测 |
| `DOWNLOAD_USER_SETTINGS` | 下载用户设置 |
| `EXPERIMENTAL_SKILL_SEARCH` | 实验性技能搜索 |
| `EXTRACT_MEMORIES` | 自动提取记忆 |
| `FILE_PERSISTENCE` | 文件持久化 |
| `HARD_FAIL` | 硬失败模式 |
| `LODESTONE` | Lodestone 功能 |
| `MCP_SKILLS` | MCP 技能系统 |
| `MEMORY_SHAPE_TELEMETRY` | 记忆形状遥测 |
| `MESSAGE_ACTIONS` | 消息操作 |
| `NATIVE_CLIENT_ATTESTATION` | 客户端证明 |
| `PROMPT_CACHE_BREAK_DETECTION` | 缓存中断检测 |
| `QUICK_SEARCH` | 快速搜索 |
| `REACTIVE_COMPACT` | 响应式压缩 |
| `SLOW_OPERATION_LOGGING` | 慢操作日志 |
| `STREAMLINED_OUTPUT` | 精简输出 |
| `TEAMMEM` | 团队记忆同步 |
| `TEMPLATES` | 模板/分类器 |
| `TERMINAL_PANEL` | 终端面板 |
| `TOKEN_BUDGET` | Token 预算 |
| `TRANSCRIPT_CLASSIFIER` | 转录分类器 |
| `UNATTENDED_RETRY` | 无人值守重试 |
| `UPLOAD_USER_SETTINGS` | 上传用户设置 |
| `BREAK_CACHE_COMMAND` | 缓存清除注入 |
#### 第二层:用户类型(`USER_TYPE`)
- **`ant`**(Anthropic 内部)— 解锁全部功能、20 分钟 GrowthBook 刷新、调试工具、200+ 处专属检查
- **`external`**(外部用户)— 裁剪版,6 小时 GrowthBook 刷新
#### 第三层:GrowthBook 远程 A/B 测试
| 开关 | 控制内容 |
|------|---------|
| `tengu_kairos` | KAIROS 助手模式开关 |
| `tengu_onyx_plover` | 自动做梦阈值(间隔/会话数) |
| `tengu_cobalt_frost` | 语音识别(Nova 3)开关 |
| `tengu_ultraplan_model` | Ultraplan 使用的模型 |
| `tengu_ant_model_override` | 内部用户模型覆盖 |
| `tengu_session_memory` | 会话记忆功能 |
| `tengu_max_version_config` | 自动更新 Kill Switch |
| `tengu_frond_boric` | 数据接收器 Kill Switch |
| `tengu_herring_clock` | 团队记忆路径 |
| `tengu_sm_config` | 会话记忆配置 |
---
## 隐藏环境变量速查
点击展开完整环境变量列表
| 环境变量 | 说明 |
|----------|------|
| `ANTHROPIC_MODEL` | 模型覆盖 |
| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 最大输出 token |
| `CLAUDE_CODE_DISABLE_THINKING` | 禁用思考 |
| `CLAUDE_CODE_PROACTIVE` | 主动模式 |
| `CLAUDE_CODE_COORDINATOR_MODE` | 协调器模式 |
| `CLAUDE_CODE_BRIEF` | 简报模式 |
| `CLAUDE_CODE_USE_BEDROCK` | 使用 AWS Bedrock |
| `CLAUDE_CODE_USE_VERTEX` | 使用 Google Vertex |
| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | 禁用自动记忆 |
| `CLAUDE_CODE_EXTRA_BODY` | API 附加 JSON |
| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 语法高亮主题 |
| `CLAUDE_CODE_IDLE_THRESHOLD_MINUTES` | 空闲阈值(默认 75 分钟) |
| `CLAUDE_INTERNAL_FC_OVERRIDES` | GrowthBook 覆盖(仅 ant) |
---
## 项目结构
```
src/ # 核心源码(1,987 个 TS/TSX)
├── tools/ # 53 个工具(Bash/FileEdit/Agent/MCP...)
├── commands/ # 87 个斜杠命令
├── services/ # API / MCP / analytics / autoDream
├── components/ # 148 个终端 UI 组件(React + Ink)
├── hooks/ # 87 个自定义 Hooks
├── buddy/ # 宠物伴侣系统
├── assistant/ # KAIROS 助手模式
├── coordinator/ # 多 Agent 协调器
├── bridge/ # 远程控制桥接(31 文件)
├── proactive/ # 主动模式
├── vim/ # Vim 模式引擎
├── voice/ # 语音交互
└── ...
shims/ # 原生模块兼容替代
vendor/ # 原生绑定源码
```
---
## 数据来源
- npm 包:[@anthropic-ai/claude-code](https://www.npmjs.com/package/@anthropic-ai/claude-code)
- 还原方式:提取 `cli.js.map` 中的 `sourcesContent`
## 声明
- 源码版权归 [Anthropic](https://www.anthropic.com) 所有
- 仅用于技术研究与学习,请勿用于商业用途
- 如有侵权,请联系删除