技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

antigravity-claude-proxy:把 IDE 里的模型额度,接进命令行工作流

项目背景与痛点

Antigravity 是 Google 推出的 agent-first IDE,它内置的模型池里既有 Gemini 3 系列,也有 Claude Sonnet / Opus 这类一线编程模型,并且给开发者提供了相当慷慨的调用额度。问题在于,这些模型被牢牢锁在 IDE 的 GUI 里:客户端走的是私有 RPC,鉴权绑定 Google 账号与设备会话,没有一份公开、稳定的 API 契约。

另一边,Claude Code 已经成为终端里最强的 agent 框架之一,OpenClaw(Clawdbot)也在个人助理与自动化场景里快速铺开。两者都习惯说 Anthropic Messages API 的"方言",但真要用起来,要么买订阅,要么按 token 付费,成本并不低。

于是缺口就很清楚了:一个协议适配层。antigravity-claude-proxy 在本地起一个 HTTP 服务,对外讲 Anthropic 的标准协议,对内把请求翻译成 Antigravity 上游能听懂的形式,再把流式响应翻译回来。对 Claude Code 来说,它只是一个 ANTHROPIC_BASE_URL 指向 localhost 的普通后端;对 OpenClaw 来说,它是一个可插拔的模型网关。

核心技术揭秘

这个项目的代码体量大概率不大,但工程密度不低。它的价值几乎全部集中在"翻译"两个字上,可以拆成四层来看。

graph TD A[Claude Code / OpenClaw] -->|"Anthropic Messages API"| B[本地代理 HTTP 服务] B --> C{"路由分发"} C -->|"Messages 请求"| D[请求翻译层] C -->|"模型列表"| E[模型别名表] D --> F[凭据管理<br/>OAuth Token 刷新] F --> G[上游传输<br/>Antigravity 后端] G --> H[流式响应解析] H --> I[SSE 事件重构] I --> J[Anthropic 事件流回写] J --> A

第一层是凭据复用。 代理不会让你重新登录一遍,而是读取本地 Antigravity 客户端已经落盘的 OAuth 凭据(access token + refresh token),在内存里维护有效期,临近过期就静默刷新。这种做法比模拟完整登录流程更克制:请求特征更接近真实客户端,也避开了验证码、设备指纹这类麻烦。代价是它强依赖客户端的存储路径与凭据格式,上游一变,代理就得跟着改。

第二层是协议方言的双向映射。 Anthropic 的 content 是 block 数组——text、image、tool_use、tool_result、thinking;Gemini 侧则是 parts——文本、inlineData、functionCall、functionResponse。角色也要换:assistant 对应 model,工具执行结果要以 functionResponse 的形式回填成一轮 user 消息。这里是整个项目最容易出 bug 的地方,尤其是多轮 tool-use 循环中 tool call id 的配对,一旦错位,模型就会开始"幻觉调用"。

第三层是流式改造,也是最见功力的部分。 Anthropic 要求严格的事件序列:message_start → content_block_start → 若干 content_block_delta → content_block_stop → message_delta → message_stop。而上游返回的是自己的 chunk 流,两者在分片粒度、字段命名、结束信号上都不一致。重构器必须自己维护状态机:文本增量可以直接转发,但工具调用的 JSON 参数是分片到达的,必须缓冲到块结束才能拼出完整对象,否则客户端会收到一堆残缺的 input_json_delta。

第四层是模型别名与错误映射。 claude-sonnet-4-5、gemini-3-pro 这些对外的名字要映射到上游内部 id,并通过 /v1/models 暴露给客户端做探测。上游的配额耗尽、并发拒绝,需要翻译成 Anthropic 语义下的 overloaded_error,再配合指数退避,否则 Claude Code 的重试逻辑会直接失灵。

功能亮点与差异

和 LiteLLM、one-api 这类通用网关相比,它走的不是"聚合多家 API Key"的路子,而是直接复用 IDE 的既有额度——你不需要准备任何 key,装好 Antigravity、跑起代理就行。这是它最锋利的地方,也是它最脆弱的地方。

和各类抓包逆向脚本相比,它的差异在于暴露的是标准协议面,而不是某个私有端点。Claude Code 完全无感,OpenClaw 也能直接接;同一个端点下同时挂着 Claude 和 Gemini,可以在会话中按模型名切换——长上下文和多模态任务交给 Gemini,复杂代码重构交给 Claude,这种"一代理多模型"的组合挺实用。

应用场景与落地建议

适合:个人开发者的本地编码助手、内网隔离环境下的 agent 实验、对成本敏感的小团队原型验证。它把"IDE 额度"这种闲置资源变成了可编程的生产力。

不适合:任何多租户、对外提供的生产服务。额度属于个人账号,没有 SLA,也没有任何官方背书。

落地时注意几点:一是别把服务暴露到公网,它通常没有鉴权,凭据就在本地内存里;二是并发要收敛,同一账号的配额是共享的,多个 Claude Code 实例同时跑很容易撞限流;三是日志务必脱敏,请求体里全是代码和 token;四是做好"上游接口变更"的心理准备,这类项目天然跟着逆向走,升级节奏不由你控制。

综合评价

优点:定位极其精准,切口小、价值大;协议翻译做得地道,尤其是 SSE 事件重构这一层,说明作者真的啃过 Anthropic 的流式规范;部署轻,一个进程解决问题,对客户端零侵入。

缺点:强依赖非公开接口与本地凭据格式,稳定性不由自己掌握;测试覆盖与文档深度受限于个人项目体量;使用方式处在服务条款的灰色地带,商用风险需自行评估;Gemini 侧的部分能力(如 grounding、多模态细节)未必能完整透传。

一句话总结:它是一层高质量的胶水,把 IDE 里的模型额度翻译成了命令行里的生产力。 工程价值远大于代码行数,但你得接受它天生"易碎"的属性。

关于

GitHub 原始描述(英文)

Proxy that exposes Antigravity provided claude / gemini models, so we can use them in Claude Code and OpenClaw (Clawdbot)

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
5221
价值分
2603
活跃状态
活跃

语言占比

CSS
HTML
JavaScript

Release