/AIClient-2-API

AIClient2API:模拟Gemini CLI和Kiro 客户端请求,兼容OpenAI API。可每日千次Gemini模型请求, 免费使用Kiro内置Claude模型。通过API轻松接入任何客户端,让AI开发更高效!

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

logo

AIClient-2-API 🚀

一个能将多种仅客户端内使用的大模型 API(Gemini CLI, Qwen Code Plus, Kiro Claude...),模拟请求,统一封装为本地 OpenAI 兼容接口的强大代理。

Ask DeepWiki

License: GPL v3 Node.js Docker

中文 | English | 日本語 | 📚 完整文档

AIClient2API 是一个突破客户端限制的 API 代理服务,将 Gemini CLI、Qwen Code Plus、Kiro Claude 等原本仅限客户端使用的免费大模型,转换为可供任何应用调用的标准 OpenAI 兼容接口。基于 Node.js 构建,支持 OpenAI、Claude、Gemini 三大协议的智能互转,让 Cherry-Studio、NextChat、Cline 等工具能够免费大量使用 Claude Sonnet 4.5、Gemini 2.5 Flash、Qwen3 Coder Plus 等高级模型。项目采用策略模式和适配器模式的模块化架构,内置账号池管理、智能轮询、自动故障转移和健康检查机制,确保 99.9% 的服务可用性。

Note

🎉 重要里程碑

📅 版本更新日志

  • 2025.10.18 - Kiro 开放注册,新用户赠送 500 额度,已完整支持 Claude Sonnet 4.5
  • 2025.09.01 - 集成 Qwen Code CLI,新增 qwen3-coder-plus 模型支持
  • 2025.08.29 - 发布账号池管理功能,支持多账号轮询、智能故障转移和自动降级策略
    • 配置方式:在 config.json 中添加 PROVIDER_POOLS_FILE_PATH 参数
    • 参考配置:provider_pools.json

💡 核心优势

🎯 统一接入,一站式管理

  • 多模型统一接口:通过标准 OpenAI 兼容协议,一次配置即可接入 Gemini、Claude、GPT、Qwen Code、Kimi K2、GLM-4.6 等主流大模型
  • 灵活切换机制:支持通过启动参数、Path 路由、环境变量三种方式动态切换模型,满足不同场景需求
  • 零成本迁移:完全兼容 OpenAI API 规范,Cherry-Studio、NextChat、Cline 等工具无需修改即可使用
  • 多协议智能转换:支持 OpenAI、Claude、Gemini 三大协议间的智能转换,实现跨协议模型调用
    • 使用 OpenAI 协议调用 Claude 模型:可使用 claude-customclaude-kiro-oauth 提供商
    • 使用 OpenAI 协议调用 Gemini 模型:可使用 gemini-cli-oauth 提供商
    • 使用 Claude 协议调用 Gemini 模型:可使用 gemini-cli-oauth 提供商
    • 使用 Claude 协议调用 OpenAI 模型:可使用 openai-customopenai-qwen-oauth 提供商

🚀 突破限制,提升效率

  • 绕过官方限制:利用 OAuth 授权机制,有效突破 Gemini 等服务的免费 API 速率和配额限制
  • 免费高级模型:通过 Kiro API 模式免费使用 Claude Sonnet 4.5,通过 Qwen OAuth 模式使用 Qwen3 Coder Plus,降低使用成本
  • 账号池智能调度:支持多账号轮询、自动故障转移和配置降级,确保 99.9% 服务可用性

🛡️ 安全可控,数据透明

  • 全链路日志记录:捕获所有请求和响应数据,支持审计、调试
  • 私有数据集构建:基于日志数据快速构建专属训练数据集
  • 系统提示词管理:支持覆盖和追加两种模式,实现统一基础指令与个性化扩展的完美结合

🔧 开发友好,易于扩展

  • 模块化架构:基于策略模式和适配器模式,新增模型提供商仅需 3 步
  • 完整测试保障:集成测试和单元测试覆盖率 90%+,确保代码质量
  • 容器化部署:提供 Docker 支持,一键部署,跨平台运行
  • MCP 协议支持:完美兼容 Model Context Protocol,轻松扩展功能

📑 快速导航


🎨 模型协议与提供商关系图

本项目通过不同的协议(Protocol)支持多种模型提供商(Model Provider)。以下是它们之间的关系概述:

  • OpenAI 协议 (P_OPENAI):由 openai-custom, gemini-cli-oauth, claude-custom, claude-kiro-oauthopenai-qwen-oauth 等模型提供商实现。
  • Claude 协议 (P_CLAUDE):由 claude-custom, claude-kiro-oauth, gemini-cli-oauth, openai-customopenai-qwen-oauth 等模型提供商实现。
  • Gemini 协议 (P_GEMINI):由 gemini-cli-oauth 模型提供商实现。

详细关系图如下:

 graph TD
     subgraph Core_Protocols["核心协议"]
         P_OPENAI[OpenAI Protocol]
         P_GEMINI[Gemini Protocol]
         P_CLAUDE[Claude Protocol]
     end
 
     subgraph Supported_Model_Providers["支持的模型提供商"]
         MP_OPENAI[openai-custom]
         MP_GEMINI[gemini-cli-oauth]
         MP_CLAUDE_C[claude-custom]
         MP_CLAUDE_K[claude-kiro-oauth]
         MP_QWEN[openai-qwen-oauth]
     end
 
     P_OPENAI ---|支持| MP_OPENAI
     P_OPENAI ---|支持| MP_QWEN
     P_OPENAI ---|支持| MP_GEMINI
     P_OPENAI ---|支持| MP_CLAUDE_C
     P_OPENAI ---|支持| MP_CLAUDE_K
 
     P_GEMINI ---|支持| MP_GEMINI
 
     P_CLAUDE ---|支持| MP_CLAUDE_C
     P_CLAUDE ---|支持| MP_CLAUDE_K
     P_CLAUDE ---|支持| MP_GEMINI
     P_CLAUDE ---|支持| MP_OPENAI
     P_CLAUDE ---|支持| MP_QWEN
 
     style P_OPENAI fill:#f9f,stroke:#333,stroke-width:2px
     style P_GEMINI fill:#ccf,stroke:#333,stroke-width:2px
     style P_CLAUDE fill:#cfc,stroke:#333,stroke-width:2px

Loading

🔧 使用说明

📋 核心功能

MCP 协议支持

本项目完全兼容 Model Context Protocol (MCP),可与支持 MCP 的客户端无缝集成,实现强大的功能扩展。

多模态输入能力

支持图片、文档等多种类型的输入,为您提供更丰富的交互体验和更强大的应用场景。

最新模型支持

无缝支持以下最新大模型,仅需在 config.json 中配置相应的 OpenAI 或 Claude 兼容接口:

  • Kimi K2 - 月之暗面最新旗舰模型
  • GLM-4.5 - 智谱 AI 最新版本
  • Qwen Code - 阿里通义千问代码专用模型

🔐 授权配置指南

Gemini CLI OAuth 配置

  1. 获取OAuth凭据:访问 Google Cloud Console 创建项目,启用Gemini API
  2. 首次授权:使用Gemini服务后,命令行会打印Google授权页面,复制页面到浏览器授权,完成后返回命令行
  3. 凭据存储:授权成功后,oauth_creds.json 文件将自动生成并保存至 ~/.gemini 目录
  4. 项目配置:需要提供有效的Google Cloud项目ID,可通过启动参数 --project-id 指定

Qwen Code OAuth 配置

  1. 首次授权:启动服务后,系统会自动在浏览器中打开授权页面
  2. 凭据存储:授权成功后,oauth_creds.json 文件将自动生成并保存至 ~/.qwen 目录
  3. 推荐参数:使用官方默认参数以获得最佳效果
    {
      "temperature": 0,
      "top_p": 1
    }

Kiro API 配置

  1. 环境准备下载并安装 Kiro 客户端
  2. 完成授权:在客户端中登录账号,生成 kiro-auth-token.json 凭据文件
  3. 最佳实践:推荐配合 Claude Code 使用,可获得最优体验
  4. 重要提示:Kiro 服务使用政策已更新,请访问官方网站查看最新使用限制和条款

OpenAI Responses API

  • 应用场景:适用于需要使用 OpenAI Responses API 进行结构化对话的场景,如Codex
  • 配置方法
    • 方式一:在 config.json 中设置 MODEL_PROVIDERopenaiResponses-custom
    • 方式二:使用启动参数 --model-provider openaiResponses-custom
    • 方式三:使用路径路由 /openaiResponses-custom
  • 必需参数:提供有效的 API 密钥和基础 URL

🔄 模型供应商切换

本项目提供两种灵活的模型切换方式,满足不同使用场景的需求。

方式一:启动参数切换

通过命令行参数指定默认使用的模型提供商:

# 使用Gemini提供商
node src/api-server.js --model-provider gemini-cli-oauth --project-id your-project-id

# 使用Claude Kiro提供商
node src/api-server.js --model-provider claude-kiro-oauth

# 使用Qwen提供商
node src/api-server.js --model-provider openai-qwen-oauth

可用的模型提供商标识

  • openai-custom - 标准OpenAI API
  • claude-custom - 官方Claude API
  • gemini-cli-oauth - Gemini CLI OAuth
  • claude-kiro-oauth - Kiro Claude OAuth
  • openai-qwen-oauth - Qwen Code OAuth
  • openaiResponses-custom - OpenAI Responses API

方式二:Path 路由切换(推荐)

通过在 API 请求路径中指定供应商标识,实现即时切换:

路由路径 说明 适用场景
/claude-custom 使用配置文件中的 Claude API 官方 Claude API 调用
/claude-kiro-oauth 通过 Kiro OAuth 访问 Claude 免费使用 Claude Sonnet 4.5
/openai-custom 使用 OpenAI 供应商处理请求 标准 OpenAI API 调用
/gemini-cli-oauth 通过 Gemini CLI OAuth 访问 突破 Gemini 免费限制
/openai-qwen-oauth 通过 Qwen OAuth 访问 使用 Qwen Code Plus
/openaiResponses-custom OpenAI Responses API 结构化对话场景

使用示例

# 在 Cline、Kilo 等编程 Agent 中配置
API_ENDPOINT=http://localhost:3000/claude-kiro-oauth

# 直接 API 调用
curl http://localhost:3000/gemini-cli-oauth/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"gemini-2.0-flash-exp","messages":[...]}'

📁 授权文件存储路径

各服务的授权凭据文件默认存储位置:

服务 默认路径 说明
Gemini ~/.gemini/oauth_creds.json OAuth 认证凭据
Kiro ~/.aws/sso/cache/kiro-auth-token.json Kiro 认证令牌
Qwen ~/.qwen/oauth_creds.json Qwen OAuth 凭据

说明~ 表示用户主目录(Windows: C:\Users\用户名,Linux/macOS: /home/用户名/Users/用户名

自定义路径:可通过配置文件中的相关参数或环境变量指定自定义存储位置


🚀 项目启动参数

本项目支持丰富的命令行参数配置,可以根据需要灵活调整服务行为。以下是对所有启动参数的详细说明,按功能分组展示:

🔧 服务器配置参数

参数 类型 默认值 说明
--host string localhost 服务器监听地址
--port number 3000 服务器监听端口
--api-key string 123456 用于 API 身份验证的密钥

🤖 模型提供商配置参数

参数 类型 默认值 说明
--model-provider string gemini-cli-oauth AI 模型提供商,可选值:openai-custom, claude-custom, gemini-cli-oauth, claude-kiro-oauth, openai-qwen-oauth

🧠 OpenAI 兼容提供商参数

参数 类型 默认值 说明
--openai-api-key string null OpenAI API 密钥 (当 model-provideropenai-custom 时必需)
--openai-base-url string null OpenAI API 基础 URL (当 model-provideropenai-custom 时必需)

🖥️ Claude 兼容提供商参数

参数 类型 默认值 说明
--claude-api-key string null Claude API 密钥 (当 model-providerclaude-custom 时必需)
--claude-base-url string null Claude API 基础 URL (当 model-providerclaude-custom 时必需)

🔐 Gemini OAuth 认证参数

参数 类型 默认值 说明
--gemini-oauth-creds-base64 string null Gemini OAuth 凭据的 Base64 字符串 (当 model-providergemini-cli-oauth 时可选,与 --gemini-oauth-creds-file 二选一)
--gemini-oauth-creds-file string null Gemini OAuth 凭据 JSON 文件路径 (当 model-providergemini-cli-oauth 时可选,与 --gemini-oauth-creds-base64 二选一)
--project-id string null Google Cloud 项目 ID (当 model-providergemini-cli-oauth 时必需)

🎮 Kiro OAuth 认证参数

参数 类型 默认值 说明
--kiro-oauth-creds-base64 string null Kiro OAuth 凭据的 Base64 字符串 (当 model-providerclaude-kiro-oauth 时可选,与 --kiro-oauth-creds-file 二选一)
--kiro-oauth-creds-file string null Kiro OAuth 凭据 JSON 文件路径 (当 model-providerclaude-kiro-oauth 时可选,与 --kiro-oauth-creds-base64 二选一)

🐼 Qwen OAuth 认证参数

参数 类型 默认值 说明
--qwen-oauth-creds-file string null Qwen OAuth 凭据 JSON 文件路径 (当 model-provideropenai-qwen-oauth 时必需)

🔄 OpenAI Responses API 参数

参数 类型 默认值 说明
--model-provider string openaiResponses-custom 模型提供商,使用OpenAI Responses API时设置为 openaiResponses-custom
--openai-api-key string null OpenAI API 密钥 (当 model-provideropenaiResponses-custom 时必需)
--openai-base-url string null OpenAI API 基础 URL (当 model-provideropenaiResponses-custom 时必需)

📝 系统提示配置参数

参数 类型 默认值 说明
--system-prompt-file string input_system_prompt.txt 系统提示文件路径
--system-prompt-mode string overwrite 系统提示模式,可选值:overwrite(覆盖), append(追加)

📊 日志配置参数

参数 类型 默认值 说明
--log-prompts string none 提示日志模式,可选值:console(控制台), file(文件), none(无)
--prompt-log-base-name string prompt_log 提示日志文件基础名称

🔄 重试机制参数

参数 类型 默认值 说明
--request-max-retries number 3 API 请求失败时,自动重试的最大次数
--request-base-delay number 1000 自动重试之间的基础延迟时间(毫秒),每次重试后延迟会增加

⏰ 定时任务参数

参数 类型 默认值 说明
--cron-near-minutes number 15 OAuth 令牌刷新任务计划的间隔时间(分钟)
--cron-refresh-token boolean true 是否开启 OAuth 令牌自动刷新任务

🎯 号池配置参数

参数 类型 默认值 说明
--provider-pools-file string null 提供商号池配置文件路径

使用示例

# 基本用法
node src/api-server.js

# 指定端口和API密钥
node src/api-server.js --port 8080 --api-key my-secret-key

# 使用OpenAI提供商
node src/api-server.js --model-provider openai-custom --openai-api-key sk-xxx --openai-base-url https://api.openai.com/v1

# 使用Claude提供商
node src/api-server.js --model-provider claude-custom --claude-api-key sk-ant-xxx --claude-base-url https://api.anthropic.com

# 使用OpenAI Responses API提供商
node src/api-server.js --model-provider openaiResponses-custom --openai-api-key sk-xxx --openai-base-url https://api.openai.com/v1

# 使用Gemini提供商(Base64凭据)
node src/api-server.js --model-provider gemini-cli-oauth --gemini-oauth-creds-base64 eyJ0eXBlIjoi... --project-id your-project-id

# 使用Gemini提供商(凭据文件)
node src/api-server.js --model-provider gemini-cli-oauth --gemini-oauth-creds-file /path/to/credentials.json --project-id your-project-id

# 配置系统提示
node src/api-server.js --system-prompt-file custom-prompt.txt --system-prompt-mode append

# 配置日志
node src/api-server.js --log-prompts console
node src/api-server.js --log-prompts file --prompt-log-base-name my-logs

# 完整示例
node src/api-server.js \
  --host 0.0.0.0 \
  --port 3000 \
  --api-key my-secret-key \
  --model-provider gemini-cli-oauth \
  --project-id my-gcp-project \
  --gemini-oauth-creds-file ./credentials.json \
  --system-prompt-file ./custom-system-prompt.txt \
  --system-prompt-mode overwrite \
  --log-prompts file \
  --prompt-log-base-name api-logs

📄 开源许可

本项目遵循 GNU General Public License v3 (GPLv3) 开源许可。详情请查看根目录下的 LICENSE 文件。

🙏 致谢

本项目的开发受到了官方 Google Gemini CLI 的极大启发,并参考了Cline 3.18.0 版本 gemini-cli.ts 的部分代码实现。在此对 Google 官方团队和 Cline 开发团队的卓越工作表示衷心的感谢!

🌟 Star History

Star History Chart


⚠️ 免责声明

使用风险提示

本项目(AIClient-2-API)仅供学习和研究使用。用户在使用本项目时,应自行承担所有风险。作者不对因使用本项目而导致的任何直接、间接或 consequential 损失承担责任。

第三方服务责任说明

本项目是一个API代理工具,不提供任何AI模型服务。所有AI模型服务由相应的第三方提供商(如Google、OpenAI、Anthropic等)提供。用户在使用本项目访问这些第三方服务时,应遵守各第三方服务的使用条款和政策。作者不对第三方服务的可用性、质量、安全性或合法性承担责任。

数据隐私说明

本项目在本地运行,不会收集或上传用户的任何数据。但用户在使用本项目时,应注意保护自己的API密钥和其他敏感信息。建议用户定期检查和更新自己的API密钥,并避免在不安全的网络环境中使用本项目。

法律合规提醒

用户在使用本项目时,应遵守所在国家/地区的法律法规。严禁将本项目用于任何非法用途。如因用户违反法律法规而导致的任何后果,由用户自行承担全部责任。