一个能将多种仅客户端内使用的大模型 API(Gemini CLI, Antigravity, Qwen Code, Kiro ...),模拟请求,统一封装为本地 OpenAI 兼容接口的强大代理。
AIClient2API 是一个突破客户端限制的 API 代理服务,将 Gemini、Antigravity、Qwen Code、Kiro 等原本仅限客户端内使用的免费大模型,转换为可供任何应用调用的标准 OpenAI 兼容接口。基于 Node.js 构建,支持 OpenAI、Claude、Gemini 三大协议的智能互转,让 Cherry-Studio、NextChat、Cline 等工具能够免费大量使用 Claude Opus 4.5、Gemini 3.0 Pro、Qwen3 Coder Plus 等高级模型。项目采用策略模式和适配器模式的模块化架构,内置账号池管理、智能轮询、自动故障转移和健康检查机制,确保 99.9% 的服务可用性。
Note
**🎉 重要里程碑**
- 感谢阮一峰老师在 周刊 359 期 的推荐
📅 版本更新日志
- 2025.12.25 - 配置文件统一管理:所有配置集中到
configs/目录,Docker 用户需更新挂载路径为-v "本地路径:/app/configs"- 2025.12.11 - Docker 镜像自动构建并发布到 Docker Hub: justlikemaki/aiclient-2-api
- 2025.11.30 - 新增 Antigravity 协议支持,支持通过 Google 内部接口访问 Gemini 3 Pro、Claude Sonnet 4.5 等模型
- 2025.11.16 - 新增 Ollama 协议支持,统一接口访问所有支持的模型(Claude、Gemini、Qwen、OpenAI等)
- 2025.11.11 - 新增 Web UI 管理控制台,支持实时配置管理和健康状态监控
- 2025.11.06 - 新增对 Gemini 3 预览版的支持,增强模型兼容性和性能优化
- 2025.10.18 - Kiro 开放注册,新用户赠送 500 额度,已完整支持 Claude Sonnet 4.5
- 2025.09.01 - 集成 Qwen Code CLI,新增
qwen3-coder-plus模型支持- 2025.08.29 - 发布账号池管理功能,支持多账号轮询、智能故障转移和自动降级策略
- 配置方式:在
configs/config.json中添加PROVIDER_POOLS_FILE_PATH参数- 参考配置:provider_pools.json
- 历史已开发
- 支持 Gemini CLI、Kiro 等客户端2API
- OpenAI ,Claude ,Gemini 三协议互转,自动智能切换
使用 AIClient-2-API 最推荐的方式是通过自动化脚本启动,并直接在 Web UI 控制台 进行可视化配置。
docker run -d -p 3000:3000 -p 8085:8085 -p 8086:8086 -p 19876-19880:19876-19880 --restart=always -v "指定路径:/app/configs" --name aiclient2api justlikemaki/aiclient-2-api
参数说明:
-d:后台运行容器-p 3000:3000 ...:端口映射。3000 为 Web UI,其余为 OAuth 回调端口(Gemini: 8085, Antigravity: 8086, Kiro: 19876-19880)--restart=always:容器自动重启策略-v "指定路径:/app/configs":挂载配置目录(请将"指定路径"替换为实际路径,如 /home/user/aiclient-configs)--name aiclient2api:容器名称chmod +x install-and-run.sh && ./install-and-run.shinstall-and-run.bat服务器启动后,打开浏览器访问: 👉 http://localhost:3000
默认密码:
admin123(登录后可在控制台或修改pwd文件变更)
进入 "配置管理" 页面,您可以直接:
========================================
AI Client 2 API 快速安装启动脚本
========================================
[检查] 正在检查Node.js是否已安装...
✅ Node.js已安装,版本: v20.10.0
✅ 找到package.json文件
✅ node_modules目录已存在
✅ 项目文件检查完成
========================================
启动AI Client 2 API服务器...
========================================
🌐 服务器将在 http://localhost:3000 启动
📖 访问 http://localhost:3000 查看管理界面
⏹️ 按 Ctrl+C 停止服务器
💡 提示:脚本会自动安装依赖并启动服务器。如果遇到任何问题,脚本会提供清晰的错误信息和解决建议。

功能完善的 Web 管理界面,包含:
📊 仪表盘:系统概览、交互式路由示例、客户端配置指南
⚙️ 配置管理:实时参数修改,支持所有提供商(Gemini、Antigravity、OpenAI、Claude、Kiro、Qwen),包含高级设置和文件上传
🔗 提供商池:监控活动连接、提供商健康统计、启用/禁用管理
📁 配置文件:OAuth 凭据集中管理,支持搜索过滤和文件操作
📜 实时日志:系统日志和请求日志实时显示,带管理控制
🔐 登录验证:默认密码 admin123,可通过 pwd 文件修改
访问:http://localhost:3000 → 登录 → 侧边栏导航 → 立即生效
支持图片、文档等多种类型的输入,为您提供更丰富的交互体验和更强大的应用场景。
无缝支持以下最新大模型,仅需在 Web UI 或 configs/config.json 中配置相应的端点:
💡 提示:为了获得最佳体验,建议通过 Web UI 控制台 进行可视化授权管理。
在 Web UI 管理界面中,您可以极速完成授权配置:
configs/ 对应目录下,您可以在 “配置文件” 页面看到新生成的凭据。--project-id 指定{
"temperature": 0,
"top_p": 1
}
kiro-auth-token.json 凭据文件configs/config.json 中设置 PROVIDER_POOLS_FILE_PATH 指向号池配置文件--provider-pools-file <path> 参数指定号池配置文件路径支持通过 notSupportedModels 配置排除不支持的模型,系统会自动跳过这些提供商。
配置方式:在 configs/provider_pools.json 中为提供商添加 notSupportedModels 字段:
{
"gemini-cli-oauth": [
{
"uuid": "provider-1",
"notSupportedModels": ["gemini-3.0-pro", "gemini-3.5-flash"],
"checkHealth": true
}
]
}
工作原理:
使用场景:
当某一 Provider Type(如 gemini-cli-oauth)下的所有账号都因 429 配额耗尽或被标记为 unhealthy 时,系统能够自动 fallback 到另一个兼容的 Provider Type(如 gemini-antigravity),而不是直接返回错误。
配置方式:在 configs/config.json 中添加 providerFallbackChain 配置:
{
"providerFallbackChain": {
"gemini-cli-oauth": ["gemini-antigravity"],
"gemini-antigravity": ["gemini-cli-oauth"],
"claude-kiro-oauth": ["claude-custom"],
"claude-custom": ["claude-kiro-oauth"]
}
}
工作原理:
gemini-cli-oauth → gemini-antigravity → openai-custom使用场景:
注意事项:
gemini-* 之间、claude-* 之间)各服务的授权凭据文件默认存储位置:
| 服务 | 默认路径 | 说明 |
|---|---|---|
| Gemini | ~/.gemini/oauth_creds.json | OAuth 认证凭据 |
| Kiro | ~/.aws/sso/cache/kiro-auth-token.json | Kiro 认证令牌 |
| Qwen | ~/.qwen/oauth_creds.json | Qwen OAuth 凭据 |
| Antigravity | ~/.antigravity/oauth_creds.json | Antigravity OAuth 凭据 (支持 Claude 4.5 Opus) |
说明:
~表示用户主目录(Windows:C:\Users\用户名,Linux/macOS:/home/用户名或/Users/用户名)
自定义路径:可通过配置文件中的相关参数或环境变量指定自定义存储位置
本项目支持 Ollama 协议,可以通过统一接口访问所有支持的模型。Ollama 端点提供 /api/tags、/api/chat、/api/generate 等标准接口。
Ollama API 调用示例:
curl http://localhost:3000/ollama/api/tags
curl http://localhost:3000/ollama/api/chat \
-H "Content-Type: application/json" \
-d '{
"model": "[Claude] claude-sonnet-4.5",
"messages": [
{"role": "user", "content": "你好"}
]
}'
[Kiro] - 使用 Kiro API 访问 Claude 模型[Claude] - 使用 Claude 官方 API[Gemini CLI] - 通过 Gemini CLI OAuth 访问[OpenAI] - 使用 OpenAI 官方 API[Qwen CLI] - 通过 Qwen OAuth 访问问题描述:点击"生成授权"后,浏览器打开授权页面但授权失败或无法完成。
解决方案:
问题描述:启动服务时提示端口已被占用(如 EADDRINUSE)。
解决方案:
# Windows - 查找占用端口的进程
netstat -ano | findstr :3000
# 然后使用任务管理器结束对应 PID 的进程
# Linux/macOS - 查找并结束占用端口的进程
lsof -i :3000
kill -9 <PID>
或者修改 configs/config.json 中的端口配置使用其他端口。
问题描述:Docker 容器启动失败或立即退出。
解决方案:
docker logs aiclient2api 查看错误信息-v 参数中的本地路径存在且有读写权限docker pull justlikemaki/aiclient-2-api:latest问题描述:上传或配置凭据文件后,系统提示无法识别或格式错误。
解决方案:
问题描述:API 请求频繁返回 429 Too Many Requests 错误。
解决方案:
provider_pools.json,启用轮询机制config.json 中配置 providerFallbackChain,实现跨类型降级问题描述:请求特定模型时返回错误或提示模型不可用。
解决方案:
notSupportedModels 排除不支持的模型问题描述:浏览器无法打开 http://localhost:3000。
解决方案:
-p 3000:3000 参数正确http://127.0.0.1:3000问题描述:使用流式输出时,响应中途中断或不完整。
解决方案:
问题描述:在 Web UI 中修改配置后,服务行为未改变。
解决方案:
configs/config.json 确认修改已写入问题描述:调用 API 接口时返回 404 Not Found 错误。
解决方案:
/v1/chat/completions、/ollama/api/chat 等/v1/chat/completions),导致路径重复。请查看控制台中的实际请求 URL,移除多余的路径部分http://localhost:3000 查看 Web UI问题描述:调用 API 接口时返回 Unauthorized: API key is invalid or missing. 错误。
解决方案:
configs/config.json 或 Web UI 中正确配置API KeyAuthorization: Bearer your-api-key本项目遵循 GNU General Public License v3 (GPLv3) 开源许可。详情请查看根目录下的 LICENSE 文件。
本项目的开发受到了官方 Google Gemini CLI 的极大启发,并参考了Cline 3.18.0 版本 gemini-cli.ts 的部分代码实现。在此对 Google 官方团队和 Cline 开发团队的卓越工作表示衷心的感谢!
感谢以下所有为 AIClient-2-API 项目做出贡献的开发者:
非常感谢以下赞助者对本项目的支持:
本项目(AIClient-2-API)仅供学习和研究使用。用户在使用本项目时,应自行承担所有风险。作者不对因使用本项目而导致的任何直接、间接或 consequential 损失承担责任。
本项目是一个API代理工具,不提供任何AI模型服务。所有AI模型服务由相应的第三方提供商(如Google、OpenAI、Anthropic等)提供。用户在使用本项目访问这些第三方服务时,应遵守各第三方服务的使用条款和政策。作者不对第三方服务的可用性、质量、安全性或合法性承担责任。
本项目在本地运行,不会收集或上传用户的任何数据。但用户在使用本项目时,应注意保护自己的API密钥和其他敏感信息。建议用户定期检查和更新自己的API密钥,并避免在不安全的网络环境中使用本项目。
用户在使用本项目时,应遵守所在国家/地区的法律法规。严禁将本项目用于任何非法用途。如因用户违反法律法规而导致的任何后果,由用户自行承担全部责任。
Content type
Image
Digest
sha256:9df1df294…
Size
89.7 MB
Last updated
9 months ago
docker pull yz029/aiclient-2-api