-
Notifications
You must be signed in to change notification settings - Fork 5.8k
从0到1完整启动本项目的教程在此! #30
Description
Claude Code Haha — 从 0 到 1 启动指南
本指南记录从零开始搭建并运行 Claude Code Haha 项目的完整步骤,包含环境准备、配置、启动和常见问题排查。
目录
前置要求
| 要求 | 说明 |
|---|---|
| Node.js | 用于通过 npm 安装 Bun |
| npm | Node.js 自带的包管理器 |
| 一个 API Key | 来自支持 Anthropic 兼容协议的服务商 |
| Windows 用户额外需要 | Git for Windows(提供 Git Bash) |
第一步:安装 Bun
本项目基于 Bun 运行时,不是 Node.js。必须先安装。
方法一:通过 npm(推荐)
npm install -g bun安装完成后验证:
bun --version应该输出类似 1.3.11 的版本号。
方法二:各系统原生安装
# macOS / Linux
curl -fsSL https://bun.sh/install | bash# Windows(PowerShell)
powershell -c "irm bun.sh/install.ps1 | iex"安装后注意事项
- 安装完成后需要 重新打开终端 让
bun命令生效 - 如果 Windows 上提示
bun不是内部命令,检查 npm 全局 bin 目录是否在PATH中
第二步:安装项目依赖
进入项目根目录,执行:
bun install这会根据 package.json 安装约 365 个包,通常需要 5-10 秒。
验证
ls node_modules应该看到一堆依赖目录。如果 node_modules 不存在,后续启动会报 Cannot find package 错误。
第三步:配置环境变量
3.1 创建 .env 文件
# 从模板复制
cp .env.example .env3.2 编辑 .env
打开 .env 文件,填入你的 API 提供商配置。以下是几种常见提供商的写法:
方案 A:阿里云 DashScope(通义千问)
ANTHROPIC_AUTH_TOKEN=sk-your-key-here
ANTHROPIC_BASE_URL=https://dashscope.aliyuncs.com/apps/anthropic
ANTHROPIC_MODEL=qwen3.6-plus
ANTHROPIC_DEFAULT_SONNET_MODEL=qwen3.6-plus
ANTHROPIC_DEFAULT_HAIKU_MODEL=qwen3.6-plus
ANTHROPIC_DEFAULT_OPUS_MODEL=qwen3.6-plus
API_TIMEOUT_MS=3000000
DISABLE_TELEMETRY=1
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1方案 B:MiniMax
ANTHROPIC_AUTH_TOKEN=your_token_here
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方案 C:OpenRouter
ANTHROPIC_AUTH_TOKEN=sk-or-v1-your-key-here
ANTHROPIC_BASE_URL=https://openrouter.ai/api
ANTHROPIC_MODEL=openai/gpt-4o
ANTHROPIC_DEFAULT_SONNET_MODEL=openai/gpt-4o
ANTHROPIC_DEFAULT_HAIKU_MODEL=openai/gpt-4o-mini
ANTHROPIC_DEFAULT_OPUS_MODEL=openai/gpt-4o
API_TIMEOUT_MS=3000000
DISABLE_TELEMETRY=1
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1方案 D:通过 LiteLLM 代理使用 OpenAI / DeepSeek
先启动 LiteLLM 代理:
litellm --config litellm_config.yaml --port 4000然后配置:
ANTHROPIC_AUTH_TOKEN=sk-anything
ANTHROPIC_BASE_URL=http://localhost:4000
ANTHROPIC_MODEL=gpt-4o
ANTHROPIC_DEFAULT_SONNET_MODEL=gpt-4o
ANTHROPIC_DEFAULT_HAIKU_MODEL=gpt-4o
ANTHROPIC_DEFAULT_OPUS_MODEL=gpt-4o
API_TIMEOUT_MS=3000000
DISABLE_TELEMETRY=1
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=13.3 环境变量说明
| 变量 | 必填 | 说明 |
|---|---|---|
ANTHROPIC_AUTH_TOKEN |
是 | API Key,通过 Authorization: Bearer 头发送 |
ANTHROPIC_BASE_URL |
是 | API 端点 URL |
ANTHROPIC_MODEL |
是 | 默认使用的模型 ID |
ANTHROPIC_DEFAULT_SONNET_MODEL |
是 | Sonnet 级别模型映射 |
ANTHROPIC_DEFAULT_HAIKU_MODEL |
是 | Haiku 级别模型映射 |
ANTHROPIC_DEFAULT_OPUS_MODEL |
是 | Opus 级别模型映射 |
API_TIMEOUT_MS |
否 | 请求超时,默认 600000(10分钟) |
DISABLE_TELEMETRY |
否 | 设为 1 禁用遥测 |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC |
否 | 设为 1 禁用非必要网络请求 |
3.4 替代配置方式
除了 .env 文件,也可以通过 ~/.claude/settings.json 配置:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-your-key",
"ANTHROPIC_BASE_URL": "https://your-endpoint",
"ANTHROPIC_MODEL": "your-model"
}
}配置优先级:.env 文件 > ~/.claude/settings.json
第四步:启动 TUI
方法一:使用启动脚本(推荐)
Windows 下双击 start-tui.bat,或在终端中运行:
.\start-tui.batmacOS / Linux 下运行:
./bin/claude-haha方法二:直接调用 Bun
bun --env-file=.env ./src/entrypoints/cli.tsx验证启动成功
启动后你应该看到类似这样的 TUI 界面:
┌─────────────────────────────────────────┐
│ Claude Code │
│ │
│ > 在这里输入你的问题... │
└─────────────────────────────────────────┘
如果能看到交互提示符并正常对话,说明启动成功。
快速验证 API 连接
使用 --print 模式做一次无头测试:
bun --env-file=.env ./src/entrypoints/cli.tsx -p "你好,请回复一个简短的测试消息"应该看到模型返回的文字回复。
启动脚本说明
项目提供了一个 start-tui.bat 脚本,简化了启动过程:
@echo off
cd /d "%~dp0"
bun --env-file=.env ./src/entrypoints/cli.tsx %*它做了三件事:
- 切换到脚本所在目录(确保路径正确)
- 自动加载
.env环境变量 - 启动 CLI 主入口
你可以向启动脚本传递参数,例如:
# 指定模型
.\start-tui.bat --model claude-sonnet-4-6
# 无头模式(单次问答)
.\start-tui.bat -p "解释一下这段代码"
# 继续上次对话
.\start-tui.bat -c常见问题排查
Q1:bun: command not found / bun 不是内部或外部命令
原因:Bun 未安装或未加入 PATH。
解决:
# 检查是否已安装
npm list -g bun
# 重新安装
npm install -g bun
# 确认 PATH 包含 npm 全局 bin 目录
npm config get prefix确保 npm config get prefix 输出的路径在你的系统 PATH 环境变量中。
Q2:Cannot find package 'xxx'
原因:依赖未安装。
解决:
bun installQ3:undefined is not an object (evaluating 'usage.input_tokens')
原因:ANTHROPIC_BASE_URL 配置不正确,API 端点返回的不是 Anthropic 协议格式的 JSON(可能是 HTML 页面或其他格式)。
解决:
- 确认
ANTHROPIC_BASE_URL指向兼容 Anthropic/v1/messages接口的端点 - 用 curl 测试端点是否正常响应:
curl -f "$ANTHROPIC_BASE_URL/v1/messages" -X POST \
-H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"test","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}'如果返回 HTML 而非 JSON,说明 URL 配错了。
Q4:启动后出现 TUI 界面,但输入无响应或 Enter 键无效
原因:modifiers-napi native 包缺失,isModifierPressed() 抛出异常。
解决:此问题已在项目中通过 try-catch 容错修复。如果仍然出现,请确保使用项目自带的 stub 文件,不要修改 stubs/ 目录。
Q5:启动直接进入降级 Recovery CLI,没有 TUI 界面
原因:环境变量 CLAUDE_CODE_LOCAL_RECOVERY_CLI 被设为 1。
解决:检查 .env 文件中没有设置该变量,或在命令行中显式清除:
# Windows PowerShell
$env:CLAUDE_CODE_FORCE_RECOVERY_CLI=""; bun --env-file=.env ./src/entrypoints/cli.tsx
# macOS / Linux
CLAUDE_CODE_FORCE_RECOVERY_CLI=0 bun --env-file=.env ./src/entrypoints/cli.tsxQ6:TUI 界面出现后立刻闪退
可能原因:
- API 认证失败,启动时校验失败直接退出
.env文件中的ANTHROPIC_BASE_URL无法访问
解决:
- 先用
--print模式测试 API 是否连通:
bun --env-file=.env ./src/entrypoints/cli.tsx -p "hello"- 如果报错,检查
.env中的 API Key 和 URL 是否正确 - 如果网络需要代理,添加:
HTTPS_PROXY=http://your-proxy:portQ7:Windows 下部分功能不可用(语音输入、Computer Use)
原因:这些功能依赖 macOS 特定的系统 API。
解决:不影响核心 TUI 交互和代码编辑功能,可以正常使用。
Q8:Bun 版本过低报错
原因:项目需要较高版本的 Bun(支持 bun:bundle 等内置模块)。
解决:
bun upgrade快速检查清单
在汇报问题之前,先检查以下项目:
-
bun --version能正常输出版本号 -
node_modules/目录存在且不为空 -
.env文件存在且包含正确的 API 配置 - 用
-p无头模式测试 API 可以正常返回回复 -
start-tui.bat启动后能看到 TUI 输入框
如果以上都通过但仍有问题,尝试删除 node_modules 后重新 bun install:
rm -rf node_modules
bun install