通过代理网关把 Kiro API(Amazon Q / CodeWhisperer)转成 OpenAI/Anthropic 兼容接口供各类 AI 编程工具使用
网关将 Kiro 后端的 Claude 等模型封装为 OpenAI/Anthropic 兼容 API,使不直接支持 Kiro 的客户端工具也能接入
方案简介
Kiro Gateway 是一个针对 Kiro API(Amazon Q Developer / AWS CodeWhisperer)的代理网关。它把 Kiro 后端提供的 Claude Sonnet 4.5、Claude Haiku 4.5、GLM-5、DeepSeek-V3.2、MiniMax、Qwen3-Coder-Next 等模型,封装成 OpenAI 兼容 API 和原生 Anthropic /v1/messages 端点,从而让 Claude Code、OpenCode、Cursor、Cline、Roo Code、Kilo Code、OpenAI SDK、LangChain、Continue 等任何 OpenAI 或 Anthropic 兼容工具都能直接使用 Kiro 中的模型。
该方案适合已拥有 Kiro IDE 或 Kiro CLI 账户(免费 Builder ID 或企业账户),希望在自己的编程工具/框架中复用这些模型的开发者。项目同时支持原生 Python 部署与 Docker 部署,并内置多账户故障转移、HTTP/SOCKS5 代理、扩展思考、视觉、Web 搜索、工具调用、SSE 流式、自动重试与智能 token 刷新等能力。
亮点与能力
- 🔌 OpenAI 兼容 API:可配合任意 OpenAI 兼容工具
- 🔌 Anthropic 兼容 API:原生
/v1/messages端点 - 🔀 多账户支持:多账户间智能故障转移
- 🌐 VPN/代理支持:受限网络下可用 HTTP/SOCKS5 代理
- 🧠 扩展思考(Extended Thinking):该项目独有
- 👁️ 视觉支持:可向模型发送图片
- 🔍 Web 搜索:搜索网络获取最新信息
- 🛠️ 工具调用:支持 function calling
- 💬 完整消息历史:传递完整会话上下文
- 📡 流式:完整 SSE 流式支持
- 🔄 重试逻辑:对 403、429、5xx 错误自动重试
- 📋 扩展模型列表:包含带版本号的模型
- 🔐 智能 token 管理:过期前自动刷新
- 💡 智能模型解析:
claude-sonnet-4-5、claude-sonnet-4.5甚至claude-sonnet-4-5-20250929等任意命名格式都会被自动归一化
组成与分工
- Kiro Gateway:核心代理网关,暴露 OpenAI/Anthropic 兼容 API,负责认证检测、token 刷新、重试与流式转发
- Kiro API(Amazon Q Developer / AWS CodeWhisperer):上游模型服务,实际提供 Claude 及开源 MoE 模型的推理能力
- Kiro IDE / Kiro CLI:账户来源,提供登录后的认证凭据(JSON 文件或 SQLite 数据库)
- AWS SSO(AWS IAM Identity Center, OIDC):kiro-cli/企业账户的认证体系,网关自动识别并调用 OIDC 端点刷新 token
- OpenAI SDK / LangChain / Claude Code / Cursor 等:下游客户端,通过兼容 API 接入网关使用模型
- Python 3.10+ / Docker:运行环境
前置要求
- Python 3.10+
- 以下之一:
- 已登录账户的 Kiro IDE,或
- 带 AWS SSO(AWS IAM Identity Center, OIDC)的 Kiro CLI —— 免费 Builder ID 或企业账户
- 安装依赖(需 Git):
bash
git clone https://github.com/Jwadow/kiro-gateway.git
cd kiro-gateway
pip install -r requirements.txt
也可选择 Docker 部署以获得隔离环境。
实施步骤
1. 克隆仓库并安装依赖
bash
git clone https://github.com/Jwadow/kiro-gateway.git
cd kiro-gateway
pip install -r requirements.txt
(也可下载 ZIP:Code → Download ZIP → 解压 → 打开 kiro-gateway 文件夹)
2. 配置凭据
bash
cp .env.example .env
Copy and edit .env with your credentials
凭证方式有三种主流选择:
方式一:JSON 凭据文件(Kiro IDE / 企业),适用于个人账户的 Kiro IDE 或带 SSO 的企业账户:
env
KIRO_CREDS_FILE="~/.aws/sso/cache/kiro-auth-token."
PROXY_API_KEY="my-super-secret-password-123"
JSON 文件包含 accessToken、refreshToken、expiresAt、profileArn、region、可选 clientIdHash 等字段。若 ~/.aws/sso/cache/ 下有两个 JSON 文件,使用 kiro-auth-token.,网关会自动加载另一个。
方式二:环境变量(.env 文件):
env
Required
REFRESH_TOKEN="your_kiro_refresh_token"
PROXY_API_KEY="my-super-secret-password-123"
Optional
PROFILE_ARN="arn:aws:codewhisperer:us-east-1:..."
KIRO_REGION="us-east-1"
方式三:AWS SSO 凭据(kiro-cli / 企业),网关自动检测认证类型:
env
KIRO_CREDS_FILE="~/.aws/sso/cache/your-sso-cache-file."
PROXY_API_KEY="my-super-secret-password-123"
AWS SSO(Builder ID 和企业账户)用户不需要 profileArn;文件含 clientId 和 clientSecret 时走 OIDC 端点,否则走 Kiro Desktop Auth 端点。
方式四:kiro-cli SQLite 数据库:
env
KIRO_CLI_DB_FILE="~/.local/share/kiro-cli/data.sqlite3"
3. 启动服务器
bash
python main.py
Or with custom port (if 8000 is busy)
python main.py --port 9000
服务器将在 http://localhost:8000 可用。
使用与配置要点
- 服务器默认监听
http://localhost:8000,端口被占用时可用python main.py --port 9000换端口 PROXY_API_KEY是保护你自己代理服务器的密码,连接网关时把它当作api_key使用- 调用模型时可用任意命名格式(
claude-sonnet-4-5、claude-sonnet-4.5、claude-sonnet-4-5-20250929),网关自动归一化 - 需要多账户支持的高级用户参见仓库的 Account System(Advanced)章节
- 可用模型列表取决于 Kiro 订阅层级(免费/付费),网关提供你 IDE/CLI 中订阅可用的模型
注意事项与常见问题
- 模型可用性取决于你的 Kiro 层级(免费/付费),网关仅提供你 IDE 或 CLI 中订阅可用的模型
- Claude Opus 4.5 已于 2026 年 1 月 17 日从免费层级移除,付费层级可能仍可用,请检查 IDE/CLI 的模型列表
- 若
~/.aws/sso/cache/下有两个 JSON 文件(如kiro-auth-token.和一个哈希名文件),在KIRO_CREDS_FILE中使用kiro-auth-token.,网关会自动加载另一个文件 - AWS SSO(Builder ID 和企业账户)用户不需要
profileArn,即使指定也会被忽略 - 网关根据凭据文件自动检测认证类型:不含
clientId/clientSecret时使用 Kiro Desktop Auth(端点https://prod.{region}.auth.desktop.kiro.dev/refreshToken),含时使用 AWS SSO OIDC(端点https://oidc.{region}.amazonaws.com/token),无需额外配置 - 对 403、429、5xx 错误会自动重试
优缺点
- ✓ 兼容 OpenAI 与 Anthropi
- ✓ 多账户故障转移与自动重试
- ✕ 模型可用性取决于 Kiro 订阅层级
- ✕ 需已有 Kiro 账户凭据
出处
本方案挖掘自开源项目 jwadow/kiro-gateway,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。