You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
People ask me every week: how is dario different from LiteLLM / OpenRouter / Kong AI Gateway? Short answer — only one of these routes your existing Claude Max / Pro subscription. The other three route API keys. That's the whole split. Everything else follows from that.
Longer answer, with specifics on when each one wins, below.
Tool
What it is
When it wins
dario
Local proxy, OAuth-routes your Claude Max / Pro subscription + any OpenAI-compat API
You already pay for Claude Max / Pro and want every tool on your machine to use it, not just Claude Code
LiteLLM
Python SDK + proxy, 100+ providers via API keys, enterprise features
You have API keys (not subscriptions), want central spend controls, or run a hosted multi-tenant service
OpenRouter
Hosted aggregator, one API key for hundreds of models
You want model breadth, are fine with pay-per-token, don't want to manage individual provider accounts
Kong AI Gateway
Enterprise on-prem API gateway for LLMs
You already run Kong and need AI traffic to live in the same gateway with the same governance
The core split
Claude Max / Pro is an OAuth subscription, not an API key. Claude Code is the only first-party client Anthropic ships that uses it. Every other tool — Cursor, Aider, Cline, Continue.dev, OpenHands, the Claude Agent SDK — expects an Anthropic API key, bills per token, and cannot use your subscription.
That's a strictly product-level gap, not a technical one. Anthropic could expose subscription access over an API key tomorrow and hasn't. The request shape that Anthropic's infrastructure accepts for subscription billing is specifically Claude Code's wire shape — tool names, effort setting, max_tokens, system prompt structure, header order, body field order, TLS ClientHello, pacing, session-id lifecycle. Send a close-but-not-exact match and Anthropic silently reclassifies the request to overage (pay-per-token) or hits you with a hard 402.
dario closes this gap by replaying the exact Claude Code wire shape — live-captured from your installed CC binary — on every outbound request to api.anthropic.com. Your subscription sees a CC session because from the wire up, it is one.
LiteLLM, OpenRouter, Kong don't close this gap. They route API keys. They don't do OAuth subscription auth, they don't do CC fingerprint replay, and they don't claim to. Entirely different class of tool.
When dario wins
You pay for Claude Max or Claude Pro and want Cursor, Aider, Cline, Roo Code, Continue.dev, Zed, Windsurf, OpenHands, OpenClaw, Hermes, your own scripts, and the Claude Agent SDK to all bill against it instead of a parallel API key
You run multiple coding agents simultaneously and want one local endpoint every tool can reuse (http://localhost:3456)
You've hit billing reclassification on a third-party client and want to stay on five_hour / seven_day billing (see Discussion #13 for the 8 detection signals, Discussion #39 for the burn-rate causes)
You have multiple Claude subscriptions and want multi-account pool mode with session stickiness + in-flight 429 failover across them
You want the proxy layer entirely off the wire via shim mode (NODE_OPTIONS=--require patch — no HTTP hop, no port, longest-half-life against fingerprinting)
You want to audit it — ~10,750 lines of TypeScript, zero runtime dependencies, SLSA-attested on every release
When LiteLLM wins
You have API keys from multiple providers (not OAuth subscriptions) and want a central routing layer
You need enterprise features — SSO, cost center / budget tracking, user management, audit logs, multi-tenant key management
You're running a hosted multi-tenant service and need per-user spend controls and key rotation
You already live in Python and want a Python-native SDK that abstracts over provider differences
You want structured output validation / guardrails / fallback chains at the framework level
LiteLLM and dario can both be running on the same machine without conflict. Point dario at LiteLLM as an OpenAI-compat backend (dario backend add litellm --base-url=http://localhost:4000/v1) if you want LiteLLM to handle provider fan-out and dario to handle the Claude subscription case. Different layers of the same stack.
When OpenRouter wins
You want model breadth — hundreds of models from dozens of providers behind one API key, no individual accounts to manage
You're fine with pay-per-token pricing and don't need subscription billing
You want provider failover as a hosted service (OpenRouter handles it; dario does it only within your own Claude subscription pool)
You want to experiment with models you don't yet know you'll stick with
You want a single invoice instead of managing billing with seven providers
OpenRouter is strictly a hosted aggregator — you pay them, they pay the providers. They don't touch your existing Claude Max subscription and they can't. If you already pay for Max and want that spend applied to third-party tools, OpenRouter doesn't help; dario does. If you want model breadth that Claude Max doesn't include (Llama, DeepSeek, Qwen, Grok), OpenRouter does that cleanly and you can route through dario to unify with your Claude subscription flow.
When Kong AI Gateway wins
You already run Kong and need AI traffic to live under the same gateway — same auth, same rate limiting, same observability, same deployment model
You need enterprise governance — request/response logging to SIEM, PII redaction, compliance controls, role-based access
You're operating at a scale where a DIY proxy on a developer machine is not acceptable (regulated industry, audit requirements, etc.)
You want semantic caching, prompt guards, and request shaping at the gateway level
Kong AI Gateway and dario are solving radically different problems at different scales. If your question is "how does my engineering org govern LLM traffic across 500 developers?", Kong. If your question is "how do I use my $200/mo Claude Max subscription from every tool on my laptop?", dario. They don't compete in the same conversation.
The one thing only dario does
OAuth-routing your Claude Max / Pro subscription to any tool that speaks the Anthropic Messages API — with a byte-perfect Claude Code wire-shape replay so the subscription actually accepts it.
LiteLLM doesn't do this. OpenRouter doesn't do this. Kong AI Gateway doesn't do this. Copilot API doesn't do this. Helicone doesn't do this. Portkey doesn't do this.
It's not because those projects are worse — it's because the problem is narrow and specific (one vendor's OAuth flow, one product's wire fingerprint, one class of subscription plan) and most projects are aimed at the much-wider API-key-routing market. dario is aimed at the narrow slice, which is also the slice where there's no existing answer.
If that narrow slice is what you need, dario is the only thing that does it. If it's not, one of the others is probably a better fit for your actual shape.
What do you do if you need both?
Stack them. dario is a local endpoint at http://localhost:3456 that speaks both Anthropic and OpenAI protocols. LiteLLM, OpenRouter, Kong AI Gateway all expose OpenAI-compat endpoints. Tell dario to treat them as OpenAI-compat backends:
Your tools point at http://localhost:3456. Claude model names route through dario's Claude subscription backend. Non-Claude models route through whichever OpenAI-compat backend you configured. Both billing modes (OAuth subscription for Claude, per-token keys for everything else) at the same local endpoint.
Questions / counter-arguments welcome
If you've used any of these and think the positioning above is off — or there's a fifth tool I should be comparing to — post below. I want this discussion to be the honest answer when someone asks "is dario just a worse X?" so it's worth getting right.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
TL;DR
People ask me every week: how is dario different from LiteLLM / OpenRouter / Kong AI Gateway? Short answer — only one of these routes your existing Claude Max / Pro subscription. The other three route API keys. That's the whole split. Everything else follows from that.
Longer answer, with specifics on when each one wins, below.
The core split
Claude Max / Pro is an OAuth subscription, not an API key. Claude Code is the only first-party client Anthropic ships that uses it. Every other tool — Cursor, Aider, Cline, Continue.dev, OpenHands, the Claude Agent SDK — expects an Anthropic API key, bills per token, and cannot use your subscription.
That's a strictly product-level gap, not a technical one. Anthropic could expose subscription access over an API key tomorrow and hasn't. The request shape that Anthropic's infrastructure accepts for subscription billing is specifically Claude Code's wire shape — tool names, effort setting, max_tokens, system prompt structure, header order, body field order, TLS ClientHello, pacing, session-id lifecycle. Send a close-but-not-exact match and Anthropic silently reclassifies the request to
overage(pay-per-token) or hits you with a hard 402.dario closes this gap by replaying the exact Claude Code wire shape — live-captured from your installed CC binary — on every outbound request to
api.anthropic.com. Your subscription sees a CC session because from the wire up, it is one.LiteLLM, OpenRouter, Kong don't close this gap. They route API keys. They don't do OAuth subscription auth, they don't do CC fingerprint replay, and they don't claim to. Entirely different class of tool.
When dario wins
http://localhost:3456)five_hour/seven_daybilling (see Discussion #13 for the 8 detection signals, Discussion #39 for the burn-rate causes)NODE_OPTIONS=--requirepatch — no HTTP hop, no port, longest-half-life against fingerprinting)When LiteLLM wins
LiteLLM and dario can both be running on the same machine without conflict. Point dario at LiteLLM as an OpenAI-compat backend (
dario backend add litellm --base-url=http://localhost:4000/v1) if you want LiteLLM to handle provider fan-out and dario to handle the Claude subscription case. Different layers of the same stack.When OpenRouter wins
OpenRouter is strictly a hosted aggregator — you pay them, they pay the providers. They don't touch your existing Claude Max subscription and they can't. If you already pay for Max and want that spend applied to third-party tools, OpenRouter doesn't help; dario does. If you want model breadth that Claude Max doesn't include (Llama, DeepSeek, Qwen, Grok), OpenRouter does that cleanly and you can route through dario to unify with your Claude subscription flow.
When Kong AI Gateway wins
Kong AI Gateway and dario are solving radically different problems at different scales. If your question is "how does my engineering org govern LLM traffic across 500 developers?", Kong. If your question is "how do I use my $200/mo Claude Max subscription from every tool on my laptop?", dario. They don't compete in the same conversation.
The one thing only dario does
OAuth-routing your Claude Max / Pro subscription to any tool that speaks the Anthropic Messages API — with a byte-perfect Claude Code wire-shape replay so the subscription actually accepts it.
LiteLLM doesn't do this. OpenRouter doesn't do this. Kong AI Gateway doesn't do this. Copilot API doesn't do this. Helicone doesn't do this. Portkey doesn't do this.
It's not because those projects are worse — it's because the problem is narrow and specific (one vendor's OAuth flow, one product's wire fingerprint, one class of subscription plan) and most projects are aimed at the much-wider API-key-routing market. dario is aimed at the narrow slice, which is also the slice where there's no existing answer.
If that narrow slice is what you need, dario is the only thing that does it. If it's not, one of the others is probably a better fit for your actual shape.
What do you do if you need both?
Stack them. dario is a local endpoint at
http://localhost:3456that speaks both Anthropic and OpenAI protocols. LiteLLM, OpenRouter, Kong AI Gateway all expose OpenAI-compat endpoints. Tell dario to treat them as OpenAI-compat backends:Your tools point at
http://localhost:3456. Claude model names route through dario's Claude subscription backend. Non-Claude models route through whichever OpenAI-compat backend you configured. Both billing modes (OAuth subscription for Claude, per-token keys for everything else) at the same local endpoint.Questions / counter-arguments welcome
If you've used any of these and think the positioning above is off — or there's a fifth tool I should be comparing to — post below. I want this discussion to be the honest answer when someone asks "is dario just a worse X?" so it's worth getting right.
Beta Was this translation helpful? Give feedback.
All reactions