kiro-rs — API Compatibility Proxies tool screenshot
API Compatibility Proxies

kiro-rs: Best API Compatibility Proxy for Claude Users in 2026

8 min read·

kiro-rs turns Claude-compatible requests into Kiro API calls with token refresh, multi-credential failover, and SSE streaming for self-hosted gateways.

Pricing

Open-Source

Tech Stack

Rust, JSON config, SSE, OAuth token refresh, Docker

Target

developers and platform teams that need a self-hosted Claude-compatible gateway for Kiro

Category

API Compatibility Proxies

What Is kiro-rs?

kiro-rs is one of the best API Compatibility Proxies tools for developers and platform teams that need a self-hosted Claude-compatible gateway. Built by ZyphrZero in Rust, it converts Anthropic Claude API requests into Kiro API calls, handles OAuth token refresh, and supports Opus 4.7, Opus 4.6, and Sonnet 4.6 with 1M context windows.

Quick Overview

AttributeDetails
TypeAPI Compatibility Proxies
Best ForDevelopers and teams that want a self-hosted Claude-compatible gateway for Kiro
Language/StackRust, JSON config, SSE, OAuth token refresh, Docker
LicenseN/A (not listed in scraped text)
GitHub StarsN/A as of Feb 2026
PricingOpen-Source
Last Releasev0.4.0+ — date not listed

Who Should Use kiro-rs?

  • Platform teams that need one Anthropic-shaped endpoint for multiple apps, scripts, and agent runtimes without rewriting clients.
  • Indie hackers shipping Claude-based workflows who want local control over API keys, regions, retry policy, and proxy routing.
  • Ops-heavy teams that manage several upstream credentials and need priority failover, balanced distribution, and token writeback.
  • Teams building on Claude-compatible clients such as Claude Code Canvas or Claude Context Mode can point those clients at kiro-rs and keep the same request shape.

Not ideal for:

  • Teams that only need a direct Kiro integration for a single private app and do not want an extra gateway hop.
  • Groups that cannot self-host a Rust service, manage config files, or secure API keys and refresh tokens.
  • Buyers who want a hosted SaaS with an SLA instead of owning the runtime, logs, and upgrade path.

Key Features of kiro-rs

  • Anthropic API compatibility — kiro-rs accepts Claude-style requests on /v1/messages and supports the Claude Code-compatible /cc/v1 path. That lets existing SDKs and agents keep their request semantics while the proxy handles upstream translation.
  • SSE streaming — the service emits Server-Sent Events for token-by-token output, which is what most Claude clients expect for interactive completions. This matters for long responses and tool use because the client does not need to wait for a full buffer.
  • Automatic token refresh — kiro-rs refreshes OAuth tokens on its own and can write refreshed values back when you run multiple credentials. That removes a lot of manual token churn in long-lived self-hosted setups.
  • Multi-credential routing — you can configure several credentials and choose either priority failover or balanced distribution. The service retries a single credential up to 3 times and a request up to 9 times, which is useful when one upstream account is rate-limited or temporarily unhealthy.
  • Extended thinking and tool use — kiro-rs supports Claude thinking mode, function calling, and built-in WebSearch translation. That keeps agentic flows intact instead of forcing you to strip features down to plain text generation.
  • Region and proxy isolation — global and per-credential authRegion and apiRegion settings let you separate authentication from request routing. Per-credential HTTP or SOCKS5 proxies also take precedence over the global proxy, which is useful when different upstream accounts must exit through different networks.
  • Admin UI and usage telemetry — the optional web admin panel manages credentials, balance checks, and client-key distribution through csk_* keys. From v0.4.0+ it also records usage in rolling JSONL files and shows model, token, and credential breakdowns in a dashboard.

kiro-rs vs Alternatives

ToolBest ForKey DifferentiatorPricing
kiro-rsSelf-hosted Claude-compatible access to KiroKiro-specific translation, token refresh, multi-credential routing, admin UIOpen-Source
LiteLLMTeams that need one gateway for many model providersBroader provider coverage and OpenAI-compatible routing across vendorsOpen-Source
OpenRouterTeams that want a hosted model marketplaceNo infrastructure to run and a large catalog of models behind one APIPaid
Custom Rust proxyStrict internal workflows that need full source-level controlYou own every mapping, retry rule, and auth edge caseOpen-Source / DIY

Pick kiro-rs when the upstream is specifically Kiro and you want Anthropic-shaped clients to keep working without adapter code. Pick LiteLLM when the gateway must span multiple providers and the Kiro-specific behavior is not the main requirement.

Use OpenRouter when you do not want to run infrastructure at all and you are fine with a hosted service. If you only need debugging around this gateway boundary, pair kiro-rs with OpenTrace so you can inspect request timing, upstream retries, and token flow without instrumenting every client.

How kiro-rs Works

kiro-rs sits between Claude-compatible clients and Kiro upstream APIs, then rewrites request and response payloads so the caller still sees an Anthropic-shaped interface. The core design is a Rust service with file-based configuration, explicit region settings, and a credential pool that handles auth, retries, and token refresh without moving logic into the client.

The proxy makes a few deliberate trade-offs. It keeps the request path simple, pushes credential state into config.json and credentials.json, and uses a TLS backend that can switch between rustls and native-tls when environment constraints force it. If you are fronting multiple apps, that separation lets you tune regions, proxies, and fallback order per credential instead of baking those decisions into application code.

cargo build --release
./target/release/kiro-rs -c /path/to/config.json --credentials /path/to/credentials.json
curl http://127.0.0.1:8990/v1/messages -H 'Content-Type: application/json' -H 'x-api-key: sk-kiro-rs-qazWSXedcRFV123456' -d @request.json

The first command builds the Rust binary, the second starts the proxy with explicit config files, and the third verifies that the gateway accepts a Claude-style request. If token refresh fails or requests return errors, the project notes that switching tlsBackend to native-tls often fixes certificate and proxy-chain issues.

If you need higher throughput or fewer upstream stalls, the optional Redis cache can sit beside the proxy to speed prompt reuse. That setup is closest to how you would deploy a local API gateway for agents, especially if downstream clients include Claude Code Canvas or Claude Context Mode.

Pros and Cons of kiro-rs

Pros:

  • Keeps Claude-compatible clients unchanged because the proxy preserves Anthropic request shapes.
  • Supports streaming, tool use, and extended thinking, so agent workflows keep their interactive behavior.
  • Handles token refresh and writeback, which reduces manual maintenance in multi-account deployments.
  • Supports per-credential proxies and region overrides, which is useful in mixed network environments.
  • Includes an admin panel with credential management, client-key distribution, and usage dashboards in v0.4.0+.
  • Can run in Docker with prebuilt multi-architecture images, which lowers the setup cost for ARM and x86 hosts.

Cons:

  • You still own the infrastructure, secrets, logs, and upgrade path because this is self-hosted software.
  • The project is Kiro-specific, so it is less useful than a general-purpose gateway when you need many model vendors.
  • TLS backend selection can be annoying in some environments, especially when certificate chains or HTTP proxies are involved.
  • The admin UI requires a front-end build step if you compile from source, which adds one more toolchain dependency.
  • Long outputs can surface write-failed or session-stall issues, so token limits and output size need real tuning.

Getting Started with kiro-rs

The fastest path is to build the binary, create the config files, and start the proxy on a local port. If you want the admin panel embedded into the build, compile the front-end first, then run the Rust release build and point the process at your config files.

cd admin-ui && bun install && bun run build
cargo build --release
./target/release/kiro-rs -c /path/to/config.json --credentials /path/to/credentials.json

After startup, kiro-rs listens on the configured host and port, then exposes /v1/messages for Claude-compatible clients. You will also need a valid apiKey in config.json, and if you want the admin dashboard you should set adminApiKey before exposing the service beyond localhost.

For Docker, the repository documents a minimal deployment that mounts a persistent data/ directory and auto-generates initial secrets on first boot. That route is easier if you want repeatable upgrades, prebuilt binaries, and a single state directory that you can back up with tar.

Verdict

kiro-rs is the strongest option for self-hosting a Claude-compatible gateway to Kiro when you need token refresh, multi-credential failover, and admin control in one Rust binary. Its main strength is that it preserves existing Anthropic clients; its main caveat is that you now own the proxy and its operational overhead. Use it when Kiro is the upstream and you want control, not a hosted abstraction.

Frequently Asked Questions

Looking for alternatives?

Compare kiro-rs with other API Compatibility Proxies tools.

See Alternatives →

You Might Also Like