🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx skills add https://skills.sh/aradotso/trending-skills/antigravity-manager

💡 提示:需要 Node.js 和 NPM

Antigravity Manager

技能来自 ara.so — Daily 2026 Skills 系列。

Antigravity Manager 是一个专业的 AI 账户管理器和代理网关。它接收 Google(Gemini)和 Anthropic(Claude)的 Web 会话令牌,并将其暴露为标准 API 端点(OpenAI 兼容、Anthropic 原生和 Gemini 原生格式),同时具备智能多账户轮换、配额跟踪和自动故障转移功能。

主要功能:

  • 多账户管理,提供实时配额仪表盘
  • 协议转换:Web 会话 → OpenAI / Anthropic / Gemini API
  • 遇到 429/401 错误时自动轮换(毫秒级故障转移)
  • 模型路由和重映射
  • 桌面应用(Tauri v2 + React + Rust)或无头 Docker/服务器模式

安装

选项 A:单行脚本(Linux/macOS)

curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash

安装特定版本:

curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash -s -- --version 4.1.30

试运行(预览但不安装):

curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash -s -- --dry-run

选项 B:Windows (PowerShell)

irm https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/install.ps1 | iex

选项 C:Homebrew (macOS / Linuxbrew)

brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager
brew install --cask antigravity-tools

选项 D:Docker(推荐用于服务器/NAS)

docker run -d --name antigravity-manager \
  -p 8045:8045 \
  -e API_KEY=$ANTIGRAVITY_API_KEY \
  -e WEB_PASSWORD=$ANTIGRAVITY_WEB_PASSWORD \
  -e ABV_MAX_BODY_SIZE=104857600 \
  -v ~/.antigravity_tools:/root/.antigravity_tools \
  lbjlaq/antigravity-manager:latest

Docker Compose:

# docker-compose.yml
version: "3.8"
services:
  antigravity:
    image: lbjlaq/antigravity-manager:latest
    container_name: antigravity-manager
    restart: unless-stopped
    ports:
      - "8045:8045"
    environment:
      - API_KEY=${ANTIGRAVITY_API_KEY}
      - WEB_PASSWORD=${ANTIGRAVITY_WEB_PASSWORD}
      - ABV_MAX_BODY_SIZE=104857600
    volumes:
      - ~/.antigravity_tools:/root/.antigravity_tools
docker compose up -d
docker logs antigravity-manager          # 查看日志 / 恢复遗忘的密钥

选项 E:手动下载

GitHub Releases 下载:

  • macOS:.dmg(Apple Silicon + Intel)
  • Windows:.msi 或便携版 .zip
  • Linux:.deb.rpm.AppImage

身份验证 / 安全模型

Antigravity 使用两套独立的凭证:

凭证 环境变量 配置键 用途
API Key API_KEY api_key 验证 AI API 调用(Authorization: Bearer ...
Web 密码 WEB_PASSWORD admin_password 登录管理 Web UI

场景 A — 仅设置 API_KEY

  • Web UI 登录:使用 API_KEY
  • API 调用:使用 API_KEY

场景 B — 两者都设置(推荐):

  • Web UI 登录:仅使用 WEB_PASSWORD(API Key 将被拒绝登录)
  • API 调用:仅使用 API_KEY

恢复凭证:

docker logs antigravity-manager
# 或
grep -E '"api_key"|"admin_password"' ~/.antigravity_tools/gui_config.json

API 端点

代理服务器默认运行在端口 8045

OpenAI 兼容(适用于任何 OpenAI SDK)

POST http://localhost:8045/v1/chat/completions
Authorization: Bearer $ANTIGRAVITY_API_KEY

Anthropic 原生(Claude Code 等)

POST http://localhost:8045/v1/messages
Authorization: Bearer $ANTIGRAVITY_API_KEY

Gemini 原生

POST http://localhost:8045/v1/models/{model}:generateContent
Authorization: Bearer $ANTIGRAVITY_API_KEY

代码示例

Python — OpenAI SDK(通过 Antigravity 使用 Gemini)

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["ANTIGRAVITY_API_KEY"],
    base_url="http://localhost:8045/v1",
)

response = client.chat.completions.create(
    model="gemini-2.5-pro",
    messages=[
        {"role": "user", "content": "用通俗的语言解释量子纠缠。"}
    ],
    stream=True,
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Python — Anthropic SDK(通过 Antigravity 使用 Claude)

import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["ANTIGRAVITY_API_KEY"],
    base_url="http://localhost:8045",
)

message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "写一首关于分布式系统的俳句。"}
    ],
)
print(message.content[0].text)

Python — 使用 Anthropic 流式传输

import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["ANTIGRAVITY_API_KEY"],
    base_url="http://localhost:8045",
)

with client.messages.stream(
    model="claude-opus-4-5",
    max_tokens=2048,
    system="你是一个乐于助人的编码助手。",
    messages=[{"role": "user", "content": "用 Rust 实现二分查找。"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

TypeScript / Node — OpenAI SDK

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.ANTIGRAVITY_API_KEY!,
  baseURL: "http://localhost:8045/v1",
});

async function chat(prompt: string): Promise<string> {
  const response = await client.chat.completions.create({
    model: "gemini-2.5-flash",
    messages: [{ role: "user", content: prompt }],
  });
  return response.choices[0].message.content ?? "";
}

// 通过 Imagen 3 生成图像
async function generateImage(prompt: string) {
  const response = await client.images.generate({
    model: "imagen-3.0-generate-002",
    prompt,
    size: "1024x1024",  // 映射到 Imagen 3 宽高比
    n: 1,
  });
  return response.data[0].url;
}

cURL — 快速测试

# 测试 OpenAI 兼容端点
curl -s http://localhost:8045/v1/chat/completions \
  -H "Authorization: Bearer $ANTIGRAVITY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-2.5-pro",
    "messages": [{"role": "user", "content": "Hello!"}]
  }' | jq '.choices[0].message.content'

# 测试 Anthropic 端点
curl -s http://localhost:8045/v1/messages \
  -H "Authorization: Bearer $ANTIGRAVITY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-5",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "Hello!"}]
  }' | jq '.content[0].text'

连接 Claude Code CLI

Claude Code 使用 Anthropic 协议。将其指向 Antigravity:

# 启动 Claude Code 前设置环境变量
export ANTHROPIC_API_KEY=$ANTIGRAVITY_API_KEY
export ANTHROPIC_BASE_URL=http://localhost:8045

claude  # 启动 Claude Code — 它将使用 Antigravity 作为后端

或者在项目根目录创建 .env

# .env
ANTHROPIC_API_KEY=your-antigravity-api-key
ANTHROPIC_BASE_URL=http://localhost:8045

连接流行的 AI 客户端

Cherry Studio

  1. 打开 Cherry Studio → 设置 → API 提供商
  2. 选择 OpenAI 兼容
  3. 基础 URL:http://localhost:8045/v1
  4. API Key:你的 ANTIGRAVITY_API_KEY

Cursor

在 Cursor 设置中,设置:

  • OpenAI Base URL:http://localhost:8045/v1
  • API Key:你的 ANTIGRAVITY_API_KEY

Continue.dev

// ~/.continue/config.json
{
  "models": [
    {
      "title": "Gemini Pro (Antigravity)",
      "provider": "openai",
      "model": "gemini-2.5-pro",
      "apiKey": "YOUR_ANTIGRAVITY_API_KEY",
      "apiBase": "http://localhost:8045/v1"
    },
    {
      "title": "Claude (Antigravity)",
      "provider": "anthropic",
      "model": "claude-sonnet-4-5",
      "apiKey": "YOUR_ANTIGRAVITY_API_KEY",
      "apiBase": "http://localhost:8045"
    }
  ]
}

配置文件

配置文件存储在 ~/.antigravity_tools/gui_config.json

{
  "api_key": "sk-your-api-key",
  "admin_password": "your-web-ui-password",
  "proxy": {
    "port": 8045,
    "max_body_size": 104857600,
    "admin_password": "your-web-ui-password"
  },
  "model_routes": [
    {
      "pattern": "gpt-4.*",
      "target": "gemini-2.5-pro"
    },
    {
      "pattern": "gpt-3.5.*",
      "target": "gemini-2.5-flash"
    }
  ]
}

环境变量(Docker / 服务器模式)

变量 描述 默认值
API_KEY 用于验证代理请求的 API 密钥 必需
WEB_PASSWORD Web UI 管理员密码 回退到 API_KEY
ABV_MAX_BODY_SIZE 最大请求体大小(字节,用于图片上传) 104857600 (100MB)

模型路由

Antigravity 的模型路由器允许你将传入的模型名称重映射到实际的上游模型。当客户端硬编码模型名称(如 gpt-4)时,此功能非常有用。

通过 Web UI(API 代理 → 模型路由器)或 gui_config.json 配置:

{
  "model_routes": [
    {
      "pattern": "gpt-4-turbo",
      "target": "gemini-2.5-pro"
    },
    {
      "pattern": "gpt-4o",
      "target": "gemini-2.5-pro"
    },
    {
      "pattern": "gpt-3\\.5.*",
      "target": "gemini-2.5-flash"
    },
    {
      "pattern": "claude-3-opus.*",
      "target": "claude-opus-4-5"
    }
  ]
}

分层路由(自动):Antigravity 根据账户类型(Ultra → Pro → Free)和配额重置频率对账户进行优先级排序,优先消耗快速重置的账户。

后台任务降级(自动):检测为后台任务的请求(例如 Claude CLI 的标题生成)会自动重定向到 Flash 层级模型,以保留高级配额。


账户管理

通过 UI 添加账户

  1. 打开 Antigravity Manager 桌面应用或 Web UI(http://localhost:8045
  2. 导航到 账户
  3. 点击 添加账户 — 应用会生成一个 OAuth 2.0 授权 URL
  4. 在任何浏览器中完成授权
  5. 应用会自动捕获回调;如有需要,点击“我已授权,继续”

批量导入(JSON)

从其他工具导出,并在账户页面导入:

[
  {
    "token": "session-token-1",
    "type": "google",
    "label": "account-work"
  },
  {
    "token": "session-token-2",
    "type": "anthropic",
    "label": "account-personal"
  }
]

从 v1 迁移

Antigravity 会在首次启动时自动检测并迁移 v1 数据库格式 — 无需手动操作。


配额监控

仪表盘显示所有账户的实时配额:

  • Gemini Pro 剩余调用次数(各账户平均值)
  • Gemini Flash 剩余调用次数
  • Claude 剩余调用次数
  • Imagen 3 图像生成配额

智能推荐:仪表盘算法会选择剩余配额最多的账户,并提供一键切换功能。

403 检测:上游被封禁的账户会自动标记,并在轮换时跳过。


从源码构建(Rust + Tauri v2)

先决条件

# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Node.js (用于前端)
node --version  # 需要 v18+

# Tauri v2 CLI
cargo install tauri-cli --version "^2"

# 系统依赖 (Linux)
sudo apt install libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev

构建与运行

git clone https://github.com/lbjlaq/Antigravity-Manager.git
cd Antigravity-Manager

npm install          # 安装前端依赖
cargo tauri dev      # 以开发模式运行
cargo tauri build    # 构建发布二进制文件 → src-tauri/target/release/bundle/

仅构建无头服务器(无 GUI)

cd src-tauri
cargo build --release --features headless
./target/release/antigravity-manager --headless --port 8045

故障排除

端口 8045 已被占用

# 查找并终止进程
lsof -ti:8045 | xargs kill -9
# 或在 gui_config.json 中更改端口:
# "proxy": { "port": 8046 }

忘记 API 密钥或 Web 密码

# Docker
docker logs antigravity-manager | grep -E "api_key|password"

# 本地安装
cat ~/.antigravity_tools/gui_config.json | grep -E '"api_key"|"admin_password"'

账户显示 403 / 被封禁

该账户已被上游标记。在账户视图中,它会被标记为 403 徽章,并在轮换时自动跳过。添加一个新账户,然后移除/重新授权被封禁的账户。

请求失败并返回 429

Antigravity 会自动处理此问题(在几毫秒内轮换到下一个账户)。如果所有账户都已耗尽,请添加更多账户或等待配额重置。查看仪表盘了解各账户的配额状态。

macOS Gatekeeper 阻止应用

xattr -d com.apple.quarantine /Applications/Antigravity\ Tools.app
# 或使用以下方式安装:
brew install --cask antigravity-tools --no-quarantine

重启后 Docker 容器未保留账户

确保卷挂载正确:

docker run ... -v ~/.antigravity_tools:/root/.antigravity_tools ...
# 验证数据是否存在:
ls ~/.antigravity_tools/

Claude Code 无法连接

# 验证代理正在运行
curl -s http://localhost:8045/v1/models \
  -H "Authorization: Bearer $ANTIGRAVITY_API_KEY"

# 检查环境变量是否已导出(不仅仅是设置)
export ANTHROPIC_BASE_URL=http://localhost:8045
export ANTHROPIC_API_KEY=$ANTIGRAVITY_API_KEY
echo $ANTHROPIC_BASE_URL  # 应该打印出 URL

项目结构(供贡献者参考)

Antigravity-Manager/
├── src/                    # React 前端 (TypeScript)
│   ├── components/         # UI 组件 (仪表盘、账户等)
│   └── pages/
├── src-tauri/              # Rust 后端
│   ├── src/
│   │   ├── main.rs         # Tauri 应用入口
│   │   ├── proxy/          # Axum HTTP 代理服务器
│   │   │   ├── router.rs   # 模型路由逻辑
│   │   │   ├── dispatcher.rs # 账户轮换
│   │   │   └── mapper.rs   # 协议转换
│   │   ├── accounts/       # 账户存储与 OAuth
│   │   └── quota/          # 配额跟踪
│   └── Cargo.toml
├── docker/
│   └── Dockerfile
├── install.sh              # Linux/macOS 安装程序
├── install.ps1             # Windows 安装程序
└── docker-compose.yml

📄 原始文档

完整文档(英文):

https://skills.sh/aradotso/trending-skills/antigravity-manager

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。