jwadow/kiro-gateway
GitHub: jwadow/kiro-gateway
将 Kiro IDE/CLI 提供的免费 Claude 模型通过 OpenAI/Anthropic 兼容 API 暴露,让各类 AI 编程工具无需额外付费即可调用。
Stars: 1316 | Forks: 315
# 👻 Kiro Gateway
**Kiro API (Amazon Q Developer / AWS CodeWhisperer) 的代理网关**
🇬🇧 English • [🇷🇺 Русский](docs/ru/README.md) • [🇨🇳 中文](docs/zh/README.md) • [🇪🇸 Español](docs/es/README.md) • [🇮🇩 Indonesia](docs/id/README.md) • [🇧🇷 Português](docs/pt/README.md) • [🇯🇵 日本語](docs/ja/README.md) • [🇰🇷 한국어](docs/ko/README.md)
由 [@Jwadow](https://github.com/jwadow) 用 ❤️ 打造
[](https://www.gnu.org/licenses/agpl-3.0)
[](https://www.python.org/downloads/)
[](https://fastapi.tiangolo.com/)
[](#-支持本项目)
*通过 Claude Code、OpenCode、OpenClaw、Claw Code、Codex app、Cursor、Cline、Roo Code、Kilo Code、Obsidian、OpenAI SDK、LangChain、Continue 以及其他兼容 OpenAI 或 Anthropic 的工具使用来自 Kiro 的 Claude 模型*
[模型](#-supported-models) • [功能](#-features) • [快速开始](#-quick-start) • [配置](#%EF%B8%8F-configuration) • [💖 赞助](#-support-the-project)
## 🤖 可用模型 (免费列表)
🚀 **Claude Sonnet 4.5** — 性能均衡。非常适合编码、写作和通用任务。
⚡ **Claude Haiku 4.5** — 极速响应。非常适合快速响应、简单任务和聊天。
📦 **Claude Sonnet 4** — 上一代模型。在大多数用例中依然强大且可靠。
📦 **Claude 3.7 Sonnet** — 旧版模型。提供用于向后兼容。
💤 **GLM-5** — 开源 MoE 模型 (744B 参数,40B 激活)。专为复杂系统工程和长期代理任务设计的先进模型。
🐋 **DeepSeek-V3.2** — 开源 MoE 模型 (685B 参数,37B 激活)。在编码、推理和通用任务中表现均衡。
🧩 **MiniMax M2.5** — 开源 MoE 模型 (230B 参数,10B 激活)。具有增强推理和任务处理能力的增强版本。
🧩 **MiniMax M2.1** — 开源 MoE 模型 (230B 参数,10B 激活)。非常适合复杂任务、规划和多步骤工作流。
🤖 **Qwen3-Coder-Next** — 开源 MoE 模型 (80B 参数,3B 激活)。专注于编码。在开发和大型项目中表现出色。
## ✨ 功能
| 功能 | 描述 |
|---------|-------------|
| 🔌 **兼容 OpenAI 的 API** | 适用于任何兼容 OpenAI 的工具 |
| 🔌 **兼容 Anthropic 的 API** | 原生 `/v1/messages` 端点 |
| 🔀 **多账户支持** | 多个账户之间的智能故障转移 |
| 🌐 **VPN/代理支持** | 用于受限网络的 HTTP/SOCKS5 代理 |
| 🧠 **扩展思考 (Extended Thinking)** | 推理功能为本项目独有 |
| 👁️ **视觉支持** | 将图像发送给模型 |
| 🔍 **网络搜索** | 搜索网络获取最新信息 |
| 🛠️ **工具调用 (Tool Calling)** | 支持函数调用 |
| 💬 **完整消息历史** | 传递完整的对话上下文 |
| 📡 **流式传输** | 完整的 SSE 流式传输支持 |
| 🔄 **重试逻辑** | 出错时自动重试 (403、429、5xx) |
| 📋 **扩展模型列表** | 包括带版本号的模型 |
| 🔐 **智能 token 管理** | 过期前自动刷新 |
## 🚀 快速开始
**选择您的部署方式:**
- 🐍 **原生 Python** - 完全控制,易于调试
- 🐳 **Docker** - 隔离环境,易于部署 → [跳转到 Docker](#-docker-deployment)
### 前置条件
- Python 3.10+
- 以下之一:
- 已登录账户的 [Kiro IDE](https://kiro.dev/),或者
- 带有 AWS SSO (AWS IAM Identity Center, OIDC) 的 [Kiro CLI](https://kiro.dev/cli/) - 免费的 Builder ID 或企业账户
### 安装
```
# 克隆仓库(需要 Git)
git clone https://github.com/Jwadow/kiro-gateway.git
cd kiro-gateway
# 或者下载 ZIP:Code → Download ZIP → 解压 → 打开 kiro-gateway 文件夹
# 安装依赖
pip install -r requirements.txt
# 配置(参见 Configuration 部分)
cp .env.example .env
# 复制并编辑 .env 文件以填入你的凭据
# 启动服务器
python main.py
# 或者使用自定义端口(如果 8000 端口被占用)
python main.py --port 9000
```
服务器将在 `http://localhost:8000` 上可用
## ⚙️ 配置
### 方式 1:JSON 凭证文件 (Kiro IDE / 企业版)
指定凭证文件的路径:
适用于:
- **Kiro IDE** (标准版) - 用于个人账户
- **企业版** - 用于带有 SSO 的企业账户
```
KIRO_CREDS_FILE="~/.aws/sso/cache/kiro-auth-token.json"
# 用于保护你的代理服务器的密码(请编造任意安全的字符串)
# 在连接到你的 gateway 时,你将把它作为 api_key 使用
PROXY_API_KEY="my-super-secret-password-123"
```
📄 JSON 文件格式
``` { "accessToken": "eyJ...", "refreshToken": "eyJ...", "expiresAt": "2025-01-12T23:00:00.000Z", "profileArn": "arn:aws:codewhisperer:us-east-1:...", "region": "us-east-1", "clientIdHash": "abc123..." // Optional: for corporate SSO setups } ```📄 AWS SSO JSON 文件格式
AWS SSO 凭证文件 (来自 `~/.aws/sso/cache/`) 包含: ``` { "accessToken": "eyJ...", "refreshToken": "eyJ...", "expiresAt": "2025-01-12T23:00:00.000Z", "region": "us-east-1", "clientId": "...", "clientSecret": "..." } ``` **注意:** AWS SSO (Builder ID 和企业账户) 用户不需要 `profileArn`。网关在没有它的情况下也能正常工作(如果指定了,将被忽略)。🔍 工作原理
网关根据凭证文件自动检测身份验证类型: - **Kiro 桌面端认证** (默认):当 `clientId` 和 `clientSecret` 不存在时使用 - 端点:`https://prod.{region}.auth.desktop.kiro.dev/refreshToken` - **AWS SSO (OIDC)**:当 `clientId` 和 `clientSecret` 存在时使用 - 端点:`https://oidc.{region}.amazonaws.com/token` 无需额外配置——只需指向您的凭证文件即可!📄 数据库位置
| CLI 工具 | 数据库路径 | |----------|---------------| | kiro-cli | `~/.local/share/kiro-cli/data.sqlite3` | | amazon-q-developer-cli | `~/.local/share/amazon-q/data.sqlite3` | 网关从 `auth_kv` 表中读取凭证,该表存储: - `kirocli:odic:token` 或 `codewhisperer:odic:token` — 访问 token、刷新 token、过期时间 - `kirocli:odic:device-registration` 或 `codewhisperer:odic:device-registration` — 客户端 ID 和密钥 支持两种密钥格式,以兼容不同版本的 kiro-cli。🔧 进阶:手动提取 token
如果您需要手动提取刷新 token (例如,用于调试),您可以拦截 Kiro IDE 流量: - 查找发往以下地址的请求:`prod.us-east-1.auth.desktop.kiro.dev/refreshToken`📄 配置示例
**单账户:** ``` [ { "type": "json", "path": "~/.aws/sso/cache/kiro-auth-token.json" } ] ``` **多账户:** ``` [ { "type": "json", "path": "~/.aws/sso/cache/kiro-auth-token.json" }, { "type": "sqlite", "path": "~/.local/share/kiro-cli/data.sqlite3" }, { "type": "refresh_token", "refresh_token": "eyJhbGc...", "profile_arn": "arn:aws:codewhisperer:us-east-1:..." } ] ``` **文件文件夹:** ``` [ { "type": "json", "path": "C:\\MyAccs\\kiro67" } ] ``` 网关将扫描文件夹中的所有文件并将它们作为单独的账户添加。🔹 使用环境变量
``` docker run -d \ -p 8000:8000 \ -e PROXY_API_KEY="my-super-secret-password-123" \ -e REFRESH_TOKEN="your_refresh_token" \ --name kiro-gateway \ ghcr.io/jwadow/kiro-gateway:latest ```🔹 使用凭证文件
**Linux/macOS:** ``` docker run -d \ -p 8000:8000 \ -v ~/.aws/sso/cache:/home/kiro/.aws/sso/cache:ro \ -e KIRO_CREDS_FILE=/home/kiro/.aws/sso/cache/kiro-auth-token.json \ -e PROXY_API_KEY="my-super-secret-password-123" \ --name kiro-gateway \ ghcr.io/jwadow/kiro-gateway:latest ``` **Windows (PowerShell):** ``` docker run -d ` -p 8000:8000 ` -v ${HOME}/.aws/sso/cache:/home/kiro/.aws/sso/cache:ro ` -e KIRO_CREDS_FILE=/home/kiro/.aws/sso/cache/kiro-auth-token.json ` -e PROXY_API_KEY="my-super-secret-password-123" ` --name kiro-gateway ` ghcr.io/jwadow/kiro-gateway:latest ```🔹 使用 .env 文件
``` docker run -d -p 8000:8000 --env-file .env --name kiro-gateway ghcr.io/jwadow/kiro-gateway:latest ```🔧 从源代码构建
``` docker build -t kiro-gateway . docker run -d -p 8000:8000 --env-file .env kiro-gateway ```标签:AI编程助手, Amazon Q Developer, Anthropic, API网关, API转发, AV绕过, AWS CodeWhisperer, CIS基准, Claude Haiku 4.5, Claude Sonnet 4.5, Claude模型, Cline, Codex, Cursor, DeepSeek-V3.2, DLL 劫持, FastAPI, GLM-5, IDE插件, IP 地址批量处理, Kiro IDE, LangChain, LLM代理, OpenAI SDK兼容, Petitpotam, Proxy, Python, 云资产清单, 代理网关, 代码补全, 免费Claude, 大语言模型, 威胁情报, 开发者工具, 开源, 无后门, 模型转换, 深度求索, 请求拦截, 轻量级, 逆向工具, 逆向工程