3.9K
A context-driven model router. It sits between your applications or coding harnesses and the model providers, and does two things a proxy doesn't: it puts the context your models are missing into the request, and it routes each call to the right model and credential for that workspace across providers. Multi-tenant, provider-agnostic, and metered per workspace.
Deploying to Kubernetes? Use the Helm chart at
bitoai/bito-gateway-helm — it
brings up the gateway, its database and its counter store in one command.
The gateway needs a MySQL database and one encryption key.
docker run -d --name bito-gateway -p 87
-e DB_HOST=mysql.example.internal \
-e DB_PORT=3306 \
-e DB_NAME=bito_gateway \
-e DB_USER=bitogw \
-e DB_PASSWORD='<your-db-password>' \
-e CRYPTO_ENV_KEK_KEY="$(openssl rand
bitoai/bito-gateway
Then point a client at it with a gatewa
curl http://localhost:8788/v1/messages \
-H "Authorization: Bearer gw_sk_..."
-H "content-type: application/json" \
-d '{"model":"claude-haiku-4-5","max_
"messages":[{"role":"user","content":"Hello"}]}'
**
CRYPTO_ENV_KEK_KEYmust be base64 encrypts every stored provider credential, so back it up outside the container — losing it makes those credentials unrecoverable. Generate i
| Path | Purpose |
|---|---|
/v1/messages | Anthropic Messages A |
/v1/chat/completions | OpenAI Chat Completions API |
/v1/responses | OpenAI Responses AP |
/healthz | liveness — the process is up |
/readyz | readiness — database and |
/admin | admin API and web console (off unless enabled) |
gwctl CLIThe image also ships gwctl for setup and administration — creating workspaces and
gateway keys, adding provider accounts chema, and inspecting
usage:
docker run --rm -e DB_HOST=... -e DB_PAeway \
gwctl connect claude
gwctl connect <harness> prints the ex — Claude Code, Cursor,
Cline, Continue, Aider, Codex, Copilot, Windsurf, Zed, or a generic OpenAI/Anthropic
client.
runAsNonRoot: true under Pod Securiwith no extra config./healthz.linux/amd64.GW_CONFIG. The image sets `GW_MANAGcontainer fails
closed rather than starting with a freshly generated encryption key.X.Y.Z are releases; latest tracks the newest. Tags ending -SNAPSHOT are branch
builds and are not intended for product
Content type
Image
Digest
sha256:74e2e1664…
Size
33 MB
Last updated
about 20 hours ago
docker pull bitoai/bito-gateway