MCPcopy Create free account
hub / github.com/Quorinex/Kiro-Go

github.com/Quorinex/Kiro-Go @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
879 symbols 3,106 edges 50 files ⚖ MIT 259 documented · 29% updated 27d ago★ 1,1128 open issues

Browse by type

Functions 794 Types & classes 85
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Kiro-Go

Go Version Docker License

Convert Kiro accounts to OpenAI / Anthropic compatible API service.

English | 中文 | Tiếng Việt

If this project helps you, a Star would mean a lot.

Features

  • Anthropic /v1/messages, OpenAI /v1/chat/completions & OpenAI /v1/responses
  • Multi-account pool with round-robin load balancing
  • Auto token refresh, SSE streaming, Web admin panel
  • Multiple auth: AWS Builder ID, IAM Identity Center (Enterprise SSO), Microsoft Enterprise SSO, SSO Token, local cache, credentials JSON, Kiro API Key
  • Usage tracking, account import/export, i18n (CN / EN / VI)
  • Support configuring outbound proxy (SOCKS5 / HTTP)

Quick Start

Docker Compose (Recommended)

git clone https://github.com/Quorinex/Kiro-Go.git
cd Kiro-Go
mkdir -p data
docker-compose up -d

Docker Run

docker run -d \
  --name kiro-go \
  -p 8080:8080 \
  -e ADMIN_PASSWORD=your_secure_password \
  -v /path/to/data:/app/data \
  --restart unless-stopped \
  ghcr.io/quorinex/kiro-go:latest

Build from Source

git clone https://github.com/Quorinex/Kiro-Go.git
cd Kiro-Go
go build -o kiro-go .
./kiro-go

Deploy on Zeabur

The repo already includes a Dockerfile, so it builds and runs on Zeabur out of the box.

Option 1: Dashboard (one-click)

  1. Fork this repo to your GitHub account.
  2. In Zeabur, create a new service and choose Deploy from GitHub, then select your fork.
  3. Zeabur auto-detects the Dockerfile and builds the image.
  4. In the Networking tab, expose port 8080 and bind a domain.
  5. In the Variables tab, set at least ADMIN_PASSWORD (admin panel password).
  6. Mount a Volume at /app/data if you want accounts / config to survive redeploys.

Option 2: CLI

npm i -g zeabur
zeabur auth login
zeabur deploy

Run the commands from the project root. The CLI writes .zeabur/context.json to remember the target project / service — it contains personal IDs, so don't commit it.

Once the service is up, open https://<your-domain>/admin to log in.

Config is auto-created at data/config.json. Mount /app/data for persistence. The default admin password is changeme — override it via the ADMIN_PASSWORD env var or change it in the admin panel before going to production.

Usage

Open http://localhost:8080/admin, log in, add accounts, then call the API:

# Claude
curl http://localhost:8080/v1/messages \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{"model":"claude-sonnet-4.5","max_tokens":1024,"messages":[{"role":"user","content":"Hello!"}]}'

# OpenAI
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer any" \
  -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hello!"}]}'

Add a Kiro API Key account

In the admin panel, choose API Key when adding an account and paste ksk_... (or ksk_...|region).

You can also import via the credentials API:

curl -X POST http://localhost:8080/admin/api/auth/credentials \
  -H "Content-Type: application/json" \
  -H "Cookie: <admin-session>" \
  -d '{"kiroApiKey":"ksk_your_key|us-east-1","authMethod":"api_key","nickname":"cli-key"}'

API Key accounts call the Kiro CLI runtime (https://runtime.{region}.kiro.dev/) with tokentype: API_KEY. They skip OAuth refresh and do not use profileArn.

Thinking Mode

Append a suffix (default -thinking) to the model name, e.g. claude-sonnet-4.5-thinking. Claude-compatible requests that include a top-level thinking config such as {"type":"enabled","budget_tokens":2048} or {"type":"adaptive"} also enable thinking mode automatically. Configure output format in the admin panel under Settings - Thinking Mode.

Outbound Proxy

For users in restricted network regions, configure an outbound proxy in the admin panel under Settings - Outbound Proxy Settings. Supports SOCKS5 and HTTP proxies.

The setting takes effect immediately without restarting.

Environment Variables

Variable Description Default
CONFIG_PATH Config file path data/config.json
ADMIN_PASSWORD Admin panel password (overrides config) -

Contributing

Friendly discussion is welcome. If you run into issues, try asking Claude Code, Codex, or similar tools for help first — most problems can be solved that way. PRs are even better.

Friend Links

Disclaimer

For educational and research purposes only. Not affiliated with Amazon, AWS, or Kiro. Users are responsible for complying with applicable terms of service and laws. Use at your own risk.

License

MIT

Extension points exported contracts — how you extend this code

browse all types & interfaces →

Core symbols most depended-on inside this repo

browse all functions →

Shape

Function 680
Method 114
Struct 81
TypeAlias 2
FuncType 1
Interface 1

Languages

Go75%
TypeScript25%

Modules by API surface

web/app.js209 symbols
proxy/handler.go100 symbols
proxy/translator.go78 symbols
config/config.go58 symbols
proxy/kiro.go37 symbols
proxy/cache_tracker.go34 symbols
proxy/kiro_api.go32 symbols
pool/account.go28 symbols
proxy/translator_test.go19 symbols
pool/account_test.go19 symbols
proxy/kiro_test.go16 symbols
proxy/apikeys_test.go16 symbols

For agents

$ claude mcp add Kiro-Go \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page