将 GeminiCLI 和 Antigravity 转换为 OpenAI、GEMINI 和 Claude API 兼容接口
English | 中文 | 日本語
初始安装
curl -o termux-install.sh "https://raw.githubusercontent.com/su-kaka/gcli2api/refs/heads/master/termux-install.sh" && chmod +x termux-install.sh && ./termux-install.sh
重启服务
cd gcli2api
bash termux-start.sh
初始安装
iex (iwr "https://raw.githubusercontent.com/su-kaka/gcli2api/refs/heads/master/install.ps1" -UseBasicParsing).Content
重启服务
双击执行 start.bat
初始安装
curl -o install.sh "https://raw.githubusercontent.com/su-kaka/gcli2api/refs/heads/master/install.sh" && chmod +x install.sh && ./install.sh
重启服务
cd gcli2api
bash start.sh
初始安装
curl -o darwin-install.sh "https://raw.githubusercontent.com/su-kaka/gcli2api/refs/heads/master/darwin-install.sh" && chmod +x darwin-install.sh && ./darwin-install.sh
重启服务
cd gcli2api
bash start.sh
Docker 运行命令
# 使用通用密码
docker run -d --name gcli2api --network host -e PASSWORD=pwd -e PORT=7861 -v $(pwd)/data/creds:/app/creds ghcr.io/su-kaka/gcli2api:latest
# 使用分离密码
docker run -d --name gcli2api --network host -e API_PASSWORD=api_pwd -e PANEL_PASSWORD=panel_pwd -e PORT=7861 -v $(pwd)/data/creds:/app/creds ghcr.io/su-kaka/gcli2api:latest
Docker Mac
# 使用通用密码
docker run -d \
--name gcli2api \
-p 7861:7861 \
-p 8080:8080 \
-e PASSWORD=pwd \
-e PORT=7861 \
-v "$(pwd)/data/creds":/app/creds \
ghcr.io/su-kaka/gcli2api:latest
# 使用分离密码
docker run -d \
--name gcli2api \
-p 7861:7861 \
-p 8080:8080 \
-e API_PASSWORD=api_pwd \
-e PANEL_PASSWORD=panel_pwd \
-e PORT=7861 \
-v $(pwd)/data/creds:/app/creds \
ghcr.io/su-kaka/gcli2api:latest
Docker Compose 运行命令
docker-compose.yml 文件:version: '3.8'
services:
gcli2api:
image: ghcr.io/su-kaka/gcli2api:latest
container_name: gcli2api
restart: unless-stopped
network_mode: host
environment:
# 使用通用密码(推荐用于简单部署)
- PASSWORD=pwd
- PORT=7861
# 或使用分离密码(推荐用于生产环境)
# - API_PASSWORD=your_api_password
# - PANEL_PASSWORD=your_panel_password
volumes:
- ./data/creds:/app/creds
healthcheck:
test: ["CMD-SHELL", "python -c \"import sys, urllib.request, os; port = os.environ.get('PORT', '7861'); req = urllib.request.Request(f'http://localhost:{port}/v1/models', headers={'Authorization': 'Bearer ' + os.environ.get('PASSWORD', 'pwd')}); sys.exit(0 if urllib.request.urlopen(req, timeout=5).getcode() == 200 else 1)\""]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
docker-compose up -d
多端点多格式支持
/v1/chat/completions 和 /v1/models/v1/models/{model}:generateContent 和 streamGenerateContent/v1/messages(遵循 Claude API 规范)/antigravity/v1/chat/completions/antigravity/v1/models/{model}:generateContent 和 streamGenerateContent/antigravity/v1/messages灵活的密码管理
高级凭证管理
凭证状态监控
多种流式支持
响应优化
全功能 Web 界面
批量操作支持
实时监控
网络和代理配置
性能和稳定性配置
日志和调试
灵活的配置方式
所有模型均具备 1M 上下文窗口容量。每个凭证文件提供 1000 次请求额度。
gemini-2.5-progemini-3-pro-previewgemini-3.1-pro-previewgemini-2.5-pro-high:思考模式gemini-2.5-pro-low:低思考模式gemini-2.5-pro-search:集成搜索功能的模型gemini-3.1-flash-image:基础图像生成模型-2k:2K 分辨率-4k:4K 高清分辨率-1x1:正方形(头像)-16x9:横屏(电脑壁纸)-9x16:竖屏(手机壁纸)-21x9:超宽屏(带鱼屏)-4x3:传统显示器-3x4:竖版海报gemini-3.1-flash-image-4k-16x9:4K 横屏gemini-3.1-flash-image-2k-9x16:2K 竖屏-假流式 后缀gemini-2.5-pro-假流式流式抗截断/ 前缀流式抗截断/gemini-2.5-prohttp://127.0.0.1:7861(默认端口,可通过 PORT 环境变量修改)pwd,可通过环境变量修改)OpenAI 兼容客户端:
http://127.0.0.1:7861/v1pwd(默认值,可通过 API_PASSWORD 或 PASSWORD 环境变量修改)Gemini 原生客户端:
http://127.0.0.1:7861Authorization: Bearer your_api_passwordx-goog-api-key: your_api_password?key=your_api_passwordGCLI 认证模式
Antigravity 认证模式
统一管理界面
基础配置
PORT: 服务端口(默认:7861)HOST: 服务器监听地址(默认:0.0.0.0)密码配置
API_PASSWORD: 聊天 API 访问密码(默认:继承 PASSWORD 或 pwd)PANEL_PASSWORD: 控制面板访问密码(默认:继承 PASSWORD 或 pwd)PASSWORD: 通用密码,设置后覆盖上述两个(默认:pwd)性能和稳定性配置
RETRY_429_ENABLED: 启用 429 错误自动重试(默认:true)RETRY_429_MAX_RETRIES: 429 错误最大重试次数(默认:3)RETRY_429_INTERVAL: 429 错误重试间隔,秒(默认:1.0)ANTI_TRUNCATION_MAX_ATTEMPTS: 抗截断最大重试次数(默认:3)网络和代理配置
PROXY: HTTP/HTTPS 代理地址(格式:http://host:port)OAUTH_PROXY_URL: OAuth 认证代理端点GOOGLEAPIS_PROXY_URL: Google APIs 代理端点METADATA_SERVICE_URL: 元数据服务代理端点自动化配置
AUTO_BAN: 启用凭证自动封禁(默认:true)AUTO_LOAD_ENV_CREDS: 启动时自动加载环境变量凭证(默认:false)兼容性配置
COMPATIBILITY_MODE: 启用兼容性模式,将 system 消息转为 user 消息(默认:false)日志配置
LOG_LEVEL: 日志级别(DEBUG/INFO/WARNING/ERROR,默认:INFO)LOG_FILE: 日志文件路径(默认:log.txt)存储配置
SQLite 配置(默认)
MongoDB 配置(可选云端存储)
MONGODB_URI: MongoDB 连接字符串(设置后启用 MongoDB 模式)MONGODB_DATABASE: MongoDB 数据库名称(默认:gcli2api)Docker 使用示例
# 使用通用密码
docker run -d --name gcli2api \
-e PASSWORD=mypassword \
-e PORT=7861 \
ghcr.io/su-kaka/gcli2api:latest
# 使用分离密码
docker run -d --name gcli2api \
-e API_PASSWORD=my_api_password \
-e PANEL_PASSWORD=my_panel_password \
-e PORT=7861 \
ghcr.io/su-kaka/gcli2api:latest
注意:当设置了凭证环境变量时,系统将优先使用环境变量中的凭证,忽略 creds 目录中的文件。
Gemini 原生示例:
from io import BytesIO
from PIL import Image
from google.genai import Client
from google.genai.types import HttpOptions
from google.genai import types
# 客户端从环境变量`GEMINI_API_KEY`获取API密钥。
client = Client(
api_key="pwd",
http_options=HttpOptions(base_url="http://127.0.0.1:7861"),
)
prompt = (
"""
画一只猫
"""
)
response = client.models.generate_content(
model="gemini-3.1-flash-image",
contents=[prompt],
config=types.GenerateContentConfig(
image_config=types.ImageConfig(
aspect_ratio="16:9",
)
)
)
for part in response.candidates[0].content.parts:
if part.text is not None:
print(part.text)
elif part.inline_data is not None:
image = Image.open(BytesIO(part.inline_data.data))
image.save("generated_image.png")
说明:
认证端点
POST /auth/login - 用户登录POST /auth/start - 开始 OAuth 认证(支持 GCLI 和 Antigravity 模式)POST /auth/callback - 处理 OAuth 回调POST /auth/callback-url - 从回调 URL 直接完成认证GET /auth/status/{project_id} - 检查认证状态凭证管理端点(支持 mode=geminicli 或 mode=antigravity 参数)
POST /creds/upload - 批量上传凭证文件(支持 JSON 和 ZIP)GET /creds/status - 获取凭证状态列表(支持分页和筛选)GET /creds/detail/{filename} - 获取单个凭证详情POST /creds/action - 单个凭证操作(启用/禁用/删除)POST /creds/batch-action - 批量凭证操作GET /creds/download/{filename} - 下载单个凭证文件GET /creds/download-all - 打包下载所有凭证POST /creds/fetch-email/{filename} - 获取用户***POST /creds/refresh-all-emails - 批量刷新用户***POST /creds/deduplicate-by-email - 按***去重凭证POST /creds/verify-project/{filename} - 检验凭证 Project IDGET /creds/quota/{filename} - 获取凭证额度信息(仅 Antigravity)配置管理端点
GET /config/get - 获取当前配置POST /config/save - 保存配置日志管理端点
POST /logs/clear - 清空日志GET /logs/download - 下载日志文件WebSocket /logs/stream - 实时日志流版本信息端点
GET /version/info - 获取版本信息(可选 check_update=true 参数检查更新)多模态支持
{
"model": "gemini-2.5-pro",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "描述这张图片"},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABA..."
}
}
]
}
]
}
思维模式支持
{
"model": "gemini-2.5-pro-maxthinking",
"messages": [
{"role": "user", "content": "复杂数学问题"}
]
}
响应将包含分离的思维内容:
{
"choices": [{
"message": {
"role": "assistant",
"content": "最终答案",
"reasoning_content": "详细的思考过程..."
}
}]
}
流式抗截断使用
{
"model": "流式抗截断/gemini-2.5-pro",
"messages": [
{"role": "user", "content": "写一篇长文章"}
],
"stream": true
}
兼容性模式
# 启用兼容性模式
export COMPATIBILITY_MODE=true
此模式下,所有 system 消息会转换为 user 消息,提高与某些客户端的兼容性。
欢迎加入 ***交流讨论!
号:
本项目仅供学习和研究用途。使用本项目表示您同意:
项目作者对因使用本项目而产生的任何直接或间接损失不承担责任。
本项目采用 Cooperative Non-Commercial License (CNC-1.0)
这是一个反商业化的严格开源协议,详情请查看 LICENSE 文件。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务