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
$ npx -y skills add theopenco/llmgateway --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: theopenco/llmgateway
What's inside
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:
You can use LLM Gateway in two ways:
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 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
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?"}
]
}'
Install dependencies and set up the development environment:
pnpm i && pnpm run setup
This 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
apps/ui: Next.js dashboard frontendapps/playground: Lounge โ consumer AI chat app (Next.js)apps/code: Next.js Dev Plans + coding tools landing & dashboardapps/api: Hono backendapps/gateway: API gateway for routing LLM requestsapps/docs: Documentation siteapps/admin: Internal admin dashboardpackages/db: Drizzle ORM schema and migrationspackages/models: Model and provider definitionspackages/shared: Shared types and utilitiesLLMGateway is available under a dual license:
ee/ directory require an Enterprise license - see ee/LICENSE for details.For enterprise licensing, please contact us at contact@llmgateway.io
.agents/
skills/
blog/
SKILL.md
changelog/
SKILL.md
core-web-vitals/
references/
LCP.md
SKILL.md
knowledge-base/
SKILL.md
migrations/
SKILL.md
pull-request/
SKILL.md
.claude/
hooks/
session-start.sh
settings.json
skills/
blog
changelog
core-web-vitals
knowledge-base
migrations
pull-request
verify/
SKILL.md
.conductor/
settings.toml
.devcontainer/
devcontainer.json
Dockerfile
post-start.sh
.dockerignore
.editorconfig
.env.example
.env.unified.example
.github/
dependabot.yml
ISSUE_TEMPLATE/
bug_report.yml
config.yml
docs.yml
feature_request.yml
new_model.yml
new_provider.yml
pr-assets/
ocr/
activity-log.png
model-detail.png
ocr-log-detail.png
start.sh
test-split-docker.sh
test-unified-docker.sh
workflows/
autofix.yml
ci.yml
e2e.yml
image-actions.yml
images.yml
pr.yml
publish.yml
run.yml
traffic-report.yml
weekly-release.yml
.gitignore
.husky/
commit-msg
pre-commit
.mcp.json
.npmrc
.oneignore
.run/
dev.run.xml
e2e full EXP.run.xml
e2e full.run.xml
e2e lite basic only.run.xml
e2e lite cache only .run.xml
e2e lite.run.xml
e2e provider keys only.run.xml
test.run.xml
.tool-versions
.vscode/
settings.json
AGENTS.md
apps/
api/
.lintstagedrc.json
.prettierignore
eslint.config.mjs
package.json
src/
api.spec.ts
auth/
config.spec.ts
config.ts
handler.spec.ts
handler.ts
credit-topup-checkout.spec.ts
error-handler.spec.ts
index.ts
lib/
account-deletion.spec.ts
account-deletion.ts
api-key-scope-filter.ts
api-url.ts
arena-benchmarks.ts
beacon.ts
end-user-session-auth.ts
file-extract.spec.ts
file-extract.ts
hasActiveApiKey.ts
http-client.ts
iam-rules.ts
mode-split.ts
organization-provider-key.ts
pending-renewal.spec.ts
pending-renewal.ts
platform-secret-auth.ts
provider-key-allowed-models.ts
rag.spec.ts
rag.ts
referral-bonus.spec.ts
referral-bonus.ts
require-enterprise-admin.ts
revoke-member-api-keys.ts
seat-limit.ts
self-refund.spec.ts
self-refund.ts
sso-default-projects.ts
sso-domains.spec.ts
sso-domains.ts
sso-roles.ts
stats-window.ts
stripe-card-error.ts
team-invites.ts
user-usage-breakdown.ts
middleware/
admin.spec.ts
admin.ts
tracing.ts
posthog.ts
routes/
activity.spec.ts
activity.ts
admin-bulk-block.spec.ts
admin-devpass-gift-reset-passes.spec.ts
admin-devpass-payg.spec.ts
admin-devpass-search.spec.ts
admin-global-stats.spec.ts
admin-metrics-bonus.spec.ts
admin-metrics-gross-revenue.spec.ts
admin-metrics-mode-split.spec.ts
admin-org-delete-credits.spec.ts
admin-org-details.spec.ts
admin-org-details.ts
admin-org-plan-term.spec.ts
admin-paid-customers.spec.ts
admin-provider-credentials.spec.ts
admin-provider-credentials.ts
admin-routing-analytics.spec.ts
admin-routing-analytics.ts
admin-unstable-mappings.spec.ts
admin.ts
analytics.spec.ts
analytics.ts
audit-logs.ts
beacon.spec.ts
beacon.ts
chat-plans.ts
chat-projects.spec.ts
chat-projects.ts
chat.ts
chats.ts
custom-models.spec.ts
custom-models.ts
dev-plan-cancellation-feedback.spec.ts
dev-plan-cancellation-feedback.ts
dev-plans-payg.spec.ts
dev-plans-reset-passes.spec.ts
dev-plans.spec.ts
dev-plans.ts
dynamic-routes.spec.ts
dynamic-routes.ts
end-user-bonus-flow.spec.ts
escape.ts
guardrails.ts
index.ts
internal-models.ts
keys-api.spec.ts
keys-api.ts
keys-provider.e2e.ts
keys-provider.spec.ts
keys-provider.ts
logs.spec.ts
logs.ts
lounge.ts
master-keys.ts
model-ratings.spec.ts
model-ratings.ts
model-survey.spec.ts
model-survey.ts
organization.spec.ts
organization.ts
payments.e2e.ts
payments.ts
platform-connect.ts
platform-customers.ts
platform-session-refresh.ts
platform-sessions.spec.ts
platform-sessions.ts
platform-wallet.ts
platform-webhooks.ts
playground-realtime-history.spec.ts
playground.ts
projects.spec.ts
projects.ts
public-apps.ts
public-chat-shares.ts
public-chat-support.spec.ts
public-chat-support.ts
public-config.ts
public-contact.ts
public-discounts.ts
public-escape.ts
public-leaderboard.ts
public-lounge-leaderboard.ts
public-model-ratings.ts
public-model-stats.ts
public-model-survey.ts
public-newsletter.ts
public-profile.ts
public-providers-stats.spec.ts
public-providers-stats.ts
referral.ts
routing-config.ts
scim.spec.ts
scim.ts
skills.ts
sso.ts
subscriptions.ts
team-iam.spec.ts
team-invites.spec.ts
team.ts
user.spec.ts
user.ts
v1-master-custom-catalog.spec.ts
v1-master.spec.ts
v1-master.ts
video.spec.ts
video.ts
scripts/
generate-openapi.ts
serve.ts
stripe-end-user-bonus.spec.ts
stripe.spec.ts
stripe.ts
testing.ts
utils/
authorization.ts
chat-support-knowledge.spec.ts
chat-support-knowledge.ts
default-org.ts
devpass-filter.ts
discord.ts
email-validation.spec.ts
email-validation.ts
email.ts
history-window.ts
infer-name.spec.ts
infer-name.ts
invoice.spec.ts
invoice.ts
lounge-points.ts
org-history-filter.ts
personal-org.ts
plan-billing.ts
playground-key.ts
profile.spec.ts
profile.ts
sso-domain.spec.ts
sso-domain.ts
timezone.ts
vars.ts
tsconfig.json
code/
.gitignore
.lintstagedrc.json
.prettierignore
components.json
content-collections.ts
e2e/
census.pw.ts
eslint.config.mjs
next.config.ts
package.json
playwright.config.ts
postcss.config.mjs
public/
devpass-badge.svg
favicon/
android-chrome-192x192.png
android-chrome-512x512.png
apple-touch-icon.png
favicon-16x16.png
favicon-32x32.png
favicon.ico
site.webmanifest
integrations/
empryo.png
soulforge.png
llms.txt
opengraph.png
src/
app/
claude-code-alternative/
opengraph-image.tsx
page.tsx
coding-models/
page.tsx
compare/
[slug]/
opengraph-image.tsx
page.tsx
opengraph-image.tsx
page.tsx
dashboard/
(main)/
billing/
BillingClient.tsx
page.tsx
layout.tsx
page.tsx
profile/
page.tsx
ProfilePageClient.tsx
settings/
page.tsx
usage/
page.tsx
agents/
[agentId]/
AgentDetailClient.tsx
page.tsx
components/
ActivePlanChangeTier.tsx
ActivityHeatmap.tsx
AgentModelUsageChart.tsx
AllowanceExhaustedCard.tsx
ApiKeySection.tsx
BillingDetailsDialog.tsx
CapHitResetOfferDialog.tsx
coding-agents-shared.ts
CodingAgents.tsx
DashboardIntegrations.tsx
DeleteAccount.tsx
DevPassBillingDetails.tsx
DevPassInvoices.tsx
DevPassPaymentMethod.tsx
DevPlanSettings.tsx
InactivePlanChooser.tsx
PayAsYouGoCard.tsx
QuickStart.tsx
ResetPassCard.tsx
SurveyReminderDialog.tsx
UsageBar.tsx
UsageOverview.tsx
UsageSummaryCard.tsx
DashboardShell.tsx
feedback/
dev-plan-cancellation/
FeedbackForm.tsx
page.tsx
plans.ts
survey/
page.tsx
SurveyClient.tsx
types.ts
useDevPlanStatus.ts
data/
[year]/
page.tsx
page.tsx
forgot-password/
page.tsx
globals.css
guides/
GuidesGrid.tsx
page.tsx
layout.tsx
leaderboard/
page.tsx
legal/
layout.tsx
privacy/
page.tsx
terms/
page.tsx
... 1600 moreShowing a partial view of a very large repo.
FAQ
llmgateway is a Claude Code plugin with 1 hand-picked skill for development work, indexed on Flowy. Install it with the command on its page. It includes verify. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.