aiapi
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
This tool is a unified API proxy server that translates multiple AI services (GitHub Copilot, OpenCode Zen, Google Antigravity, AWS Kiro, Factory AI Droids) into OpenAI and Anthropic-compatible APIs. It enables seamless integration with tools like Claude Code and opencode.
Security Assessment
The code scan of 12 files found no dangerous patterns and no hardcoded secrets. The tool does not request dangerous filesystem or execution permissions. However, by its very nature as a proxy, it makes network requests to multiple third-party AI provider endpoints and handles sensitive authentication tokens (such as GitHub OAuth tokens and enterprise account credentials). The token management and local storage of credentials introduces a moderate attack surface if the local environment is compromised. Overall risk is rated Medium due to the handling of sensitive authentication data and routing of AI conversations through a third-party proxy.
Quality Assessment
The repository is licensed under MIT and was last updated very recently (0 days ago), indicating active development. However, it has extremely low community visibility with only 5 GitHub stars. A significant concern is that the README explicitly states this project is no longer being updated, directing users to a different repository (copilot-api-plus) instead. The documentation is comprehensive and written in Chinese, detailing multiple backend modes, Docker deployment, and CLI usage. Community trust level is low given the minimal adoption and the project's deprecated status.
Verdict
Use with caution — the code itself appears clean, but the project is deprecated in favor of another repository, has minimal community validation, and handles highly sensitive authentication tokens for multiple AI services.
Unified AI API proxy server - GitHub Copilot, OpenCode Zen, Google Antigravity, AWS Kiro, Factory AI Droids
你们怎么啥都能找到啊,这个项目停止更新了,只专注这个项目了https://github.com/imbuxiangnan-cyber/copilot-api-plus,给这个项目星星吧。
AIAPI
AI API 代理服务器,将 GitHub Copilot、OpenCode Zen、Google Antigravity、AWS Kiro、Factory AI Droids 等 AI 服务转换为 OpenAI 和 Anthropic 兼容 API,支持与 Claude Code、opencode 等工具无缝集成。
目录
功能特点
| 功能 | 说明 |
|---|---|
| 多后端支持 | GitHub Copilot、OpenCode Zen、Google Antigravity、AWS Kiro、Factory AI Droids 五种后端可选 |
| 双协议兼容 | 同时支持 OpenAI Chat Completions API 和 Anthropic Messages API |
| 多账号池管理 | 支持多账号配置,自动轮换和故障转移 |
| Request ID 追踪 | 每个请求自动分配唯一 ID,便于日志追踪 |
| Claude Code 集成 | 一键生成 Claude Code 启动命令 (--claude-code) |
| 使用量监控 | Web 仪表盘实时查看 API 使用情况 |
| 自动认证 | Token 过期自动刷新,无需手动干预 |
| 速率限制 | 内置请求频率控制,避免触发限制 |
| 代理支持 | 支持 HTTP/HTTPS 代理,配置持久化 |
| Docker 支持 | 提供完整的 Docker 部署方案 |
快速开始
方式一:npm/npx(推荐)
# npx 直接运行(无需安装)
npx aiapi-server start
npx aiapi-server start --kiro
npx aiapi-server start --droids
# 或全局安装
npm install -g aiapi-server
aiapi start
aiapi start --kiro
方式二:源码运行
# 克隆项目
git clone https://github.com/imbuxiangnan-cyber/aiapi.git
cd aiapi
# 安装依赖
bun install
# 开发模式
bun run dev
# 生产环境
bun run start
服务器启动后,默认监听 http://localhost:4141。
详细使用指南
1. GitHub Copilot 模式(默认)
使用你的 GitHub Copilot 订阅访问 AI 模型。
前置要求
- GitHub 账户
- 有效的 Copilot 订阅(Individual / Business / Enterprise)
启动步骤
bun run start
首次运行会引导你完成 GitHub OAuth 认证:
- 终端显示设备码,例如:
XXXX-XXXX - 打开浏览器访问:https://github.com/login/device
- 输入设备码,点击授权
- 返回终端,等待认证完成
认证成功后,Token 会保存到本地,下次启动无需重新认证。
企业/商业账户
# Business 计划
aiapi start --account-type business
# Enterprise 计划
aiapi start --account-type enterprise
可用模型
| 模型 | ID | 上下文长度 |
|---|---|---|
| Claude Sonnet 4 | claude-sonnet-4 |
200K |
| Claude Sonnet 4.5 | claude-sonnet-4.5 |
200K |
| GPT-4.1 | gpt-4.1 |
1M |
| o4-mini | o4-mini |
200K |
| Gemini 2.5 Pro | gemini-2.5-pro |
1M |
2. OpenCode Zen 模式
使用 OpenCode Zen 的多模型 API 服务,支持 GPT-5、Claude、Gemini 等顶级编程模型。
前置要求
- 访问 https://opencode.ai/zen
- 注册账号并创建 API Key
可用模型
| 模型 | ID | 说明 |
|---|---|---|
| GPT-5.2 | gpt-5.2 |
OpenAI 最新模型 |
| GPT-5.1 Codex Max | gpt-5.1-codex-max |
代码优化版 |
| Claude Opus 4.5 | claude-opus-4-5 |
Anthropic Claude (200K) |
| Claude Sonnet 4.5 | claude-sonnet-4-5 |
Anthropic Claude (200K) |
| Gemini 3 Pro | gemini-3-pro |
Google Gemini |
| Qwen3 Coder | qwen3-coder |
Alibaba Qwen |
| Kimi K2 | kimi-k2 |
Moonshot |
更多模型请访问 opencode.ai/zen
3. Google Antigravity 模式
使用 Google Antigravity API 服务,支持 Gemini 和 Claude 模型。
前置要求
- Google 账户
认证方式
方式一:API Key(推荐)
- 访问 https://aistudio.google.com/apikey 获取 API Key
- 使用环境变量启动:
# Windows PowerShell
$env:GEMINI_API_KEY = "your_api_key"
bun run start
# Windows CMD
set GEMINI_API_KEY=your_api_key
bun run start
可用模型
| 模型 | ID | 说明 |
|---|---|---|
| Gemini 2.5 Pro | gemini-2.5-pro-exp-03-25 |
Google Gemini |
| Gemini 2.0 Flash | gemini-2.0-flash-exp |
快速响应 |
| Claude Opus 4.5 | claude-opus-4-5 |
Anthropic Claude |
| Claude Sonnet 4.5 | claude-sonnet-4-5 |
Anthropic Claude |
特性
- 自动 Token 刷新
- 多账户支持,自动轮换
- 配额用尽自动切换账户
- 支持 Thinking 模型(思考链输出)
4. AWS Kiro 模式
使用 AWS Kiro (CodeWhisperer) 服务访问 AI 模型。
前置要求
- AWS 账户
- CodeWhisperer 访问权限
启动步骤
bun run start --kiro
# 或使用别名
bun run start -k
首次运行会引导你完成 AWS 认证:
- 选择认证方式(Social 或 IdC)
- 按提示完成 AWS Builder ID 或 IAM Identity Center 登录
- 认证成功后,凭证会保存到本地
可用模型
| 模型 | ID | 说明 |
|---|---|---|
| Claude Sonnet 4 | claude-sonnet-4-20250514 |
Anthropic Claude |
| Claude 3.5 Sonnet | claude-3-5-sonnet-20241022 |
Anthropic Claude |
| Claude 3.5 Haiku | claude-3-5-haiku-20241022 |
快速响应 |
| Amazon Nova Pro | amazon-nova-pro-v1:0 |
Amazon Nova |
| Amazon Nova Lite | amazon-nova-lite-v1:0 |
轻量版 |
5. Factory AI Droids 模式
使用 Factory AI Droids 服务访问多种 AI 模型。
前置要求
- 访问 https://factory.ai/
- 注册账号并创建 API Key(格式:
fk-xxx)
启动步骤
bun run start --droids
# 或使用别名
bun run start -d
首次运行会提示输入 Droids API Key。
可用模型
| 模型 | ID | 说明 |
|---|---|---|
| Claude Sonnet 4 | claude-sonnet-4-20250514 |
Anthropic Claude |
| Claude 3.5 Sonnet | claude-3-5-sonnet-20241022 |
Anthropic Claude |
| GPT-4o | gpt-4o |
OpenAI |
| GPT-4o Mini | gpt-4o-mini |
OpenAI 轻量版 |
| o1 | o1 |
OpenAI 推理模型 |
| o1-mini | o1-mini |
OpenAI 推理轻量版 |
| Gemini 2.0 Flash | gemini-2.0-flash |
Google Gemini |
| Gemini 1.5 Pro | gemini-1.5-pro |
Google Gemini |
多平台轮换
多平台轮换功能允许你同时使用多个平台,自动在它们之间轮换请求,实现负载均衡和故障转移。
开启轮换
轮换功能默认关闭,需要手动开启。通过代码调用:
import { enableRotation, disableRotation } from "~/lib/auto-router";
// 开启轮转,指定参与的平台
enableRotation(["kiro", "antigravity", "droids"]);
// 关闭轮转
disableRotation();
工作原理
- 平台内账号轮换:在当前平台内部,轮换使用所有已配置的账号
- 模型过滤:只选择支持当前模型的平台
- 跨平台故障转移:当前平台所有账号都被限额或连续多次错误后,自动切换到下一个平台,继续账号轮换
- 循环机制:所有平台轮换完毕后,从头开始
平台1 (kiro): 账号A → 账号B → 账号C (轮换)
↓ 所有账号被限额/多次错误
平台2 (antigravity): 账号D → 账号E (轮换)
↓ 所有账号被限额/多次错误
平台3 (droids): 账号F (轮换)
↓ 所有平台用完
返回平台1 (kiro): 继续轮换...
故障处理
import { markPlatformFailed, resetFailedPlatforms } from "~/lib/auto-router";
// 标记平台失败(后续请求会跳过该平台)
markPlatformFailed("kiro");
// 重置所有失败状态
resetFailedPlatforms();
注意事项和限制
重要:多平台轮转存在以下问题,使用前请仔细阅读。
1. 上下文不连续
问题:每次请求可能路由到不同平台,导致对话上下文丢失。
用户: 请帮我写一个函数 → 平台A
AI: 好的,这是函数...
用户: 请优化这个函数 → 平台B (不知道之前写了什么函数!)
解决方案:
- 对于需要上下文的对话,使用手动映射固定到单一平台
- 或者在每次请求中包含完整的对话历史
2. 模型名称不一致
问题:同一个模型在不同平台可能有不同的名称。
| 平台 | 模型名称 |
|---|---|
| Copilot | claude-sonnet-4 |
| Kiro | CLAUDE_SONNET_4_V1_0 |
| Antigravity | claude-sonnet-4-5 |
解决方案:使用模型映射功能统一模型名称。
3. 响应格式差异
问题:不同平台返回的响应格式可能略有不同(如 token 计数、finish_reason 等)。
影响:某些依赖特定响应字段的客户端可能出现兼容性问题。
4. 配额和限制不同
问题:各平台的配额、速率限制、最大 token 数等可能不同。
建议:
- 了解各平台的限制
- 设置合理的
max_tokens值 - 监控各平台的使用量
5. 适用场景
| 场景 | 是否适合轮转 | 原因 |
|---|---|---|
| 单次问答 | ✅ 适合 | 无上下文依赖 |
| 代码生成 | ✅ 适合 | 通常是独立任务 |
| 多轮对话 | ❌ 不适合 | 需要上下文连续 |
| Claude Code | ⚠️ 谨慎 | 部分功能依赖上下文 |
模型映射
模型映射功能统一处理不同平台之间的模型名称差异,支持自动映射和手动配置。
自动映射
系统内置以下自动映射功能:
1. 模型别名
常用别名会自动转换为标准名称:
| 输入别名 | 标准名称 |
|---|---|
claude-4.5-opus |
claude-opus-4-5 |
claude-4.5-sonnet |
claude-sonnet-4-5 |
claude-3.5-sonnet |
claude-3-5-sonnet |
gpt4o |
gpt-4o |
gemini-pro |
gemini-1.5-pro |
gemini-flash |
gemini-2.0-flash |
2. Kiro 平台自动转换
Kiro (CodeWhisperer) 使用特殊的内部格式,系统会自动转换:
claude-sonnet-4 → CLAUDE_SONNET_4_V1_0
claude-opus-4-5 → CLAUDE_OPUS_4_5_V1_0
claude-3-5-haiku → CLAUDE_3_5_HAIKU_V1_0
3. 智能平台推荐
当请求的模型在当前平台不可用时,系统会自动推荐合适的平台:
| 模型类型 | 推荐平台 |
|---|---|
| Claude 系列 | Kiro |
| GPT 系列 | Copilot |
| Gemini 系列 | Antigravity |
| Amazon Nova | Kiro |
手动配置
跨平台模型映射
为同一模型在不同平台设置不同的名称:
import { setCrossPlatformMappings } from "~/lib/model-mapper";
setCrossPlatformMappings({
"claude-sonnet-4": {
copilot: "claude-sonnet-4",
kiro: "claude-sonnet-4-20250514",
antigravity: "claude-sonnet-4-5",
},
});
平台到平台映射
当从一个平台切换到另一个平台时,指定模型的对应关系:
import { addPlatformMapping } from "~/lib/model-mapper";
// 当 Kiro 的 claude-sonnet-4-5 切换到 Antigravity 时,使用 thinking 版本
addPlatformMapping("kiro", "claude-sonnet-4-5", {
antigravity: "claude-sonnet-4-5-thinking",
});
API 函数
| 函数 | 说明 |
|---|---|
normalizeModelName(model) |
将别名转换为标准名称 |
mapModelForPlatform(model, platform) |
获取模型在指定平台的名称 |
setCrossPlatformMappings(mappings) |
设置跨平台映射 |
addPlatformMapping(source, model, targets) |
添加平台到平台映射 |
代理配置
如果你需要通过代理访问网络,有两种配置方式:
方式一:持久化配置(推荐)
配置一次,永久生效,下次启动自动使用。
# 交互式配置
aiapi proxy --set
# 或直接设置
aiapi proxy --http-proxy http://127.0.0.1:7890
# 同时设置 HTTP 和 HTTPS 代理
aiapi proxy --http-proxy http://127.0.0.1:7890 --https-proxy http://127.0.0.1:7890
代理管理命令
# 查看当前代理配置
aiapi proxy
# 启用代理
aiapi proxy --enable
# 禁用代理(保留设置)
aiapi proxy --disable
# 清除代理配置
aiapi proxy --clear
示例:配置 Clash 代理
# Clash 默认端口 7890
aiapi proxy --http-proxy http://127.0.0.1:7890
# 验证配置
aiapi proxy
# 输出:
# Current proxy configuration:
# Status: ✅ Enabled
# HTTP_PROXY: http://127.0.0.1:7890
# HTTPS_PROXY: http://127.0.0.1:7890
方式二:环境变量(临时)
仅当次启动生效:
# Windows PowerShell
$env:HTTP_PROXY = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
aiapi start --proxy-env
# Windows CMD
set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890
aiapi start --proxy-env
# Linux/macOS
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
aiapi start --proxy-env
代理配置优先级
--proxy-env参数(从环境变量读取)- 持久化配置(
proxy --set设置的) - 无代理
Claude Code 集成
Claude Code 是 Anthropic 的 AI 编程助手。
自动配置(推荐)
# 使用 GitHub Copilot 作为后端
aiapi start --claude-code
# 使用 OpenCode Zen 作为后端
aiapi start --zen --claude-code
# 使用 Google Antigravity 作为后端
aiapi start --antigravity --claude-code
# 使用 AWS Kiro 作为后端
aiapi start --kiro --claude-code
# 使用 Factory AI Droids 作为后端
aiapi start --droids --claude-code
运行后:
- 选择主模型(用于代码生成)
- 选择快速模型(用于后台任务)
- 启动命令会自动复制到剪贴板
- 打开新终端,粘贴并运行命令启动 Claude Code
手动配置
在项目根目录创建 .claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:4141",
"ANTHROPIC_AUTH_TOKEN": "dummy",
"ANTHROPIC_MODEL": "claude-sonnet-4",
"ANTHROPIC_SMALL_FAST_MODEL": "gpt-4.1",
"DISABLE_NON_ESSENTIAL_MODEL_CALLS": "1"
}
}
然后启动 aiapi 服务器后,在该项目目录运行 claude 命令。
opencode 集成
opencode 是一个现代 AI 编程助手。
在项目根目录创建 opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"aiapi": {
"api": "openai-compatible",
"name": "AIAPI",
"options": {
"baseURL": "http://127.0.0.1:4141/v1"
},
"models": {
"claude-sonnet-4": {
"name": "Claude Sonnet 4",
"id": "claude-sonnet-4",
"max_tokens": 64000,
"profile": "coder",
"limit": { "context": 200000 }
}
}
}
}
}
API 端点
服务器启动后,默认监听 http://localhost:4141。
OpenAI 兼容端点
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/chat/completions |
POST | 聊天补全(支持流式) |
/v1/models |
GET | 模型列表 |
/v1/embeddings |
POST | 文本嵌入(仅 Copilot) |
Anthropic 兼容端点
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/messages |
POST | 消息 API(支持流式) |
/v1/messages/count_tokens |
POST | Token 计数 |
专用端点
| 路由前缀 | 说明 |
|---|---|
/copilot/v1/* |
GitHub Copilot 专用 |
/zen/v1/* |
OpenCode Zen 专用 |
/antigravity/v1/* |
Google Antigravity 专用 |
/kiro/v1/* |
AWS Kiro 专用 |
/droids/v1/* |
Factory AI Droids 专用 |
监控端点
| 端点 | 方法 | 说明 |
|---|---|---|
/usage |
GET | 使用量统计(仅 Copilot) |
/token |
GET | 当前 Token 信息 |
/token-pool |
GET | Token 池状态 |
调用示例
# OpenAI 格式
curl http://localhost:4141/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4",
"messages": [{"role": "user", "content": "Hello!"}]
}'
# Anthropic 格式
curl http://localhost:4141/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: dummy" \
-d '{
"model": "claude-sonnet-4",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello!"}]
}'
命令行参考
命令列表
| 命令 | 说明 |
|---|---|
start |
启动 API 服务器 |
auth |
仅执行 GitHub 认证流程 |
logout |
清除已保存的凭证 |
proxy |
配置代理设置 |
antigravity |
管理 Google Antigravity 账户 |
check-usage |
查看 Copilot 使用量 |
debug |
显示调试信息 |
start 命令参数
| 参数 | 别名 | 默认值 | 说明 |
|---|---|---|---|
--port |
-p |
4141 | 监听端口 |
--verbose |
-v |
false | 详细日志 |
--account-type |
-a |
individual | 账户类型 (individual/business/enterprise) |
--claude-code |
-c |
false | 生成 Claude Code 启动命令 |
--zen |
-z |
false | 启用 OpenCode Zen 模式 |
--zen-api-key |
- | - | Zen API Key |
--antigravity |
- | false | 启用 Google Antigravity 模式 |
--antigravity-client-id |
- | - | Antigravity OAuth Client ID |
--antigravity-client-secret |
- | - | Antigravity OAuth Client Secret |
--kiro |
-k |
false | 启用 AWS Kiro 模式 |
--droids |
-d |
false | 启用 Factory AI Droids 模式 |
--rate-limit |
-r |
- | 请求间隔(秒) |
--wait |
-w |
false | 达到限制时等待而非报错 |
--manual |
- | false | 手动审批每个请求 |
--github-token |
-g |
- | 直接提供 GitHub Token |
--show-token |
- | false | 显示 Token 信息 |
--proxy-env |
- | false | 从环境变量读取代理 |
proxy 命令参数
| 参数 | 说明 |
|---|---|
--set |
交互式配置代理 |
--enable |
启用已保存的代理 |
--disable |
禁用代理(保留设置) |
--clear |
清除代理配置 |
--show |
显示当前配置 |
--http-proxy |
HTTP 代理 URL |
--https-proxy |
HTTPS 代理 URL |
--no-proxy |
不走代理的主机列表 |
logout 命令参数
| 参数 | 别名 | 说明 |
|---|---|---|
--github |
-g |
仅清除 GitHub Copilot 凭证 |
--zen |
-z |
仅清除 Zen 凭证 |
--antigravity |
- | 仅清除 Antigravity 凭证 |
--kiro |
-k |
仅清除 Kiro 凭证 |
--droids |
-d |
仅清除 Droids 凭证 |
--all |
-a |
清除所有凭证 |
提示:不带参数运行
logout会显示交互式菜单供选择。
antigravity 子命令
管理 Google Antigravity 账户:
| 子命令 | 说明 |
|---|---|
add |
添加新的 Antigravity 账户(OAuth 登录) |
list |
列出所有已配置的账户及其状态 |
remove <index> |
按索引删除指定账户 |
clear |
清除所有 Antigravity 账户(需确认) |
# 示例
aiapi antigravity add # 添加账户
aiapi antigravity list # 列出账户
aiapi antigravity remove 0 # 删除索引为 0 的账户
aiapi antigravity clear # 清除所有账户
Docker 部署
构建镜像
docker build -t aiapi .
运行容器
docker run -p 4141:4141 \
-v ./data:/root/.local/share/aiapi \
aiapi
Docker Compose
version: "3.8"
services:
aiapi:
build: .
ports:
- "4141:4141"
volumes:
- ./data:/root/.local/share/aiapi
environment:
- GH_TOKEN=your_github_token # 可选
restart: unless-stopped
使用代理
docker run -p 4141:4141 \
-e HTTP_PROXY=http://host.docker.internal:7890 \
-e HTTPS_PROXY=http://host.docker.internal:7890 \
-v ./data:/root/.local/share/aiapi \
aiapi start --proxy-env
常见问题
数据存储位置
所有数据存储在 ~/.local/share/aiapi/ 目录下:
| 文件 | 说明 |
|---|---|
github_token |
GitHub Token |
zen-auth.json |
Zen API Key |
antigravity-accounts.json |
Antigravity 账户 |
kiro-auth.json |
Kiro 认证信息 |
droids-auth.json |
Droids API Key |
config.json |
代理等配置 |
切换账户
# 交互式选择要清除的凭证
aiapi logout
# 仅清除 GitHub Copilot 凭证
aiapi logout --github
# 或简写
aiapi logout -g
# 清除 Zen 凭证
aiapi logout --zen
# 清除 Antigravity 凭证
aiapi logout --antigravity
# 清除 Kiro 凭证
aiapi logout --kiro
# 清除 Droids 凭证
aiapi logout --droids
# 清除所有凭证
aiapi logout --all
查看使用量
# 命令行查看(仅 Copilot)
aiapi check-usage
启动服务器后,也可以访问监控端点:
# 使用量统计
curl http://localhost:4141/usage
# Token 信息
curl http://localhost:4141/token
# Token 池状态
curl http://localhost:4141/token-pool
调试问题
# 显示调试信息
aiapi debug
# JSON 格式输出
aiapi debug --json
# 启用详细日志
aiapi start --verbose
速率限制
避免触发平台的滥用检测:
# 设置请求间隔 30 秒
aiapi start --rate-limit 30
# 达到限制时等待而非报错
aiapi start --rate-limit 30 --wait
# 手动审批每个请求
aiapi start --manual
企业/商业账户
GitHub Copilot Business 或 Enterprise 用户:
# Business 计划
aiapi start --account-type business
# Enterprise 计划
aiapi start --account-type enterprise
免责声明
警告:这是多平台 API 的逆向工程代理。不受官方支持,可能随时失效。使用风险自负。
安全提示:过度的自动化或脚本化使用可能触发平台的滥用检测系统,导致访问被暂停。请负责任地使用。
许可证
MIT License
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi