Show HN: Zilla – Use the OpenAI SDK to Call Claude and Gemini Aklivity released Zilla, an open-source LLM gateway that accepts OpenAI API requests on port 7161, Anthropic API requests on port 7162 and Gemini API requests on port 7163, routing each request to a provider by the model named and translating between APIs when client and provider differ. The gateway requires Zilla 2.6.0 or later for the Gemini API, passes the client's own API keys through to providers without storing them in zilla.yaml, and adds streaming, tool calls, guardrails, model fallback and token metrics; a paid Zilla Plus edition extends the same configuration to AWS Bedrock as a provider and as an API on port 7164. An LLM gateway for OpenAI, Anthropic, Gemini and AWS Bedrock. One Zilla gateway https://github.com/aklivity/zilla accepts OpenAI API requests on port 7161 , Anthropic API requests on port 7162 and Gemini API requests on port 7163 , routes each request to a provider by the model it asks for, and translates between the APIs when the client and the provider speak different ones. Your own API keys pass through to the provider, and none are stored in zilla.yaml . The demo has two parts: - Part 1, Zilla open source : OpenAI, Anthropic and Gemini behind one gateway, with dialect translation, streaming, tool calls, guardrails, model fallback and token metrics. - Part 2, Zilla Plus: the same gateway and the same zilla.yaml , upgraded to Zilla Plus and extended with AWS Bedrock, as a provider and as an API on port 7164 , so applications written with the AWS SDK get the same routing, fallback and guardrails. | Model pattern | Provider | API key sent by the client | Edition | |---|---|---|---| | gpt- | OpenAI | Your OpenAI API key | Zilla | | claude- | Anthropic | Your Anthropic API key | Zilla | | gemini- | Gemini | Your Gemini API key | Zilla | | claude-primary | A deliberately unreachable Anthropic deployment, falling back to claude-haiku-4-5 | Your Anthropic API key | Zilla | | anthropic. , amazon. , us.anthropic. , us.amazon. | AWS Bedrock | None, signed with AWS credentials | Zilla Plus | | Port | Service | |---|---| | 7161 | Zilla, OpenAI API | | 7162 | Zilla, Anthropic API | | 7163 | Zilla, Gemini API | | 7164 | Zilla, Bedrock API Part 2 | | 7190 | Zilla, Prometheus metrics | | 7860 | Gradio compare app | | 3000 | Grafana dashboard | Two more services back the guardrails: tei serves the embeddings the jailbreak check compares prompts with, and presidio-analyzer detects personal data. tei downloads its model the first time it starts, so the first docker compose up takes a few minutes. - docker compose - An OpenAI, Anthropic and Gemini API key, for the providers you want to call - Part 2 only: a Zilla Plus license key, which you can request here https://www.aklivity.io/request-demo , and AWS credentials allowed to call bedrock:InvokeModel and bedrock:InvokeModelWithResponseStream Copy .env.example to .env and add your API keys. The Gradio app and the command-line client send them with each request, and Zilla forwards them to the provider, so they are never written to zilla.yaml . .env is git-ignored. cp .env.example .env OPENAI API KEY=