antigravity-manager

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Antigravity Manager

Antigravity Manager

Skill by ara.so — Daily 2026 Skills collection.
Antigravity Manager is a professional AI account manager and proxy gateway. It takes Google (Gemini) and Anthropic (Claude) web session tokens and exposes them as standard API endpoints (OpenAI-compatible, Anthropic-native, and Gemini-native formats) with intelligent multi-account rotation, quota tracking, and automatic failover.
Key capabilities:
  • Multi-account management with real-time quota dashboards
  • Protocol conversion: web sessions → OpenAI / Anthropic / Gemini API
  • Auto-rotation on 429/401 errors (millisecond failover)
  • Model routing and remapping
  • Desktop app (Tauri v2 + React + Rust) or headless Docker/server mode

ara.so提供的技能——属于Daily 2026技能合集。
Antigravity Manager是一款专业的AI账户管理与代理网关。它支持导入Google(Gemini)和Anthropic(Claude)的Web会话令牌,并将其以标准API端点(兼容OpenAI、原生Anthropic、原生Gemini格式)的形式对外提供服务,同时具备智能多账户轮换、配额追踪和自动故障转移功能。
核心功能:
  • 多账户管理,搭配实时配额仪表盘
  • 协议转换:Web会话 → OpenAI / Anthropic / Gemini API
  • 遇到429/401错误时自动轮换账户(毫秒级故障转移)
  • 模型路由与重映射
  • 支持桌面应用(Tauri v2 + React + Rust)或无头Docker/服务器模式

Installation

安装

Option A: One-line script (Linux/macOS)

选项A:一键脚本(Linux/macOS)

bash
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash
Install a specific version:
bash
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash -s -- --version 4.1.30
Dry run (preview without installing):
bash
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash -s -- --dry-run
bash
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash
安装指定版本:
bash
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash -s -- --version 4.1.30
试运行(仅预览不安装):
bash
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash -s -- --dry-run

Option B: Windows (PowerShell)

选项B:Windows(PowerShell)

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

Option C: Homebrew (macOS / Linuxbrew)

选项C:Homebrew(macOS / Linuxbrew)

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

Option D: Docker (recommended for servers/NAS)

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

bash
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:
yaml
undefined
bash
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:
yaml
undefined

docker-compose.yml

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

```bash
docker compose up -d
docker logs antigravity-manager          # view logs / recover forgotten keys
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

```bash
docker compose up -d
docker logs antigravity-manager          # 查看日志 / 找回遗忘的密钥

Option E: Manual download

选项E:手动下载

Download from GitHub Releases:
  • macOS:
    .dmg
    (Apple Silicon + Intel)
  • Windows:
    .msi
    or portable
    .zip
  • Linux:
    .deb
    ,
    .rpm
    , or
    .AppImage

GitHub Releases下载:
  • macOS:
    .dmg
    (支持Apple Silicon + Intel)
  • Windows:
    .msi
    或便携版
    .zip
  • Linux:
    .deb
    .rpm
    .AppImage

Authentication / Security Model

认证/安全模型

Antigravity uses two separate credentials:
CredentialEnv varConfig keyPurpose
API Key
API_KEY
api_key
Authenticates AI API calls (
Authorization: Bearer ...
)
Web Password
WEB_PASSWORD
admin_password
Logs into the management web UI
Scenario A — only
API_KEY
set:
  • Web UI login: use
    API_KEY
  • API calls: use
    API_KEY
Scenario B — both set (recommended):
  • Web UI login:
    WEB_PASSWORD
    only (API Key rejected for login)
  • API calls:
    API_KEY
    only
Recover credentials:
bash
docker logs antigravity-manager
Antigravity使用两种独立的凭据:
凭据环境变量配置键用途
API密钥
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密钥无法用于登录)
  • API调用:仅使用
    API_KEY
找回凭据:
bash
docker logs antigravity-manager

or

grep -E '"api_key"|"admin_password"' ~/.antigravity_tools/gui_config.json

---
grep -E '"api_key"|"admin_password"' ~/.antigravity_tools/gui_config.json

---

API Endpoints

API端点

The proxy server runs on port 8045 by default.
代理服务器默认运行在8045端口。

OpenAI-compatible (works with any OpenAI SDK)

兼容OpenAI(支持所有OpenAI SDK)

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

Anthropic-native (Claude Code, etc.)

原生Anthropic(支持Claude Code等)

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

Gemini-native

原生Gemini

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

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

Code Examples

代码示例

Python — OpenAI SDK (Gemini via Antigravity)

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

python
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": "Explain quantum entanglement in simple terms."}
    ],
    stream=True,
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
python
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": "Explain quantum entanglement in simple terms."}
    ],
    stream=True,
)

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

Python — Anthropic SDK (Claude via Antigravity)

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

python
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": "Write a haiku about distributed systems."}
    ],
)
print(message.content[0].text)
python
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": "Write a haiku about distributed systems."}
    ],
)
print(message.content[0].text)

Python — Streaming with Anthropic

Python — Anthropic流式调用

python
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="You are a helpful coding assistant.",
    messages=[{"role": "user", "content": "Implement a binary search in Rust."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
python
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="You are a helpful coding assistant.",
    messages=[{"role": "user", "content": "Implement a binary search in Rust."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

TypeScript / Node — OpenAI SDK

TypeScript / Node — OpenAI SDK

typescript
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 ?? "";
}

// Image generation via Imagen 3
async function generateImage(prompt: string) {
  const response = await client.images.generate({
    model: "imagen-3.0-generate-002",
    prompt,
    size: "1024x1024",  // maps to Imagen 3 aspect ratio
    n: 1,
  });
  return response.data[0].url;
}
typescript
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 — quick test

cURL — 快速测试

bash
undefined
bash
undefined

Test OpenAI-compatible endpoint

测试兼容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'
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'

Test Anthropic endpoint

测试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'

---
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'

---

Connecting Claude Code CLI

连接Claude Code CLI

Claude Code uses the Anthropic protocol. Point it at Antigravity:
bash
undefined
Claude Code使用Anthropic协议,将其指向Antigravity即可:
bash
undefined

Set environment variables before starting Claude Code

启动Claude Code前设置环境变量

export ANTHROPIC_API_KEY=$ANTIGRAVITY_API_KEY export ANTHROPIC_BASE_URL=http://localhost:8045
claude # start Claude Code — it will use Antigravity as the backend

Or create a `.env` in your project root:

```bash
export ANTHROPIC_API_KEY=$ANTIGRAVITY_API_KEY export ANTHROPIC_BASE_URL=http://localhost:8045
claude # 启动Claude Code —— 它会将Antigravity用作后端

或者在项目根目录创建`.env`文件:

```bash

.env

.env

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

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

---

Connecting to Popular AI Clients

连接主流AI客户端

Cherry Studio

Cherry Studio

  1. Open Cherry Studio → Settings → API Provider
  2. Select OpenAI-compatible
  3. Base URL:
    http://localhost:8045/v1
  4. API Key: your
    ANTIGRAVITY_API_KEY
  1. 打开Cherry Studio → 设置 → API提供商
  2. 选择兼容OpenAI
  3. 基础URL:
    http://localhost:8045/v1
  4. API密钥:你的
    ANTIGRAVITY_API_KEY

Cursor

Cursor

In Cursor settings, set:
  • OpenAI Base URL:
    http://localhost:8045/v1
  • API Key: your
    ANTIGRAVITY_API_KEY
在Cursor设置中配置:
  • OpenAI基础URL:
    http://localhost:8045/v1
  • API密钥:你的
    ANTIGRAVITY_API_KEY

Continue.dev

Continue.dev

json
// ~/.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"
    }
  ]
}

json
// ~/.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"
    }
  ]
}

Configuration File

配置文件

Config is stored at
~/.antigravity_tools/gui_config.json
:
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"
    }
  ]
}
配置文件存储在
~/.antigravity_tools/gui_config.json
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"
    }
  ]
}

Environment Variables (Docker / server mode)

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

VariableDescriptionDefault
API_KEY
API key for authenticating proxy requestsrequired
WEB_PASSWORD
Web UI admin passwordfalls back to
API_KEY
ABV_MAX_BODY_SIZE
Max request body in bytes (for image uploads)
104857600
(100MB)

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

Model Routing

模型路由

Antigravity's model router lets you remap incoming model names to actual upstream models. This is useful when clients hard-code model names like
gpt-4
.
Configuration via Web UI (API Proxy → Model Router) or
gui_config.json
:
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"
    }
  ]
}
Tiered routing (automatic): Antigravity prioritizes accounts by type (Ultra → Pro → Free) and quota reset frequency, consuming fast-reset accounts first.
Background task demotion (automatic): Requests detected as background tasks (e.g., Claude CLI title generation) are automatically redirected to Flash-tier models to preserve premium quota.

Antigravity的模型路由功能允许你将传入的模型名称重映射到实际的上游模型。当客户端硬编码
gpt-4
这类模型名称时,此功能非常实用。
可通过Web UI(API代理 → 模型路由)或
gui_config.json
进行配置:
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 → 免费)和配额重置频率优先选择账户,优先使用配额重置较快的账户。
后台任务降级(自动):检测到的后台任务请求(如Claude CLI标题生成)会自动重定向到Flash级模型,以保留高级配额。

Account Management

账户管理

Adding accounts via the UI

通过UI添加账户

  1. Open Antigravity Manager desktop app or web UI (
    http://localhost:8045
    )
  2. Navigate to Accounts
  3. Click Add Account — the app generates an OAuth 2.0 authorization URL
  4. Complete authorization in any browser
  5. The app captures the callback automatically; click "I've authorized, continue" if needed
  1. 打开Antigravity Manager桌面应用或Web UI(
    http://localhost:8045
  2. 导航到账户页面
  3. 点击添加账户——应用会生成一个OAuth 2.0授权URL
  4. 在任意浏览器中完成授权
  5. 应用会自动捕获回调;如果未自动捕获,点击“我已完成授权,继续”

Batch import (JSON)

批量导入(JSON)

Export from another tool and import in the Accounts page:
json
[
  {
    "token": "session-token-1",
    "type": "google",
    "label": "account-work"
  },
  {
    "token": "session-token-2",
    "type": "anthropic",
    "label": "account-personal"
  }
]
从其他工具导出后,在账户页面导入:
json
[
  {
    "token": "session-token-1",
    "type": "google",
    "label": "account-work"
  },
  {
    "token": "session-token-2",
    "type": "anthropic",
    "label": "account-personal"
  }
]

Migration from v1

从v1版本迁移

Antigravity auto-detects and migrates v1 database format on first launch — no manual steps needed.

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

Quota Monitoring

配额监控

The dashboard shows live quota across all accounts:
  • Gemini Pro remaining calls (average across accounts)
  • Gemini Flash remaining calls
  • Claude remaining calls
  • Imagen 3 image generation quota
Smart Recommendation: The dashboard algorithmically selects the account with the most headroom and offers one-click switching.
403 detection: Accounts banned upstream are automatically flagged and skipped during rotation.

仪表盘会显示所有账户的实时配额:
  • Gemini Pro剩余调用次数(所有账户的平均值)
  • Gemini Flash剩余调用次数
  • Claude剩余调用次数
  • Imagen 3图片生成配额
智能推荐:仪表盘会通过算法选择剩余配额最多的账户,并提供一键切换功能。
403检测:上游被封禁的账户会被自动标记,并在轮换时跳过。

Building from Source (Rust + Tauri v2)

从源码构建(Rust + Tauri v2)

Prerequisites

前置依赖

bash
undefined
bash
undefined

Rust

Rust

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

Node.js (for frontend)

Node.js(用于前端)

node --version # requires v18+
node --version # 需要v18+

Tauri v2 CLI

Tauri v2 CLI

cargo install tauri-cli --version "^2"
cargo install tauri-cli --version "^2"

System deps (Linux)

系统依赖(Linux)

sudo apt install libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev
undefined
sudo apt install libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev
undefined

Build & run

构建与运行

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

npm install          # install frontend deps
cargo tauri dev      # run in development mode
cargo tauri build    # build release binaries → src-tauri/target/release/bundle/
bash
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/

Build headless server only (no GUI)

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

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

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

Troubleshooting

故障排除

Port 8045 already in use

端口8045已被占用

bash
undefined
bash
undefined

Find and kill the process

查找并终止进程

lsof -ti:8045 | xargs kill -9
lsof -ti:8045 | xargs kill -9

or change port in gui_config.json:

或在gui_config.json中修改端口:

"proxy": { "port": 8046 }

"proxy": { "port": 8046 }

undefined
undefined

Forgotten API key or web password

遗忘API密钥或Web密码

bash
undefined
bash
undefined

Docker

Docker环境

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

Local install

本地安装环境

cat ~/.antigravity_tools/gui_config.json | grep -E '"api_key"|"admin_password"'
undefined
cat ~/.antigravity_tools/gui_config.json | grep -E '"api_key"|"admin_password"'
undefined

Account shows 403 / banned

账户显示403 / 被封禁

The account has been flagged upstream. In the Accounts view it will be marked with a 403 badge and automatically skipped. Add a fresh account and remove/re-authorize the banned one.
该账户已被上游标记。在账户视图中会显示403标识,并自动被跳过轮换。添加新账户并移除/重新授权被封禁的账户。

Requests failing with 429

请求因429错误失败

Antigravity handles this automatically (rotates to next account within milliseconds). If all accounts are exhausted, add more accounts or wait for quota reset. Check the dashboard for per-account quota status.
Antigravity会自动处理此问题(在毫秒级内轮换到下一个账户)。如果所有账户配额都已用尽,请添加更多账户或等待配额重置。查看仪表盘了解各账户的配额状态。

macOS Gatekeeper blocking the app

macOS Gatekeeper阻止应用运行

bash
xattr -d com.apple.quarantine /Applications/Antigravity\ Tools.app
bash
xattr -d com.apple.quarantine /Applications/Antigravity\ Tools.app

or install with:

或使用以下命令安装:

brew install --cask antigravity-tools --no-quarantine
undefined
brew install --cask antigravity-tools --no-quarantine
undefined

Docker container not persisting accounts after restart

Docker容器重启后账户数据未持久化

Ensure the volume mount is correct:
bash
docker run ... -v ~/.antigravity_tools:/root/.antigravity_tools ...
确保卷挂载配置正确:
bash
docker run ... -v ~/.antigravity_tools:/root/.antigravity_tools ...

Verify data is present:

验证数据是否存在:

ls ~/.antigravity_tools/
undefined
ls ~/.antigravity_tools/
undefined

Claude Code not connecting

Claude Code无法连接

bash
undefined
bash
undefined

Verify the proxy is running

验证代理是否运行

curl -s http://localhost:8045/v1/models
-H "Authorization: Bearer $ANTIGRAVITY_API_KEY"
curl -s http://localhost:8045/v1/models
-H "Authorization: Bearer $ANTIGRAVITY_API_KEY"

Check env vars are exported (not just set)

检查环境变量是否已导出(而非仅设置)

export ANTHROPIC_BASE_URL=http://localhost:8045 export ANTHROPIC_API_KEY=$ANTIGRAVITY_API_KEY echo $ANTHROPIC_BASE_URL # should print the URL

---
export ANTHROPIC_BASE_URL=http://localhost:8045 export ANTHROPIC_API_KEY=$ANTIGRAVITY_API_KEY echo $ANTHROPIC_BASE_URL # 应输出该URL

---

Project Structure (for contributors)

项目结构(面向贡献者)

Antigravity-Manager/
├── src/                    # React frontend (TypeScript)
│   ├── components/         # UI components (Dashboard, Accounts, etc.)
│   └── pages/
├── src-tauri/              # Rust backend
│   ├── src/
│   │   ├── main.rs         # Tauri app entry
│   │   ├── proxy/          # Axum HTTP proxy server
│   │   │   ├── router.rs   # Model routing logic
│   │   │   ├── dispatcher.rs # Account rotation
│   │   │   └── mapper.rs   # Protocol conversion
│   │   ├── accounts/       # Account storage & OAuth
│   │   └── quota/          # Quota tracking
│   └── Cargo.toml
├── docker/
│   └── Dockerfile
├── install.sh              # Linux/macOS installer
├── install.ps1             # Windows installer
└── docker-compose.yml
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