# Claude Code Haha 运行教程

> 本教程详细介绍如何在 Windows 环境下运行 Claude Code Haha。

## 目录

1. [前置要求](#1-前置要求)
2. [安装 Bun 运行时](#2-安装-bun-运行时)
3. [克隆与依赖安装](#3-克隆与依赖安装)
4. [环境配置](#4-环境配置)
5. [运行方式](#5-运行方式)
6. [高级配置](#6-高级配置)
7. [常见问题](#7-常见问题)

---

## 1. 前置要求

### 系统要求

| 项目 | 要求 |
|------|------|
| 操作系统 | Windows 10/11 (推荐) |
| 终端 | PowerShell 5.1+ 或 Windows Terminal |
| Git | Git for Windows (用于 Shell 命令执行) |
| 网络 | 能够访问你的 API 端点 |

### 必备软件

1. **Git for Windows**
   - 下载地址：https://git-scm.com/download/win
   - 安装时选择 "Use Git from Bash"

2. **PowerShell 7+**（可选但推荐）
   - 下载地址：https://github.com/PowerShell/PowerShell/releases
   - 项目已配置 PowerShell 7.5.4 地址：D:\PowerShell\PowerShell-7.5.4

---

## 2. 安装 Bun 运行时

### 方法一：官方脚本（推荐）

在 PowerShell 中执行：

```powershell
powershell -c "irm bun.sh/install.ps1 | iex"
```

### 方法二：Scoop 安装

```powershell
scoop install bun
```

### 验证安装

```powershell
bun --version
```

应显示类似 `Bun v1.x.x` 的版本信息。

---

## 3. 克隆与依赖安装

### 克隆项目

```powershell
git clone <仓库地址> claude-code-haha
cd claude-code-haha
```

### 安装依赖

```powershell
bun install
```

---

## 4. 环境配置

### 4.1 复制环境变量模板

```powershell
cp .env.example .env
```

### 4.2 编辑 .env 文件

使用文本编辑器打开 `.env` 文件，配置以下内容：

```env
# ====================
# API 认证配置（必填）
# ====================

# 方式一：使用 API Key（通过 x-api-key 头发送）
ANTHROPIC_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx

# 方式二：使用 Auth Token（通过 Authorization: Bearer 头发送）
# ANTHROPIC_AUTH_TOKEN=sk-xxxxxxxxxxxxxxxxxxxxxxxx

# ====================
# API 端点配置（必填）
# ====================

# Anthropic 官方端点
# ANTHROPIC_BASE_URL=https://api.anthropic.com

# MiniMax 端点（示例）
ANTHROPIC_BASE_URL=https://api.minimaxi.com/anthropic

# OpenRouter 端点（示例）
# ANTHROPIC_BASE_URL=https://openrouter.ai/api/v1

# ====================
# 模型配置
# ====================

# 默认模型
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 请求超时（毫秒），默认 10 分钟
API_TIMEOUT_MS=3000000

# 禁用遥测（推荐设为 1）
DISABLE_TELEMETRY=1

# 禁用非必要网络请求（推荐设为 1）
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
```

### 4.3 配置说明

#### API 端点兼容性

Claude Code Haha 支持任何 Anthropic 兼容 API，以下是常用配置：

| 服务 | BASE_URL | 模型示例 |
|------|----------|----------|
| Anthropic 官方 | `https://api.anthropic.com` | claude-sonnet-4-5 |
| MiniMax | `https://api.minimaxi.com/anthropic` | MiniMax-M2.7-highspeed |
| OpenRouter | `https://openrouter.ai/api/v1` | anthropic/claude-3.5-sonnet |
| Groq | `https://api.groq.com/openai/v1` | llama-3.1-70b-versatile |
| AWS Bedrock | （使用 AWS SDK） | Claude 3 系列 |

#### 认证方式

| 方式 | 环境变量 | 说明 |
|------|----------|------|
| API Key | `ANTHROPIC_API_KEY` | 标准方式，通过 `x-api-key` 头发送 |
| Bearer Token | `ANTHROPIC_AUTH_TOKEN` | 通过 `Authorization: Bearer` 头发送 |

---

## 5. 运行方式

### 5.1 方式一：PowerShell 直接运行（推荐）

#### 交互模式（完整 TUI）

```powershell
bun --env-file=.env ./src/entrypoints/cli.tsx
```

#### 无头模式（单次问答）

```powershell
bun --env-file=.env ./src/entrypoints/cli.tsx -p "解释这段代码的作用"
```

#### 管道输入模式

```powershell
echo "帮我写一个 Hello World" | bun --env-file=.env ./src/entrypoints/cli.tsx -p
```

#### 查看帮助

```powershell
bun --env-file=.env ./src/entrypoints/cli.tsx --help
```

### 5.2 方式二：使用启动脚本（需 Git Bash）

如果你使用 Git Bash 或 MSYS2 终端：

```bash
# 交互模式
./bin/claude-haha

# 无头模式
./bin/claude-haha -p "your prompt here"
```

> ⚠️ 注意：Windows 原生终端（cmd/PowerShell）无法直接运行 bash 脚本。

### 5.3 方式三：降级 Recovery CLI 模式

如果完整 TUI 出现问题，可以使用简化版：

```powershell
bun --env-file=.env ./src/localRecoveryCli.ts
```

或设置环境变量：

```powershell
$env:CLAUDE_CODE_FORCE_RECOVERY_CLI="1"
bun --env-file=.env ./src/entrypoints/cli.tsx
```

---

## 6. 高级配置

### 6.1 使用 Windows 原生路径

如果你希望在 Windows 路径下工作：

```powershell
# 设置工作目录
cd D:\Projects\my-project

# 运行 Claude Code
bun --env-file=.env ./src/entrypoints/cli.tsx
```

### 6.2 多会话支持

Claude Code 支持多会话管理：

```powershell
# 查看当前会话
./bin/claude-haha session list

# 切换会话
./bin/claude-haha session switch <session-id>

# 新建会话
./bin/claude-haha session new
```

### 6.3 MCP 服务器配置

Claude Code 支持 MCP (Model Context Protocol) 服务器：

```powershell
# 查看 MCP 配置
./bin/claude-haha mcp list

# 添加 MCP 服务器
./bin/claude-haha mcp add <server-name> <command> [args...]
```

### 6.4 自定义快捷键

编辑 `~/.claude/settings.json`（用户配置目录）：

```json
{
  "keybindings": {
    "abort": "Ctrl+C",
    "scrollUp": "PageUp",
    "scrollDown": "PageDown"
  }
}
```

### 6.5 代理配置

如果需要通过代理访问 API：

```env
# HTTP 代理
HTTP_PROXY=http://proxy.example.com:8080
HTTPS_PROXY=http://proxy.example.com:8080

# 或者在 .env 中设置
ANTHROPIC_BASE_URL=http://your-proxy/anthropic/v1
```

### 6.6 日志与调试

```powershell
# 启用调试日志
$env:CLAUDE_CODE_DEBUG="1"

# 查看详细错误
bun --env-file=.env ./src/entrypoints/cli.tsx 2>&1 | tee debug.log
```

---

## 7. 常见问题

### Q1: 启动后界面卡住不动

**解决方法：**

1. 检查 API Key 是否正确配置
2. 检查网络连接是否正常
3. 尝试使用降级模式：

```powershell
$env:CLAUDE_CODE_FORCE_RECOVERY_CLI="1"
bun --env-file=.env ./src/entrypoints/cli.tsx
```

### Q2: Enter 键无响应

**原因：** `modifiers-napi` 原生模块缺失

**解决方法：**
```powershell
# 确保使用较新版本的 Bun
bun upgrade
```

### Q3: API 请求超时

**解决方法：** 增加超时时间

```env
API_TIMEOUT_MS=600000  # 10 分钟
```

### Q4: 中文显示乱码

**解决方法：** 确保终端编码为 UTF-8

```powershell
# PowerShell 设置
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

# 或使用 Windows Terminal（推荐）
```

### Q5: 权限被拒绝（Windows）

**解决方法：** 以管理员身份运行终端，或修改项目目录权限

```powershell
icacls . /grant Everyone:F /t
```

### Q6: 无法找到 Bun

**解决方法：** 确保 Bun 已正确安装并添加到 PATH

```powershell
# 检查 Bun 路径
where bun

# 如果找不到，重新安装
powershell -c "irm bun.sh/install.ps1 | iex"
```

### Q7: 工具执行被拒绝

Claude Code 默认会询问权限来执行危险操作（如删除文件、执行命令）。

**解决方法：**
- 在提示时输入 `y` 确认
- 或设置自动批准规则（谨慎使用）：

```env
CLAUDE_CODE_ALLOW_DANGEROUS_OPERATIONS=1
```

---

## 快速参考

### 常用命令

| 命令 | 说明 |
|------|------|
| `bun --env-file=.env ./src/entrypoints/cli.tsx` | 交互模式 |
| `bun --env-file=.env ./src/entrypoints/cli.tsx -p "prompt"` | 无头模式 |
| `bun --env-file=.env ./src/entrypoints/cli.tsx --version` | 查看版本 |
| `bun --env-file=.env ./src/entrypoints/cli.tsx --help` | 查看帮助 |

### 环境变量速查

| 变量 | 必填 | 默认值 | 说明 |
|------|------|--------|------|
| `ANTHROPIC_API_KEY` | 是* | - | API Key |
| `ANTHROPIC_AUTH_TOKEN` | 是* | - | Auth Token（二选一） |
| `ANTHROPIC_BASE_URL` | 是 | api.anthropic.com | API 端点 |
| `ANTHROPIC_MODEL` | 否 | claude-sonnet-4-20250514 | 默认模型 |
| `DISABLE_TELEMETRY` | 否 | 0 | 设为 1 禁用遥测 |

---

*文档版本：1.0.0*
*最后更新：2026-04-02*
