Claude Code CLI 功能很强大,但是 Claude 模型成本却不低,而且使用不当还有封号的风险。但是 Gemini 却非常大方,免费用户就可以获得每日免费额度,相当良心。于是我们想办法让 Claude Code 使用 Gemini 模型来编码,而且 gemini-2.5-pro 模型的编码能力也不弱。于是我们可以通过技术手段将两者结合,使用 Claude Code 强大的 CLI 功能,LLM 使用 Gemini,大幅降低 Claude Code 的使用成本。
准备工作
这里要介绍一个重要的项目: claude-worker-proxy。这个项目可以作为一个代理服务器,接收 Claude API 的请求,然后转发到其他的 LLM 服务上,实现 Claude Code CLI 可以使用其他 LLM 的能力。当前只支持 Gemini 和 OpenAI。
这个服务可以一键部署到 Cloudflare Worker 上,方便未来使用。按照官方文档操作即可:
git clone https://github.com/glidea/claude-worker-proxy
cd claude-worker-proxy
npm install
wrangler login # 如果尚未安装:npm i -g wrangler@latest
npm run deploycf
如果没有 Cloudflare 账号,或者不打算将服务暴露在公网上,也可以直接本地启动:
wrangler dev
这样的话 wrangler 就会以 dev server 的形式启动,监听 8787
端口。后续使用只需要将 http://localhost:8787
作为 Claude API 的 base url 即可。
Claude Code 配置的话也很简单,在 ~/.claude/settings.json
中写入以下内容即可:
{
"env": {
"ANTHROPIC_BASE_URL": "https://claude-worker-proxy.xxxx.workers.dev/gemini/https://generativelanguage.googleapis.com/v1beta",
"ANTHROPIC_CUSTOM_HEADERS": "x-api-key: YOUR_KEY",
"ANTHROPIC_MODEL": "gemini-2.5-pro",
"ANTHROPIC_SMALL_FAST_MODEL": "gemini-2.5-flash",
"API_TIMEOUT_MS": "600000"
}
}
之后运行 claude
你将看到类似于以下的输出,就说明配置 OK 了:
$ claude
╭───────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code! │
│ │
│ /help for help, /status for your current setup │
│ │
│ cwd: ************************************ │
│ │
│ ─────────────────────────────────────────────── │
│ │
│ Overrides (via env): │
│ │
│ • API timeout: 6000000ms │
│ • API Base URL: https://claude-worker-proxy.*** │
╰───────────────────────────────────────────────────╯
就说明配置生效了,之后就可以像正常的 Claude Code 一样使用了。
轮询 API Key
如果是免费用户,那么 Gemini 的 API Key 是有额度限制的,恐怕没人希望正在激情编码中被 rate limit 或者 quota exceeded 打断吧?诚然你可以在每次出现这种错误的时候人工替换新的 API Key,但是这样太麻烦了,也不够智能。
于是作者还贴心的开发了另一个项目 One-Balance,可以帮助你轮询多个 API Key,避免因为单个 Key 的额度限制而导致服务不可用的问题,大幅提高我等免费用户的编码体验。
这个项目用到了 Cloudflare AI Gateway 的能力,所以它没办法在本地环境正常运行了,需要使用者注册 Cloudflare 账号并完成部署。部署的过程很简单,按照官方文档操作即可,这里我列出一些要点需要注意的:
- Gemini API Key 的限制是基于 项目 (Project) 的,不是基于单个 Key 的。所以当你创建多个 API Key 用于轮询的时候,你必须先创建多个 项目,给每个项目创建 Gemini API Key,这点很重要
- 部署 One-Balance 的时候需要你提供一个
AUTH_KEY
环境变量,这个环境变量的作用是访问你的服务的 密码,你可以随意设置,这个 KEY 支持针对每个 provider 或每个 model 设置单独的 KEY,如果需要细分权限的话,按照官方文档的说明使用特殊的格式即可。但是注意,只有 无限制 Key 才能访问 Web UI
部署完成后,通过访问 Web UI 就可以添加 API Key 了,访问首页(可以在 wrangler 终端输出找到,或者在 Cloudflare 控制台查看),输入 AUTH_TOKEN
登录之后,你应该可以看到如下页面:
在对应的 provider 添加多个 API Key 就行了,对于 Gemini 应该在 google-ai-studio
的配置中添加。
到此为止就完成了 one-balance 的配置工作,只需要将需要使用 API 的时候指向这个 gateway 即可,例如对于 gemini cli,可以通过这种方式设置:
GOOGLE_GEMINI_BASE_URL=https://<one-balance-worker-url>/api/google-ai-studio GEMINI_API_KEY=<AUTH_TOKEN> gemini
记得在 /auth
设置中将认证选项设置为 2. Use Gemini API Key
claude-worker-proxy 结合 one-balance
为了让 claude code 使用更加流畅,我们完全可以将这两个服务结合起来使用,让激情编码永不停歇。
但是截止发稿时,官方文档并没有示例说明如何同时结合使用这两个服务,经过我一番摸索,总算是找对了方法。
将 ~/.claude/settings.json
中的 ANTHROPIC_BASE_URL
修改为:
https://claude-worker-proxy.<your_name>.workers.dev/gemini/https://one-balance.<your_name>.workers.dev/api/google-ai-studio/v1beta
同时将 ANTHROPIC_CUSTOM_HEADERS
修改为:
x-api-key: <AUTH_KEY>
即可。
特别注意最后的 /v1beta
这个端点,当时被坑了好久,因为 one-balance 的官方示例使用的都是 /v1
端点,这个端点是不支持 tools
调用的,改为 /v1beta
才行,这个端点是支持 tools 调用的,可以给 claude code 使用。
提升国内使用体验
*.workers.dev
在国内的访问速度并不理想(大部分情况下访问受限),要解决这个问题,除了动用一些技术手段之外,还可以通过绑定自定义域名来解决。
只需要在 Cloudflare 控制台中,找到 Workers
—> Workers 和 Pages
—> 你的 worker
—> 设置
—> 域和路由
,然后绑定一个你自己的域名即可。
关于如何将自己的域名在 Cloudflare 上使用,我们曾经在 出海技术人的“全能基础设施套装” —— 存储篇 提到过,感兴趣的朋友可以参考。
小结
通过 Claude-Worker-Proxy 和 One-Balance,我们成功把 Claude Code 的 CLI 体验与 Gemini 的高性价比能力结合了起来。在保证流畅编码体验的同时,也最大化利用了 Gemini 的免费额度。对于热衷 Vibe Coding 的开发者来说,这是一个既实用又经济的解决方案,助力我们更高效地写代码。