One Interface for 100+ LLMs: LiteLLM and the Case Against SDK Sprawl
You've probably got a folder somewhere with API keys for OpenAI, Anthropic, Gemini, and maybe Bedrock, each with its own client library, its own auth pattern, and its own idea of what a "message" looks like. Every time you want to try a new model, you're back in the docs learning another SDK. LiteLLM is an open source AI gateway that collapses all of that into a single interface, and it speaks the OpenAI format you already know.
What It Does
LiteLLM is an open source AI Gateway that gives you one unified interface to call 100+ LLM providers — OpenAI, Anthropic, Gemini, Bedrock, Azure, and more — using the OpenAI format. Instead of juggling provider-specific SDKs, auth patterns, request formats, and error types, you write your calls once and point them at whichever model you want.
It ships in two forms. The first is a Python SDK you can pull in as a library for direct integration in your own code. The second is the AI Gateway, also called the Proxy Server, which you deploy as a centralized service for your team or organization. The proxy is self-hosted and positioned as enterprise-ready, so it's meant to sit between your applications and the providers rather than living inside a single script. Deployment options include Render, Railway, AWS, and GCP, with one-click buttons for each in the repo.
Why It's Cool
It meets you where you already are. The OpenAI format isn't just a nice-to-have — it's the de facto standard most developers have already internalized. By adopting it as the universal interface, LiteLLM means you don't have to learn a new abstraction to use it. Your existing code patterns mostly carry over; you just change where the request goes.
Provider sprawl is a real problem, and this is a direct answer to it. If you've ever had a bug that only reproduces on one provider's SDK, or spent an afternoon normalizing error handling across three different APIs, you know the friction LiteLLM is targeting. Different auth patterns and request formats for every model is exactly the kind of thing that looks manageable at two providers and becomes a tax at five.
Two deployment shapes for two different problems. The Python SDK is the right call when you're building something yourself and just want a cleaner abstraction layer. The Proxy Server is for when you've got a team or multiple services and want a single place to route LLM traffic. That's a meaningful distinction — a lot of tools force you into one model or the other, and LiteLLM lets you start as a library and graduate to a gateway without switching ecosystems.
The 100+ provider count is the headline, but the framing matters more. The value isn't just breadth; it's that breadth comes without a corresponding increase in integration work on your end. That's the whole pitch, and it's a legitimate one.
Self-hosted and enterprise-ready. For teams with data governance requirements or a preference for keeping infrastructure in-house, the fact that the gateway is self-hosted matters. You're not routing your prompts through someone else's managed service unless you choose the hosted proxy option.
How to Try It
The project is at github.com/berriai/litellm. Here's the short path:
-
Install the SDK. It's published on PyPI as
litellm, so a standardpip install litellmgets you started. -
Pick your entry point. If you want to use it as a library, jump straight into the SDK docs. If you want the gateway, head to the Proxy Server docs.
-
Check provider support. Before you commit, skim the supported providers list to confirm the models you care about are covered.
-
Deploy the proxy if you need it. The README includes one-click deploy buttons for Render, Railway, AWS, and GCP. For GCP there's a Terraform example in the repo with a Cloud Shell tutorial.
-
Fall back on the community channels if you get stuck — there's a Discord, a Slack, and even a WhatsApp link in the badges.
Final Thoughts
LiteLLM is best suited to developers and teams who are already working across multiple LLM providers, or who expect to. If you're happily using one provider and don't plan to change that, the abstraction layer probably isn't earning its keep yet. But the moment you add a second or third provider — or the moment you want a central place for your team's LLM traffic — the value proposition gets a lot clearer. It's a pragmatic tool aimed at a problem that only gets worse as the model landscape keeps fragmenting, and it's worth a look before you write your fourth provider-specific client wrapper.