PostgreSQL 数据目录必须用 Docker 命名卷,不能直接绑定挂载宿主机目录,否则初始化可能因权限失败;自托管需自行生成 AUTH_SECRET 与 GATEWAY_API_KEY_HASH_SECRET 两个密钥;ee/ 目录下的企业功能需单独商业授权,多组织管理还需白标许可
llmgateway
theopenco活跃维护统一 API 接入多家大模型服务商,集中路由、管理并分析 LLM 请求,省去逐个对接和维护密钥的麻烦。
Route, manage, and analyze your LLM requests across multiple providers with a unified API interface.
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.shREADME 未说明硬件要求,仅给出 Docker 部署方式,未提及 GPU 或显存需求
开源 LLM API 网关,统一接口路由多家模型厂商并统计用量与成本
统一 API 接入多家大模型服务商,集中路由、管理并分析 LLM 请求,省去逐个对接和维护密钥的麻烦。
核心能力
- 兼容 OpenAI API 格式,迁移时无需改调用代码
- 在网关集中管理多家厂商的 API Key
- 追踪请求数、token 用量、响应时间与费用
- 对比不同模型的表现与性价比
- 支持 Docker 自托管或使用官方托管服务
容易踩的坑
- v1.25.0最新正式版2026-11-09 · 2026-11-09 09:15 UTC
What's Changed
- feat(gateway): add provider key round robin by @steebchen in https://github.com/theopenco/llmgateway/pull/4926
- feat(gateway): per-key safety identifier toggle by @steebchen in https://github.com/theopenco/llmgateway/pull/4933
- fix(gateway): safety ID toggle for admin keys only by @steebchen in https://github.com/theopenco/llmgateway/pull/4934
- perf(playground,ui): react best-practices audit by @smakosh in https://github.com/theopenco/llmgateway/pull/4932
- perf(cwv): faster DevPass sign-in and docs images by @smakosh in https://github.com/theopenco/llmgateway/pull/4922
- fix(billing): resolve Nov security audit findings by @smakosh in https://github.com/theopenco/llmgateway/pull/4925
- feat(models): expose virtual latest aliases by @steebchen in https://github.com/theopenco/llmgateway/pull/4938
- feat(notifications): model price change alerts by @smakosh in https://github.com/theopenco/llmgateway/pull/4940
- feat(ui): add organization projects overview by @smakosh in https://github.com/theopenco/llmgateway/pull/4937
- chore(deps): group dependabot updates by @smakosh in https://github.com/theopenco/llmgateway/pull/4939
- fix(gateway): decode compressed request bodies by @steebchen in https://github.com/theopenco/llmgateway/pull/4942
- fix(gateway): harden virtual model alias policies by @steebchen in https://github.com/theopenco/llmgateway/pull/4945
- feat(crm): gmail and calendly in the admin CRM by @smakosh in https://github.com/theopenco/llmgateway/pull/4941
- docs: align gateway and API docs with code by @steebchen in https://github.com/theopenco/llmgateway/pull/4923
- feat(models): add Baidu Kimi K3 by @steebchen in https://github.com/theopenco/llmgateway/pull/4947
- fix(deps): upgrade better-auth to 1.7.16 by @smakosh in https://github.com/theopenco/llmgateway/pull/4950
- fix(models): raise Step 5 Preview cache price by @steebchen in https://github.com/theopenco/llmgateway/pull/4951
- fix(security): cover every gateway entry point by @steebchen in https://github.com/theopenco/llmgateway/pull/4948
- feat(compliance): add API key policies by @steebchen in https://github.com/theopenco/llmgateway/pull/4936
- fix(gateway): preserve tool-result images safely by @steebchen in https://github.com/theopenco/llmgateway/pull/4875
- chore(db): upgrade drizzle to 1.0.0-rc.5 by @steebchen in https://github.com/theopenco/llmgateway/pull/4946
- fix(gateway): isolate safety identifiers by @steebchen in https://github.com/theopenco/llmgateway/pull/4910
- fix(deps): pin pnpm version for dependabot by @steebchen in https://github.com/theopenco/llmgateway/pull/4953
- feat(models): expose full pricing in /v1/models by @steebchen in https://github.com/theopenco/llmgateway/pull/4952
- feat(admin): find orgs by project or API key ID by @steebchen in https://github.com/theopenco/llmgateway/pull/4955
- feat(admin): add project Payments SDK toggle by @steebchen in https://github.com/theopenco/llmgateway/pull/4956
- fix(worker): finish startup sync before shutdown by @steebchen in https://github.com/theopenco/llmgateway/pull/4957
- fix(gateway): reject pins to deactivated mappings by @steebchen in https://github.com/theopenco/llmgateway/pull/4962
- fix(video): correct Seedance pricing and billing by @steebchen in https://github.com/theopenco/llmgateway/pull/4961
- fix(gateway): log access-restriction route drops by @steebchen in https://github.com/theopenco/llmgateway/pull/4965
- feat(ui): enterprise Airside path, new features by @smakosh in https://github.com/theopenco/llmgateway/pull/4964
- fix(admin): show cached filing price arrows by @steebchen in https://github.com/theopenco/llmgateway/pull/4966
- fix(gateway): use Google image token usage by @steebchen in https://github.com/theopenco/llmgateway/pull/4967
- fix(admin): show arrows only for changed rates by @steebchen in https://github.com/theopenco/llmgateway/pull/4969
- feat(airside): notify Discord on filings by @steebchen in https://github.com/theopenco/llmgateway/pul
- v1.24.02026-11-02 · 2026-11-02 09:15 UTC
查看更新说明
What's Changed
- fix(gateway): authenticate before model resolution by @steebchen in https://github.com/theopenco/llmgateway/pull/4820
- feat(admin): show carrier-paused Airside listings by @steebchen in https://github.com/theopenco/llmgateway/pull/4821
- feat(admin): content filter categories by provider by @steebchen in https://github.com/theopenco/llmgateway/pull/4823
- feat: add security.txt and reporting contacts by @steebchen in https://github.com/theopenco/llmgateway/pull/4825
- feat(airside): list decision models by @steebchen in https://github.com/theopenco/llmgateway/pull/4822
- fix(api): reject unknown Escape models as 400 by @steebchen in https://github.com/theopenco/llmgateway/pull/4830
- fix(models): bill GPT-5.4/5.5 long-context tier by @steebchen in https://github.com/theopenco/llmgateway/pull/4831
- feat(models): add GPT-6.1 Terra by @smakosh in https://github.com/theopenco/llmgateway/pull/4832
- docs(agents): scope model e2e to local TEST_MODELS by @steebchen in https://github.com/theopenco/llmgateway/pull/4833
- feat(ui): add week/month grain to usage chart by @steebchen in https://github.com/theopenco/llmgateway/pull/4836
- fix(models): deactivate novita qwen3-vl-235b by @steebchen in https://github.com/theopenco/llmgateway/pull/4837
- feat(models): add jev 1.14 by @steebchen in https://github.com/theopenco/llmgateway/pull/4835
- fix(models): retire Novita Qwen3 VL 235B mappings by @steebchen in https://github.com/theopenco/llmgateway/pull/4838
- feat(shared): add TypeSafe AI provider logo by @steebchen in https://github.com/theopenco/llmgateway/pull/4839
- feat(models): add AtlasCloud KLING v3.0 Pro by @steebchen in https://github.com/theopenco/llmgateway/pull/4840
- feat(models): add qwen3.8-omni-flash on alibaba by @steebchen in https://github.com/theopenco/llmgateway/pull/4841
- fix(instrumentation): bound OpenTelemetry shutdown by @steebchen in https://github.com/theopenco/llmgateway/pull/4842
- feat(video): add Gemini Omni 1.1 Flash by @steebchen in https://github.com/theopenco/llmgateway/pull/4843
- fix(actions): keep Anthropic output_config.effort with json_schema response_format by @AlSh007 in https://github.com/theopenco/llmgateway/pull/4672
- fix(actions): send array text content of a Bedrock assistant tool-call message as text blocks by @AlSh007 in https://github.com/theopenco/llmgateway/pull/4673
- fix(gateway): re-pick auto reasoning effort for fallback providers by @AlSh007 in https://github.com/theopenco/llmgateway/pull/4259
- feat(content-filter): export classifier checks by @steebchen in https://github.com/theopenco/llmgateway/pull/4826
- fix(devpass): classify premium after discounts by @steebchen in https://github.com/theopenco/llmgateway/pull/4844
- fix(actions): warn on rejected GCP credentials by @steebchen in https://github.com/theopenco/llmgateway/pull/4845
- feat(models): add VEED Fabric 1.0 via AtlasCloud by @steebchen in https://github.com/theopenco/llmgateway/pull/4851
- docs(airside): add carrier billing modes FAQ by @steebchen in https://github.com/theopenco/llmgateway/pull/4853
- chore(gateway): send only the prompt to classifier by @steebchen in https://github.com/theopenco/llmgateway/pull/4847
- feat(api): code exchange for cli browser login by @steebchen in https://github.com/theopenco/llmgateway/pull/4846
- fix(models): retire Qwen3 235B Instruct 2507 by @steebchen in https://github.com/theopenco/llmgateway/pull/4852
- feat(models): add Baidu GLM-5.3 Flash + V4.1 1017 by @steebchen in https://github.com/theopenco/llmgateway/pull/4857
- feat(lounge): add Decision Studio by @smakosh in https://github.com/theopenco/llmgateway/pull/4855
- fix(gateway): count partial image moderation fails by @steebchen in https://github.com/theopenco/llmgateway/pull/4858
- feat(db): lint schema changes old code can't run by @steebchen in https://github.com/theopenco/llmgateway/pull/4829
- perf(ui,code): react best-practices audit fixes by @smakosh in https://github.com/theopenco/llmgateway
- v1.23.02026-10-26 · 2026-10-26 09:26 UTC
查看更新说明
What's Changed
- fix(models): deactivate baidu glm-5 mapping by @steebchen in https://github.com/theopenco/llmgateway/pull/4716
- fix(actions): bound GCP token cache by upstream expiry by @steebchen in https://github.com/theopenco/llmgateway/pull/4718
- feat(models): deepseek-v4.1-flash-1017 deepinfra by @steebchen in https://github.com/theopenco/llmgateway/pull/4706
- fix(ui): show per-page pricing for OCR models by @steebchen in https://github.com/theopenco/llmgateway/pull/4715
- fix(models): deactivate fireworks deepseek-v4-flash by @steebchen in https://github.com/theopenco/llmgateway/pull/4717
- fix(gateway): attribute classifier audit rows by @steebchen in https://github.com/theopenco/llmgateway/pull/4720
- feat(api): reject BYOK base URLs when hosted by @steebchen in https://github.com/theopenco/llmgateway/pull/4719
- feat(models): more deepseek-v4.1-flash-1017 hosts by @steebchen in https://github.com/theopenco/llmgateway/pull/4721
- fix(gateway): pin Vertex OpenAI mappings to global by @steebchen in https://github.com/theopenco/llmgateway/pull/4722
- fix(api): constrain provider key endpoint options by @steebchen in https://github.com/theopenco/llmgateway/pull/4723
- fix(worker): make live stats refresh retry-safe by @steebchen in https://github.com/theopenco/llmgateway/pull/4061
- fix(gateway): harden GCP token exchange by @steebchen in https://github.com/theopenco/llmgateway/pull/4725
- fix(api): source Arena scores from LMArena dataset by @steebchen in https://github.com/theopenco/llmgateway/pull/4726
- fix(gateway): skip BYOK keys with a stale base URL by @steebchen in https://github.com/theopenco/llmgateway/pull/4727
- feat(playground): pick call transcription model by @RATCHAW in https://github.com/theopenco/llmgateway/pull/4724
- feat(models): add minimax-m3.1-flash by @steebchen in https://github.com/theopenco/llmgateway/pull/4728
- fix(models): enable Grok 4.6 on Vertex and inline images by @steebchen in https://github.com/theopenco/llmgateway/pull/4729
- docs(pricing): bump last updated to 2026-10-15 by @steebchen in https://github.com/theopenco/llmgateway/pull/4730
- feat(models): add Grok 4.7 on Vertex as unstable by @steebchen in https://github.com/theopenco/llmgateway/pull/4731
- perf: weekly react best-practices audit fixes by @smakosh in https://github.com/theopenco/llmgateway/pull/4714
- feat: error-rate alerts for BYOK provider keys by @steebchen in https://github.com/theopenco/llmgateway/pull/4661
- Revert "feat: error-rate alerts for BYOK provider keys" by @smakosh in https://github.com/theopenco/llmgateway/pull/4733
- fix(worker): force index for retention cleanup by @steebchen in https://github.com/theopenco/llmgateway/pull/4735
- fix(gateway): forward Claude thinking disabled by @steebchen in https://github.com/theopenco/llmgateway/pull/4737
- fix(devpass): pace limits on stored allowance by @steebchen in https://github.com/theopenco/llmgateway/pull/4738
- fix(models): mark Vertex Grok mappings stable by @steebchen in https://github.com/theopenco/llmgateway/pull/4739
- fix(gateway): gate Claude thinking disable by @steebchen in https://github.com/theopenco/llmgateway/pull/4744
- fix(gateway): enforce Claude tool_choice on Bedrock by @steebchen in https://github.com/theopenco/llmgateway/pull/4745
- feat(airside): let catalogue carriers declare SOC 2, ISO 27001 and GDPR by @smakosh in https://github.com/theopenco/llmgateway/pull/4685
- fix(api): bound customer log searches by @steebchen in https://github.com/theopenco/llmgateway/pull/4743
- fix(gateway): fail fast on database outages by @steebchen in https://github.com/theopenco/llmgateway/pull/4742
- fix(db): session limits, pool metrics, liveness by @steebchen in https://github.com/theopenco/llmgateway/pull/4741
- fix(db): lock-safe migration runner and preflight by @steebchen in https://github.com/theopenco/llmgateway/pull/4740
- fix(playground): list only speech models in audio by @RATCHAW in https://github.com/theopenco/llmgateway/pull/473
- v1.22.02026-10-19 · 2026-10-19 09:25 UTC
查看更新说明
What's Changed
- feat(ui): add prompt cache rate to project model usage chart by @steebchen in https://github.com/theopenco/llmgateway/pull/4612
- fix(models): use Google Cloud Privacy Notice for Google providers by @steebchen in https://github.com/theopenco/llmgateway/pull/4613
- feat(admin): allow editing deleted provider credentials by @steebchen in https://github.com/theopenco/llmgateway/pull/4615
- perf: fix react best-practice violations by @smakosh in https://github.com/theopenco/llmgateway/pull/4609
- feat(models): add decisions category by @smakosh in https://github.com/theopenco/llmgateway/pull/4617
- feat(admin): show org revenue in content filter by @steebchen in https://github.com/theopenco/llmgateway/pull/4619
- feat(models): add Muse Wonder 1.0 by @smakosh in https://github.com/theopenco/llmgateway/pull/4620
- fix: use static imports in backend code by @steebchen in https://github.com/theopenco/llmgateway/pull/4621
- feat(actions): forward safety_identifier to Meta by @steebchen in https://github.com/theopenco/llmgateway/pull/4622
- fix(models): deactivate DS V4 Pro on Fireworks by @steebchen in https://github.com/theopenco/llmgateway/pull/4625
- feat(admin): add 24h window to gateway load tokens by @steebchen in https://github.com/theopenco/llmgateway/pull/4626
- fix: show airside marks in all provider icons by @steebchen in https://github.com/theopenco/llmgateway/pull/4627
- fix: prefer airside marks over bundled icons by @steebchen in https://github.com/theopenco/llmgateway/pull/4629
- fix(gateway): route bare ids to full-window tier by @steebchen in https://github.com/theopenco/llmgateway/pull/4630
- feat(airside): enforce listing context windows by @steebchen in https://github.com/theopenco/llmgateway/pull/4631
- feat(models): add gemini-4-argon on vertex by @steebchen in https://github.com/theopenco/llmgateway/pull/4633
- fix: sort chart tooltips by value desc by @steebchen in https://github.com/theopenco/llmgateway/pull/4634
- fix(gateway): retry flex_unavailable at standard by @steebchen in https://github.com/theopenco/llmgateway/pull/4635
- fix(gateway): log realtime client errors by @steebchen in https://github.com/theopenco/llmgateway/pull/4639
- fix(gateway): keep cache estimates off non-caching providers by @steebchen in https://github.com/theopenco/llmgateway/pull/4637
- feat(airside): verify and flag cached input pricing by @steebchen in https://github.com/theopenco/llmgateway/pull/4636
- fix(models): add search + transcription filters by @AmineAce in https://github.com/theopenco/llmgateway/pull/4623
- fix(actions): key GCP token cache on full credential by @steebchen in https://github.com/theopenco/llmgateway/pull/4640
- test(models): cover output capability filters by @smakosh in https://github.com/theopenco/llmgateway/pull/4642
- perf(db): index error-filtered project logs by @steebchen in https://github.com/theopenco/llmgateway/pull/4641
- feat(models): add gemini-4-argon on google-ai-studio, fix vertex e2e region by @smakosh in https://github.com/theopenco/llmgateway/pull/4643
- fix(admin): keep admin data on failed refresh and fix org/airside admin state by @smakosh in https://github.com/theopenco/llmgateway/pull/4596
- feat(ui): list new templates and agents by @smakosh in https://github.com/theopenco/llmgateway/pull/4644
- fix(api): admin verify uses carrier endpoint by @steebchen in https://github.com/theopenco/llmgateway/pull/4646
- fix(gateway): apply context tier with one provider by @steebchen in https://github.com/theopenco/llmgateway/pull/4648
- perf(api): speed up admin carriers traffic query by @steebchen in https://github.com/theopenco/llmgateway/pull/4649
- feat(admin): delist Airside listings by @steebchen in https://github.com/theopenco/llmgateway/pull/4651
- feat(gateway): moderate TTS input by @steebchen in https://github.com/theopenco/llmgateway/pull/4650
- feat(admin): content filter stats per API key by @steebchen in https://github.com/theopenco/llmgateway/pull/4652
- v1.21.02026-10-12 · 2026-10-12 09:33 UTC
查看更新说明
What's Changed
- feat(worker): model error-rate discord alerts by @steebchen in https://github.com/theopenco/llmgateway/pull/4431
- fix(admin): sort and paginate airside tables by @steebchen in https://github.com/theopenco/llmgateway/pull/4436
- feat(db): index log.trace_id by @steebchen in https://github.com/theopenco/llmgateway/pull/4437
- fix(models): bill and show peak pricing in UTC by @steebchen in https://github.com/theopenco/llmgateway/pull/4438
- fix(admin): exclude DevPass credits from all-time by @steebchen in https://github.com/theopenco/llmgateway/pull/4445
- fix(airside): key incident error types by shape by @steebchen in https://github.com/theopenco/llmgateway/pull/4449
- feat(models): log and tier peak pricing by @steebchen in https://github.com/theopenco/llmgateway/pull/4446
- fix(auth): record session IPs behind the LB by @steebchen in https://github.com/theopenco/llmgateway/pull/4365
- fix(gateway): wrap tenant dispatcher for fetch by @steebchen in https://github.com/theopenco/llmgateway/pull/4452
- feat(models): add Qwen Image 2.1 Pro on Alibaba by @steebchen in https://github.com/theopenco/llmgateway/pull/4451
- refactor(admin): drop server actions for API calls by @steebchen in https://github.com/theopenco/llmgateway/pull/4450
- refactor(models): drop provider-level streaming by @steebchen in https://github.com/theopenco/llmgateway/pull/4456
- feat(admin): track provider listing fees by @steebchen in https://github.com/theopenco/llmgateway/pull/4412
- feat: add prompt management by @smakosh in https://github.com/theopenco/llmgateway/pull/4440
- feat(gateway): add auto routing to /v1/search by @steebchen in https://github.com/theopenco/llmgateway/pull/4460
- feat(admin): view and edit airside settings by @steebchen in https://github.com/theopenco/llmgateway/pull/4453
- fix(api): limit DevPass orgs to a single API key by @steebchen in https://github.com/theopenco/llmgateway/pull/4425
- fix(admin): align unstable errors with history scope by @steebchen in https://github.com/theopenco/llmgateway/pull/4419
- fix(admin): keep load summary independent of grouping by @steebchen in https://github.com/theopenco/llmgateway/pull/4404
- chore(db): drop provider.streaming column by @steebchen in https://github.com/theopenco/llmgateway/pull/4457
- feat(airside): console sidebar and carrier profile by @smakosh in https://github.com/theopenco/llmgateway/pull/4459
- feat: add data streams for SIEM and log export by @smakosh in https://github.com/theopenco/llmgateway/pull/4444
- chore(deps): bump steebchen/actions from 0.17.0 to 0.17.1 by @dependabot[bot] in https://github.com/theopenco/llmgateway/pull/4462
- chore(models): retire deepinfra qwen3.8-2.4t-a95b by @steebchen in https://github.com/theopenco/llmgateway/pull/4468
- chore(models): schedule Vertex model retirements by @steebchen in https://github.com/theopenco/llmgateway/pull/4467
- docs: route new providers through Airside by @steebchen in https://github.com/theopenco/llmgateway/pull/4469
- feat(airside): carrier keys and preflight gates by @steebchen in https://github.com/theopenco/llmgateway/pull/4439
- fix(admin): include Airside routing analytics by @steebchen in https://github.com/theopenco/llmgateway/pull/4470
- feat(admin): loading state for catalogue filters by @steebchen in https://github.com/theopenco/llmgateway/pull/4471
- feat(admin): per-credential model auto-add toggle by @steebchen in https://github.com/theopenco/llmgateway/pull/4472
- fix(routing): elect approved Airside carriers by @steebchen in https://github.com/theopenco/llmgateway/pull/4476
- feat(admin): carrier traffic and status table by @steebchen in https://github.com/theopenco/llmgateway/pull/4475
- fix(routing): configure Airside route providers by @steebchen in https://github.com/theopenco/llmgateway/pull/4477
- feat(admin): explain routing elections per provider by @steebchen in https://github.com/theopenco/llmgateway/pull/4474
- feat(ui): restore the developer homepage, keep the n
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
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 [email protected]