One OpenAI- and Anthropic-compatible API in front of every provider, with single sign-on, roles, budgets and request logs, written in Rust.
Website · Documentation · Live demo · Discussions · Changelog
On a server or your computer with Docker and Compose 2.24 or newer:
curl -fsSL https://kaeso.app/install.sh | shIt installs Kaeso with PostgreSQL, ClickHouse and Valkey into ./kaeso, starts it at https://localhost and prints the link that creates the first user. Add -s -- --domain kaeso.example.com to serve your own domain. The quick start continues from there, and install by hand shows each step.
Point the OpenAI SDK at Kaeso and call any model in your project, Claude included:
from openai import OpenAI
client = OpenAI(base_url="https://kaeso.example.com/v1", api_key="sk-kso-…")
print(client.responses.create(model="claude-haiku-5-5", input="Hello").output_text)The Anthropic SDK works the same way with base_url="https://kaeso.example.com". Kaeso translates the request and the reply between the formats (calling models).
- Single sign-on and roles. Each organization signs in through its own OpenID Connect provider, for any number of people at no cost, with organization and project roles and single rights on top (members and roles).
- Budgets. Hard or soft spend and token budgets and request rates per project, member or key, checked before a request reaches the provider (limits and budgets).
- Request logs. Every request with its model, status, tokens, cost, timing and caller, and its content if you keep it, on your own server (request logs).
- Verifiable releases. Every image and release file carries signed build provenance from the Release workflow.
gh attestation verifychecks it, and the updater installs nothing whose signatures don't match (upgrades). - Rust speed. The gateway is one Rust process with no garbage collector between your app and the provider, and its benchmark measures the latency it adds on your own hardware.
Checked on 5 November 2026 against each project's repository and documentation. Open an issue when a row is out of date.
| Kaeso | LiteLLM | Bifrost | Portkey Gateway | |
|---|---|---|---|---|
| Gateway written in | Rust | Python | Go | TypeScript |
| License | MIT | MIT, except enterprise/ |
Apache 2.0 | MIT |
| Single sign-on when self-hosted for free | Yes, OpenID Connect | Up to 5 users (docs) | Enterprise (pricing) | Enterprise (docs) |
| Budgets when self-hosted for free | Yes | Yes (docs) | Yes (pricing) | Enterprise and some Pro plans (docs) |
| Web console when self-hosted | Yes | Yes | Yes | Request logs only (README) |
- Claude Code and Codex, with Kaeso as their model provider.
- Cursor and Claude Code, which manage Kaeso through its MCP server.
- The OpenAI SDK and the Anthropic SDK, in any language, and any tool that lets you set an OpenAI or Anthropic base URL.
- Discussions for questions, ideas and what you built.
- @kaesoapp on X for releases.
- Good first issues to start contributing, with the contributing guide.
MIT. The Kaeso name and logo are not covered by the license. All trademarks belong to their owners; Kaeso is not affiliated with any provider or client it names. Third-party notices, trademarks included, are in NOTICE.md.