ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Claude Code Haha 快速开始指南:用 Bun 配 TaoToken 统一 Key 跑通 Anthropic 兼容 API

Claude Code Haha 快速开始指南:用 Bun 配 TaoToken 统一 Key 跑通 Anthropic 兼容 API 1. 为什么 Claude Code Haha 首次上手总卡在 Key 和端点上Claude Code Haha 是一个基于 Anthropic Messages API 协议构建的终端编码助手它把「对话式改代码」这件事搬进了命令行你在项目目录里敲一句自然语言它就能读文件、改文件、跑命令。适合谁适合已经习惯终端工作流、又想让 AI 直接动手改仓库的开发者。它本身不绑定某一家模型服务只要对端说 Anthropic 协议它就能连。问题也恰恰出在这里。第一次上手的人十个里有八个会卡在同一类报错上401 Unauthorized、Connection error、model not found。原因通常不是代码写错了而是三件事没对齐——Bun 没装对、API Key 没填对、Anthropic 兼容端点没配对。Claude Code Haha 通过环境变量读取ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN这两个值一旦有一个是错的请求就会在握手阶段直接失败而终端里给出的提示往往很含糊。我这篇就聚焦这个首次上手场景用 Bun 作为运行时把 TaoToken 的统一 Key 接进 Claude Code Haha走 Anthropic 兼容端点十分钟内跑通第一个请求。中间会给出可以直接复制的settings.json骨架、Bun 启动命令以及一次真实的对话请求验证。热词里提到的 LiteLLM 我也会讲清楚它和直连的区别避免你多绕一层代理。先说结论如果你只是想快速跑通不需要 LiteLLM。TaoToken 本身就提供 Anthropic 兼容端点Claude Code Haha 可以直接连少一层转换就少一类报错。LiteLLM 适合你手里已经有 OpenAI、DeepSeek、Ollama 这些非 Anthropic 协议模型、又想让它们被 Claude Code Haha 调用的情况。两条路我都会给配置但主线走直连。2. 前置准备Bun、TaoToken 统一 Key 与 Anthropic 兼容端点2.1 安装 Bun 运行时Claude Code Haha 官方推荐用 Bun 跑原因是它启动快、原生支持 TypeScript省去编译步骤。macOS 和 Linux 通用一条命令curl -fsSL https://bun.sh/install | bashmacOS 如果你习惯 Homebrew也可以brew install bunWindows 用 PowerShellpowershell -c irm bun.sh/install.ps1 | iex精简版 Linux 镜像有时缺unzip安装脚本会报错补一下即可apt update apt install -y unzip装完验证版本能打印出版本号就说明运行时没问题bun --version2.2 拿到 TaoToken 统一 KeyTaoToken 的核心价值是「一个 Key 走多个模型通道」你不用为每个模型单独申请和切换密钥。进入控制台创建 API Key复制那串以sk-开头的字符串。这个 Key 就是后面ANTHROPIC_AUTH_TOKEN要填的值。创建入口在控制台的 API Keys 页面建议单独建一个给 Claude Code Haha 用的 Key方便后续按项目排查用量。地址是 https://taotoken.net/api-keys 登录后点新建即可。2.3 确认 Anthropic 兼容端点TaoToken 的 API 根地址是https://taotoken.net/api。Claude Code Haha 走 Anthropic 协议时请求会打到/v1/messages所以ANTHROPIC_BASE_URL填根地址即可客户端会自己拼路径。这一点很关键很多人把完整路径https://taotoken.net/api/v1/messages填进BASE_URL结果变成/v1/messages/v1/messages直接 404。注意ANTHROPIC_BASE_URL只填到/api不要带/v1/messages。2.4 克隆并初始化项目git clone claude-code-haha 仓库地址 cd claude-code-haha bun install cp .env.example .envbun install会把依赖装好cp那步是生成环境变量文件。接下来我们不用.env做主配置而是用settings.json因为它的优先级更清晰也方便你多项目复用。3. 可复制配置settings.json 骨架与 Bun 启动命令3.1 写 ~/.claude/settings.jsonClaude Code Haha 会读取用户目录下的~/.claude/settings.json。直接复制下面这份骨架把sk-你的Key换成你自己的{ env: { ANTHROPIC_AUTH_TOKEN: sk-你的Key, ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_MODEL: claude-sonnet-4-5, ANTHROPIC_DEFAULT_SONNET_MODEL: claude-sonnet-4-5, ANTHROPIC_DEFAULT_HAIKU_MODEL: claude-haiku-4-5, ANTHROPIC_DEFAULT_OPUS_MODEL: claude-opus-4-5, API_TIMEOUT_MS: 3000000, DISABLE_TELEMETRY: 1, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1 } }逐项说明一下避免你照抄却不知道在改什么ANTHROPIC_AUTH_TOKEN走的是Authorization: Bearer头这是 Claude Code Haha 和 Anthropic 兼容端点通信的推荐方式。ANTHROPIC_BASE_URL就是上面强调的根地址。三个DEFAULT_*_MODEL分别对应 Sonnet、Haiku、Opus 三档Claude Code Haha 会根据任务复杂度自动挑一档你统一填成同一个模型也行但分开填更贴近它的设计意图。API_TIMEOUT_MS设成 3000000 是给长任务留余量编码场景里模型可能要读很多文件再回答超时太短会中途断掉。DISABLE_TELEMETRY和CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC关掉非必要遥测请求既减少干扰也避免多余流量。3.2 用 .env 作为备选如果你不想动全局配置也可以在项目根目录的.env里写同样的键值ANTHROPIC_AUTH_TOKENsk-你的Key ANTHROPIC_BASE_URLhttps://taotoken.net/api ANTHROPIC_MODELclaude-sonnet-4-5 API_TIMEOUT_MS3000000 DISABLE_TELEMETRY1 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC1两种方式二选一即可同时存在时以settings.json为准别两边填不同的 Key否则排查起来很痛苦。3.3 Bun 启动命令macOS / Linux 下交互式 TUI 界面直接跑./bin/claude-haha想无头静默执行、直接传提示词./bin/claude-haha -p 帮我看看这个仓库的入口文件在哪Windows 下用 PowerShell 或 CMDbun --env-file.env ./src/entrypoints/cli.tsxGit Bash 里则和 macOS 一样用./bin/claude-haha。如果 TUI 界面因为终端兼容问题报错可以启用纯文本恢复模式兜底CLAUDE_CODE_FORCE_RECOVERY_CLI1 ./bin/claude-haha3.4 可选把命令加进 PATH想在任何目录直接调用把 bin 目录加进环境变量export PATH$HOME/path/to/claude-code-haha/bin:$PATH写进~/.bashrc或~/.zshrc就能持久生效。3.5 如果你确实需要 LiteLLM前面说过直连是主线。但如果你手里只有 OpenAI、DeepSeek 或本地 Ollama 模型想让 Claude Code Haha 调用它们就需要 LiteLLM 做协议转换。链路是这样的claude-code-haha ──Anthropic协议──▶ LiteLLM Proxy ──OpenAI协议──▶ 目标模型 API安装pip install litellm[proxy]写一份litellm_config.yaml比如接 DeepSeekmodel_list: - model_name: deepseek-chat litellm_params: model: deepseek/deepseek-chat api_key: os.environ/DEEPSEEK_API_KEY api_base: https://api.deepseek.com litellm_settings: drop_params: true use_chat_completions_url_for_anthropic_messages: truedrop_params: true是必须的它会把 Anthropic 专有的thinking、cache_control等参数丢掉否则目标模型会直接报错。use_chat_completions_url_for_anthropic_messages: true解决 LiteLLM 找不到/v1/responses的报错。启动代理export DEEPSEEK_API_KEYsk-xxx litellm --config litellm_config.yaml --port 4000然后把settings.json里的ANTHROPIC_BASE_URL改成http://localhost:4000ANTHROPIC_AUTH_TOKEN随便填一个非空值LiteLLM 不校验它模型名改成deepseek-chat即可。这条路能用但多一层代理就多一类故障点能用直连就别绕。4. 验证请求一次对话确认统一 Key 通道生效配置写完别急着开 TUI先用无头模式发一条最简单的请求确认通道是通的./bin/claude-haha -p 用一句话说明这个项目是做什么的如果配置正确几秒内终端会返回模型生成的回答。这一步能过说明 Bun 运行时、Key、端点、模型名四者全部对齐。想更直接地验证 Anthropic 兼容端点本身可以用 curl 打一发curl https://taotoken.net/api/v1/messages \ -H Authorization: Bearer sk-你的Key \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-5, max_tokens: 128, messages: [ {role: user, content: 只回复两个字通了} ] }返回体里能看到content数组和usage字段就说明统一 Key 通道完全生效。这一步的好处是把「客户端配置问题」和「服务端通道问题」彻底分开curl 通了但 Claude Code Haha 不通问题一定在客户端配置curl 就不通问题在 Key 或端点。成功返回大概长这样{ id: msg_xxx, type: message, role: assistant, content: [{type: text, text: 通了}], usage: {input_tokens: 12, output_tokens: 4} }看到usage里有 token 计数说明请求真实打到了模型不是本地缓存或假响应。5. 本篇常见错排查5.1 401 Unauthorized九成是 Key 的问题。先确认ANTHROPIC_AUTH_TOKEN填的是 TaoToken 控制台里那串sk-开头的 Key没有多余空格或换行。再确认你用的是AUTH_TOKEN而不是API_KEY——前者走Authorization: Bearer后者走x-api-keyClaude Code Haha 和 TaoToken 的兼容端点推荐前者。如果两个都填了可能互相覆盖删掉ANTHROPIC_API_KEY只留AUTH_TOKEN。5.2 Connection error / 请求超时先 curl 一下https://taotoken.net/api看网络是否可达。如果 curl 通但客户端不通检查ANTHROPIC_BASE_URL是不是多写了/v1/messages。另一个常见原因是API_TIMEOUT_MS太短长任务被掐断按上面的骨架设成 3000000。5.3 model not found模型名拼错了或者你填的模型在当前 Key 的可用范围内不存在。把ANTHROPIC_MODEL和三个DEFAULT_*_MODEL统一改成同一个确认可用的模型名再试跑通后再拆开分档。5.4 Bun 命令找不到bun --version报 command not found说明安装后 PATH 没刷新。重开一个终端或者手动 source 一下 shell 配置。Windows 下如果bun在 PowerShell 里不认检查安装脚本是否把路径写进了用户环境变量。5.5 TUI 界面花屏或报错终端兼容问题用恢复模式兜底CLAUDE_CODE_FORCE_RECOVERY_CLI1 ./bin/claude-haha纯文本模式功能一样只是没有交互式界面。5.6 LiteLLM 报 /v1/responses 找不到在litellm_config.yaml的litellm_settings里加上use_chat_completions_url_for_anthropic_messages: true重启代理。5.7 工具调用行为异常第三方模型对tool_use的兼容程度不一LiteLLM 会把它转成function_calling复杂场景下容易出错。如果发现 Claude Code Haha 改文件的行为不符合预期优先换回直连的 Anthropic 协议模型或者换用工具调用能力更强的模型。6. 跑通之后把统一 Key 用顺的几条经验第一个请求跑通只是起点。实际用下来有几个习惯能让你少踩坑。把settings.json里的模型名和你在 TaoToken 控制台看到的可用模型对齐别凭记忆填给 Claude Code Haha 单独建一个 Key用量和排障都清爽长任务前先确认API_TIMEOUT_MS够大编码场景动辄几分钟超时中断很打断思路。如果你打算长期在终端里用 AI 改代码、跑 Agent 流程可以了解一下 Coding Plan它把常用模型的调用额度打包比按次计费更适合高频使用https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite想先在网页里验证某个模型是否可用、对比不同模型的回答质量用模型对话页面最直接https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite接入过程中如果遇到协议层面的细节问题接入文档里有完整的端点和参数说明https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite需要新建或管理 Key控制台入口在这里https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite官网首页https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content
返回列表