antigravity-manager
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAntigravity 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 | bashInstall a specific version:
bash
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash -s -- --version 4.1.30Dry run (preview without installing):
bash
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.30/install.sh | bash -s -- --dry-runbash
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-runOption B: Windows (PowerShell)
选项B:Windows(PowerShell)
powershell
irm https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/install.ps1 | iexpowershell
irm https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/install.ps1 | iexOption C: Homebrew (macOS / Linuxbrew)
选项C:Homebrew(macOS / Linuxbrew)
bash
brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager
brew install --cask antigravity-toolsbash
brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager
brew install --cask antigravity-toolsOption 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:latestDocker Compose:
yaml
undefinedbash
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:latestDocker Compose:
yaml
undefineddocker-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 keysversion: "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: (Apple Silicon + Intel)
.dmg - Windows: or portable
.msi.zip - Linux: ,
.deb, or.rpm.AppImage
从GitHub Releases下载:
- macOS:(支持Apple Silicon + Intel)
.dmg - Windows:或便携版
.msi.zip - Linux:、
.deb或.rpm.AppImage
Authentication / Security Model
认证/安全模型
Antigravity uses two separate credentials:
| Credential | Env var | Config key | Purpose |
|---|---|---|---|
| API Key | | | Authenticates AI API calls ( |
| Web Password | | | Logs into the management web UI |
Scenario A — only set:
API_KEY- Web UI login: use
API_KEY - API calls: use
API_KEY
Scenario B — both set (recommended):
- Web UI login: only (API Key rejected for login)
WEB_PASSWORD - API calls: only
API_KEY
Recover credentials:
bash
docker logs antigravity-managerAntigravity使用两种独立的凭据:
| 凭据 | 环境变量 | 配置键 | 用途 |
|---|---|---|---|
| API密钥 | | | 验证AI API调用( |
| Web密码 | | | 登录管理Web UI |
场景A — 仅设置:
API_KEY- Web UI登录:使用
API_KEY - API调用:使用
API_KEY
场景B — 同时设置两者(推荐):
- Web UI登录:仅使用(API密钥无法用于登录)
WEB_PASSWORD - API调用:仅使用
API_KEY
找回凭据:
bash
docker logs antigravity-manageror
或
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_KEYPOST http://localhost:8045/v1/chat/completions
Authorization: Bearer $ANTIGRAVITY_API_KEYAnthropic-native (Claude Code, etc.)
原生Anthropic(支持Claude Code等)
POST http://localhost:8045/v1/messages
Authorization: Bearer $ANTIGRAVITY_API_KEYPOST http://localhost:8045/v1/messages
Authorization: Bearer $ANTIGRAVITY_API_KEYGemini-native
原生Gemini
POST http://localhost:8045/v1/models/{model}:generateContent
Authorization: Bearer $ANTIGRAVITY_API_KEYPOST http://localhost:8045/v1/models/{model}:generateContent
Authorization: Bearer $ANTIGRAVITY_API_KEYCode 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
undefinedbash
undefinedTest 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'
-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'
-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'
-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'
-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
undefinedClaude Code使用Anthropic协议,将其指向Antigravity即可:
bash
undefinedSet 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:
```bashexport 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
- Open Cherry Studio → Settings → API Provider
- Select OpenAI-compatible
- Base URL:
http://localhost:8045/v1 - API Key: your
ANTIGRAVITY_API_KEY
- 打开Cherry Studio → 设置 → API提供商
- 选择兼容OpenAI
- 基础URL:
http://localhost:8045/v1 - 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.jsonjson
{
"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.jsonjson
{
"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 / 服务器模式)
| Variable | Description | Default |
|---|---|---|
| API key for authenticating proxy requests | required |
| Web UI admin password | falls back to |
| Max request body in bytes (for image uploads) | |
| 变量 | 描述 | 默认值 |
|---|---|---|
| 用于验证代理请求的API密钥 | 必填 |
| Web UI管理员密码 | 回退使用 |
| 最大请求体大小(字节,用于图片上传) | |
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-4Configuration via Web UI (API Proxy → Model Router) or :
gui_config.jsonjson
{
"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.jsonjson
{
"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添加账户
- Open Antigravity Manager desktop app or web UI ()
http://localhost:8045 - Navigate to Accounts
- Click Add Account — the app generates an OAuth 2.0 authorization URL
- Complete authorization in any browser
- The app captures the callback automatically; click "I've authorized, continue" if needed
- 打开Antigravity Manager桌面应用或Web UI()
http://localhost:8045 - 导航到账户页面
- 点击添加账户——应用会生成一个OAuth 2.0授权URL
- 在任意浏览器中完成授权
- 应用会自动捕获回调;如果未自动捕获,点击“我已完成授权,继续”
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
undefinedbash
undefinedRust
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
undefinedsudo apt install libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev
undefinedBuild & 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 8045bash
cd src-tauri
cargo build --release --features headless
./target/release/antigravity-manager --headless --port 8045Troubleshooting
故障排除
Port 8045 already in use
端口8045已被占用
bash
undefinedbash
undefinedFind 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 }
undefinedundefinedForgotten API key or web password
遗忘API密钥或Web密码
bash
undefinedbash
undefinedDocker
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"'
undefinedcat ~/.antigravity_tools/gui_config.json | grep -E '"api_key"|"admin_password"'
undefinedAccount 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.appbash
xattr -d com.apple.quarantine /Applications/Antigravity\ Tools.appor install with:
或使用以下命令安装:
brew install --cask antigravity-tools --no-quarantine
undefinedbrew install --cask antigravity-tools --no-quarantine
undefinedDocker 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/
undefinedls ~/.antigravity_tools/
undefinedClaude Code not connecting
Claude Code无法连接
bash
undefinedbash
undefinedVerify the proxy is running
验证代理是否运行
curl -s http://localhost:8045/v1/models
-H "Authorization: Bearer $ANTIGRAVITY_API_KEY"
-H "Authorization: Bearer $ANTIGRAVITY_API_KEY"
curl -s http://localhost:8045/v1/models
-H "Authorization: Bearer $ANTIGRAVITY_API_KEY"
-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.ymlAntigravity-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