LLM Gateway
Chat with any LLM, generate images, browse models and check your usage and costs.
Que pouvez-vous faire avec LLM Gateway ?
- Unified API Interface: Compatible with the OpenAI API format for seamless migration
- Usage Analytics: Track requests, tokens used, response times, and costs
- Multi-provider Support: Connect to various LLM providers through a single gateway
- Performance Monitoring: Compare different models' performance and cost-effectiveness
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
claude mcp add --transport http llm-gateway 'https://api.llmgateway.io/mcp' --header 'Authorization: <LLM Gateway API key as '\''Bearer <api-key>'\''. Create one at https://llmgateway.io/dashboard>'
{
"mcpServers": {
"llm-gateway": {
"type": "http",
"url": "https://api.llmgateway.io/mcp",
"headers": {
"Authorization": "<LLM Gateway API key as 'Bearer <api-key>'. Create one at https://llmgateway.io/dashboard>"
}
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
LLM Gateway
LLM Gateway is an open-source API gateway for Large Language Models (LLMs). It acts as a middleware between your applications and various LLM providers, allowing you to:
- Route requests to multiple LLM providers (OpenAI, Anthropic, Google Vertex AI, and others)
- Manage API keys for different providers in one place
- Track token usage and costs across all your LLM interactions
- Analyze performance metrics to optimize your LLM usage
Features
- Unified API Interface: Compatible with the OpenAI API format for seamless migration
- Usage Analytics: Track requests, tokens used, response times, and costs
- Multi-provider Support: Connect to various LLM providers through a single gateway
- Performance Monitoring: Compare different models' performance and cost-effectiveness
Getting Started
You can use LLM Gateway in two ways:
- Hosted Version: For immediate use without setup, visit llmgateway.io to create an account and get an API key.
- Self-Hosted: Deploy LLM Gateway on your own infrastructure for complete control over your data and configuration.
Self-Hosted With Docker
Use Docker-managed volumes for the unified image. Do not bind-mount a host directory directly to /var/lib/postgresql/data, because PostgreSQL initialization inside the container needs to set permissions on that directory and that can fail depending on the host filesystem and ownership.
export LLM_GATEWAY_SECRET="$(openssl rand -base64 32 | tr -d '\n')"
export GATEWAY_API_KEY_HASH_SECRET="$(openssl rand -base64 32 | tr -d '\n')"
./scripts/run-unified-container.sh
If you prefer a one-off docker run, use named volumes instead of ~/some-host-dir:
docker volume create llmgateway_postgres
docker volume create llmgateway_redis
docker run -d \
--name llmgateway \
--restart unless-stopped \
-p 3002:3002 \
-p 3003:3003 \
-p 3005:3005 \
-p 3006:3006 \
-p 3007:3007 \
-p 4001:4001 \
-p 4002:4002 \
-v llmgateway_postgres:/var/lib/postgresql/data \
-v llmgateway_redis:/var/lib/redis \
-e AUTH_SECRET="$LLM_GATEWAY_SECRET" \
-e GATEWAY_API_KEY_HASH_SECRET="$GATEWAY_API_KEY_HASH_SECRET" \
ghcr.io/theopenco/llmgateway-unified:latest
Using LLM Gateway API
curl -X POST https://api.llmgateway.io/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LLM_GATEWAY_API_KEY" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}'
Development Setup
Install dependencies and set up the development environment:
pnpm i && pnpm run setupThis will install all dependencies, start Docker services, sync the database schema, and seed initial data.
Note for WSL2 users: Ensure Docker Desktop is running with WSL integration enabled.
- Start development servers:
pnpm dev - Build for production:
pnpm build
Folder Structure
apps/ui: Next.js dashboard frontendapps/playground: Lounge — consumer AI chat app (Next.js)apps/code: Next.js Dev Plans + coding tools landing & dashboardapps/airside: Airside — self-serve provider portal (Next.js)apps/api: Hono backendapps/gateway: API gateway for routing LLM requestsapps/docs: Documentation siteee/admin: Internal admin dashboardpackages/db: Drizzle ORM schema and migrationspackages/models: Model and provider definitionspackages/shared: Shared types and utilities
Adding a provider
We do not accept pull requests that add new providers. Inference providers onboard through Airside, our self-serve provider portal, where you register and manage your model listings.
License
LLMGateway is available under a dual license:
- Open Source: Core functionality is licensed under AGPLv3 - see the LICENSE file for details.
- Enterprise: Commercial features in the
ee/directory require an Enterprise license; multi-organization administration requires a white-label license. See ee/LICENSE for details.
Enterprise features include:
- Advanced billing and subscription management
- Full request and response payload retention (Retain All Data); other plans are metadata only
- Custom provider key configurations
- Team and organization management
- Priority support
- And more to be defined
For enterprise licensing, please contact us at contact@llmgateway.io
Questions fréquentes
Qu'est-ce que LLM Gateway ?
Chat with any LLM, generate images, browse models and check your usage and costs.
Comment installer LLM Gateway ?
Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http llm-gateway 'https://api.llmgateway.io/mcp' --header 'Authorization: <LLM Gateway API key as '\''Bearer <api-key>'\''. Create one at https://llmgateway.io/dashboard>'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour LLM Gateway ?
Oui. Il attend Authorization, à renseigner dans sa configuration.
LLM Gateway est-il open source ?
Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.
Qui maintient LLM Gateway ?
Il est publié par theopenco. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.