Skip to content

About

全网首发260619:反重力Antigravity CLI 接入第三方中转站。绕过 Google OAuth,将 agy 请求桥接到任意 Gemini 兼容 API(如 AICodeMirror)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

全网首发:Antigravity CLI 接入第三方中转站

Google 的反重力(Antigravity)CLI 需要 OAuth 登录且强依赖 Google 服务器。本方案通过本地反向代理,将 agy 的所有 API 请求劫持到第三方中转站(如 AICodeMirror),同时绕过 Google OAuth 登录,无需 GPU 翻墙,无需 Google 账号,开箱即用。

核心原理

┌──────────────┐      CLOUD_CODE_URL        ┌─────────────────────┐
│  agy CLI     │ ──────────────────────────> │  translator_proxy   │
│  (Antigravity│ <────────────────────────── │  (本地代理 :18896)   │
│   CLI 1.0.9) │                             │                     │
└──────────────┘                             │  Mock 端点:          │
       │                                      │  loadCodeAssist     │
       │  OAuth Token                         │  fetchAvailable...  │
       │  (macOS 钥匙串)                       │  fetchUserInfo      │
       │                                      │  listExperiments    │
       ▼                                      │  ...                │
┌──────────────┐                             │                     │
│ macOS 钥匙串  │                             │  转发端点:           │
│ 假 token     │                             │  generateContent    │──> AICodeMirror
│ (2099年过期) │                             │  streamGenerate...  │    Gemini API
└──────────────┘                             └─────────────────────┘
  • Bootstrap 端点(loadCodeAssist、fetchAvailableModels 等)→ 本地 JSON mock,秒返
  • 生成端点(streamGenerateContent)→ 转发到中转站 Gemini API
  • OAuth 验证 → macOS 钥匙串存储假 token,Google 验证软失败,agy 继续运行

快速开始

1. 注册中转站

以 AICodeMirror 为例:https://www.aicodemirror.com/register?invitecode=HM74RP

注册后在后台获取 API Key(格式 sk-ant-api03-...)。

2. 安装 agy CLI

# 安装 agy(如已安装跳过)
# 参考 Google 官方文档安装 Antigravity CLI

3. 部署代理

cd agy--jump
export GEMINI_API_KEY="sk-ant-api03-你的AICodeMirror密钥"
python3 translator_proxy.py

代理默认监听 127.0.0.1:18896,可通过 AGY_PROXY_PORT 环境变量修改。

4. 绕过登录(首次需执行)

agy 启动时会检查 macOS 钥匙串中的 Google OAuth token。我们注入一个假 token:

# 删除旧 token(如有)
security delete-generic-password -s gemini -a antigravity 2>/dev/null

# 生成并写入假 token(过期时间 2099 年)
python3 -c "
import json, base64
fake = {
    'token': {
        'access_token': 'ya29.fake_bypass',
        'token_type': 'Bearer',
        'refresh_token': '1//fake',
        'expiry': '2099-12-31T23:59:59+08:00'
    },
    'auth_method': 'consumer'
}
val = 'go-keyring-base64:' + base64.b64encode(json.dumps(fake).encode()).decode()
with open('/tmp/agy_token.txt', 'w') as f: f.write(val)
" && security add-generic-password -s gemini -a antigravity -w "$(cat /tmp/agy_token.txt)" -U && rm /tmp/agy_token.txt

# 验证写入
security find-generic-password -s gemini -a antigravity -w | head -c 40

绕过机制:agy 读到假 token 后向 Google 的 userinfo 端点发起验证,Google 返回 401。agy 对此是软失败——仅弹出 Eligibility Check failed: 401 警告,继续正常运行。

5. 启动 agy

CLOUD_CODE_URL="http://127.0.0.1:18896" agy

看到 Eligibility Check failed: 401 Unauthorized 是正常的,忽略即可。

效果展示

agy 模型列表与对话

agy 接入中转站效果

模型配置

代理预设显示 3 个模型,由 agentModelSorts 过滤:

TUI 显示 模型 ID 中转站对应
Gemini 3.5 Flash gemini-3.5-flash gemini-3.5-flash
Gemini 3.1 Pro Preview gemini-3.1-pro-preview gemini-3.1-pro-preview
Gemini 3 Flash Preview gemini-3-flash-preview gemini-3-flash-preview

模型切换后,代理从 setUserSettings 请求中捕获用户选择,转发到中转站对应模型。

自定义模型列表:编辑 translator_proxy.py 中的三处配置:

# 1. fetchAvailableModels 的显示列表(fam_data.json 中的 agentModelSorts)
# 2. loadCodeAssist 的模型配置(LCA_JSON)
# 3. 中转站模型映射(MODEL_MAP)

文件清单

文件 说明
translator_proxy.py 核心代理,HTTP 服务器
fam_data.json fetchAvailableModels mock(23 个内部模型,3 个显示)
start_proxy.sh 一键启动脚本
translator_log.jsonl 请求日志(自动生成)

环境变量

变量 说明 默认值
GEMINI_API_KEY 中转站 API Key 必填
AGY_PROXY_PORT 代理端口 18896
CLOUD_CODE_URL agy 后端地址 http://127.0.0.1:18896

故障排查

Eligibility Check failed: connection refused 代理未启动。curl http://127.0.0.1:18896/ 应返回 404。

Agent execution terminated due to error 查看 translator_log.jsonl,检查 relay_error 字段:

  • unauthorized → API Key 无效
  • model does not exist → 中转站不支持该模型名,修改 MODEL_MAP
  • contents is required → 代理不支持 chunked 编码,更新到最新版

弹出 Google 登录页 钥匙串中无 token。重新执行「绕过登录」中的命令。

切换模型后中转站始终收到同一模型 代理版本过旧。确保使用 agy--jump 目录中的最新 translator_proxy.py,该版本已内置 setUserSettings 模型追踪。

中转站推荐

  • AICodeMirror — 支持 Gemini 全系列模型,注册即享免费额度

License

MIT

About

全网首发260619:反重力Antigravity CLI 接入第三方中转站。绕过 Google OAuth,将 agy 请求桥接到任意 Gemini 兼容 API(如 AICodeMirror)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages