# claude-code-haha **Repository Path**: feed69/claude-code-haha ## Basic Information - **Project Name**: claude-code-haha - **Description**: Claude Code leaked source - locally runnable version - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-01 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Claude Code Haha

中文 | English

基于 Claude Code 泄露源码修复的**本地可运行版本**,支持接入任意 Anthropic 兼容 API(如 MiniMax、OpenRouter 等)。 > 原始泄露源码无法直接运行。本仓库修复了启动链路中的多个阻塞问题,使完整的 Ink TUI 交互界面可以在本地工作。

运行截图

## 功能 - 完整的 Ink TUI 交互界面(与官方 Claude Code 一致) - `--print` 无头模式(脚本/CI 场景) - 支持 MCP 服务器、插件、Skills - 支持自定义 API 端点和模型 - 降级 Recovery CLI 模式 --- ## 架构概览
整体架构
整体架构
请求生命周期
请求生命周期
工具系统
工具系统
多 Agent 架构
多 Agent 架构
终端 UI
终端 UI
权限与安全
权限与安全
服务层
服务层
状态与数据流
状态与数据流
--- ## 快速开始 ### 1. 安装 Bun 本项目运行依赖 [Bun](https://bun.sh)。如果你的电脑还没有安装 Bun,可以先执行下面任一方式: ```bash # macOS / Linux(官方安装脚本) curl -fsSL https://bun.sh/install | bash ``` 如果在精简版 Linux 环境里提示 `unzip is required to install bun`,先安装 `unzip`: ```bash # Ubuntu / Debian apt update && apt install -y unzip ``` ```bash # macOS(Homebrew) brew install bun ``` ```powershell # Windows(PowerShell) powershell -c "irm bun.sh/install.ps1 | iex" ``` 安装完成后,重新打开终端并确认: ```bash bun --version ``` ### 2. 安装项目依赖 ```bash bun install ``` ### 3. 配置环境变量 复制示例文件并填入你的 API Key: ```bash cp .env.example .env ``` 编辑 `.env`: ```env # API 认证(二选一) ANTHROPIC_API_KEY=sk-xxx # 标准 API Key(x-api-key 头) ANTHROPIC_AUTH_TOKEN=sk-xxx # Bearer Token(Authorization 头) # API 端点(可选,默认 Anthropic 官方) ANTHROPIC_BASE_URL=https://api.minimaxi.com/anthropic # 模型配置 ANTHROPIC_MODEL=MiniMax-M2.7-highspeed ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M2.7-highspeed ANTHROPIC_DEFAULT_HAIKU_MODEL=MiniMax-M2.7-highspeed ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M2.7-highspeed # 超时(毫秒) API_TIMEOUT_MS=3000000 # 禁用遥测和非必要网络请求 DISABLE_TELEMETRY=1 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ``` ### 4. 启动 #### macOS / Linux ```bash # 交互 TUI 模式(完整界面) ./bin/claude-haha # 无头模式(单次问答) ./bin/claude-haha -p "your prompt here" # 管道输入 echo "explain this code" | ./bin/claude-haha -p # 查看所有选项 ./bin/claude-haha --help ``` #### Windows > **前置要求**:必须安装 [Git for Windows](https://git-scm.com/download/win)(提供 Git Bash,项目内部 Shell 执行依赖它)。 Windows 下启动脚本 `bin/claude-haha` 是 bash 脚本,无法在 cmd / PowerShell 中直接运行。请使用以下方式: **方式一:PowerShell / cmd 直接调用 Bun(推荐)** ```powershell # 交互 TUI 模式 bun --env-file=.env ./src/entrypoints/cli.tsx # 无头模式 bun --env-file=.env ./src/entrypoints/cli.tsx -p "your prompt here" # 降级 Recovery CLI bun --env-file=.env ./src/localRecoveryCli.ts ``` **方式二:Git Bash 中运行** ```bash # 在 Git Bash 终端中,与 macOS/Linux 用法一致 ./bin/claude-haha ``` > **注意**:部分功能(语音输入、Computer Use、Sandbox 隔离等)在 Windows 上不可用,不影响核心 TUI 交互。 --- ## 环境变量说明 | 变量 | 必填 | 说明 | |------|------|------| | `ANTHROPIC_API_KEY` | 二选一 | API Key,通过 `x-api-key` 头发送 | | `ANTHROPIC_AUTH_TOKEN` | 二选一 | Auth Token,通过 `Authorization: Bearer` 头发送 | | `ANTHROPIC_BASE_URL` | 否 | 自定义 API 端点,默认 Anthropic 官方 | | `ANTHROPIC_MODEL` | 否 | 默认模型 | | `ANTHROPIC_DEFAULT_SONNET_MODEL` | 否 | Sonnet 级别模型映射 | | `ANTHROPIC_DEFAULT_HAIKU_MODEL` | 否 | Haiku 级别模型映射 | | `ANTHROPIC_DEFAULT_OPUS_MODEL` | 否 | Opus 级别模型映射 | | `API_TIMEOUT_MS` | 否 | API 请求超时,默认 600000 (10min) | | `DISABLE_TELEMETRY` | 否 | 设为 `1` 禁用遥测 | | `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | 否 | 设为 `1` 禁用非必要网络请求 | --- ## 降级模式 如果完整 TUI 出现问题,可以使用简化版 readline 交互模式: ```bash CLAUDE_CODE_FORCE_RECOVERY_CLI=1 ./bin/claude-haha ``` --- ## 相对于原始泄露源码的修复 泄露的源码无法直接运行,主要修复了以下问题: | 问题 | 根因 | 修复 | |------|------|------| | TUI 不启动 | 入口脚本把无参数启动路由到了 recovery CLI | 恢复走 `cli.tsx` 完整入口 | | 启动卡死 | `verify` skill 导入缺失的 `.md` 文件,Bun text loader 无限挂起 | 创建 stub `.md` 文件 | | `--print` 卡死 | `filePersistence/types.ts` 缺失 | 创建类型桩文件 | | `--print` 卡死 | `ultraplan/prompt.txt` 缺失 | 创建资源桩文件 | | **Enter 键无响应** | `modifiers-napi` native 包缺失,`isModifierPressed()` 抛异常导致 `handleEnter` 中断,`onSubmit` 永远不执行 | 加 try-catch 容错 | | setup 被跳过 | `preload.ts` 自动设置 `LOCAL_RECOVERY=1` 跳过全部初始化 | 移除默认设置 | --- ## 项目结构 ``` bin/claude-haha # 入口脚本 preload.ts # Bun preload(设置 MACRO 全局变量) .env.example # 环境变量模板 src/ ├── entrypoints/cli.tsx # CLI 主入口 ├── main.tsx # TUI 主逻辑(Commander.js + React/Ink) ├── localRecoveryCli.ts # 降级 Recovery CLI ├── setup.ts # 启动初始化 ├── screens/REPL.tsx # 交互 REPL 界面 ├── ink/ # Ink 终端渲染引擎 ├── components/ # UI 组件 ├── tools/ # Agent 工具(Bash, Edit, Grep 等) ├── commands/ # 斜杠命令(/commit, /review 等) ├── skills/ # Skill 系统 ├── services/ # 服务层(API, MCP, OAuth 等) ├── hooks/ # React hooks └── utils/ # 工具函数 ``` --- ## 技术栈 | 类别 | 技术 | |------|------| | 运行时 | [Bun](https://bun.sh) | | 语言 | TypeScript | | 终端 UI | React + [Ink](https://github.com/vadimdemedes/ink) | | CLI 解析 | Commander.js | | API | Anthropic SDK | | 协议 | MCP, LSP | --- ## Disclaimer 本仓库基于 2026-03-31 从 Anthropic npm registry 泄露的 Claude Code 源码。所有原始源码版权归 [Anthropic](https://www.anthropic.com) 所有。仅供学习和研究用途。