OpenLLM vs Bifrost
Bifrost is Maxim's self-hosted Go gateway: 20+ providers behind one API with built-in observability. It documents a Claude Code setup through its Anthropic endpoint, and is the closest like-for-like LiteLLM replacement. Bifrost for a self-hosted gateway; OpenLLM for your subscriptions behind one key with nothing to operate.
curl -fsSL https://www.openllm.sh/install | bashopenllm claudeOpenLLM vs Bifrost
| Feature | OpenLLM | Bifrost |
|---|---|---|
| Shape | Hosted gateway plus a local daemon for subscriptions | Self-hosted Go gateway, 20+ providers |
| Coding-agent setup | openllm claude, openllm codex, openllm opencode: a per-session overlay that leaves the client's config untouched | Documented Claude Code setup via a virtual key |
| Subscriptions | Claude, ChatGPT, Kimi Code, Grok and Cursor plans, served by a daemon on your machine that runs the vendor's own login | Built around provider API keys |
| Self-hosting, team use | No; single-user today | Yes |
| Price | Free plan with a monthly token allowance, no card; no markup on provider tokens | Open source; you host it |
Pick Bifrost when
- You want a self-hosted gateway on your own infrastructure
- You are replacing a LiteLLM server and want the same shape
Pick OpenLLM when
- You don't want to run a server at all
- Your model access is the plans you already pay for
Your subscriptions stay on your machine
Subscription providers run through the local OpenLLM daemon, which delegates to the vendor's official CLI and its own login. The hosted gateway never holds a subscription credential.
Provider keys encrypted at rest
API keys are encrypted in your browser with AES-256-GCM under a key derived from your recovery phrase, and stored as ciphertext. They are decrypted in memory only while a request is being served, then discarded. Subscription credentials never reach the hosted service.
Fallback chains when a model is rate-limited
Define an ordered chain per model alias. When a hop returns a rate limit, an overload or a provider error, the request moves to the next hop instead of failing your session.
- Chains are configured once and shared by every client and device
- Each hop resolves its own model settings, so a fallback never inherits the wrong parameters
- Every hop that ran is visible in your request history
Code search and memory over MCP
The same binary ships one MCP server: semantic search over your indexed repositories and documentation, plus memory that persists across sessions and clients.
Questions
Something else? Contact us
Checked 2026-09-25 against Bifrost overview, Bifrost with Claude Code.