Brew AI Hub is Free: One Endpoint, Five Models
Brew AI Hub is live at hub.brewcode.app. It is an OpenAI-compatible /v1/* API that routes to five open-source models: speech, text, and image generation, all behind one key. The free tier is open today. No credit card, no waitlist, no form that asks for your company size.
I built this because I needed it myself. Brew Voice talks to this hub under the hood, and once the infrastructure was running on real GPUs it felt wasteful to keep it private. If you are prototyping an AI feature and you do not want to wire up three different providers or pay per-token for every experiment, point your OpenAI SDK at hub.brewcode.app and keep going.
The Five Models
One endpoint, five models, picked to cover the things people actually ship.
| Model | Purpose | Notes |
|---|---|---|
| Whisper large-v3-turbo | Speech to text | Multilingual, fast enough for near real-time |
| Qwen 3.5 9B (AWQ, vLLM) | Text, primary | 4-bit quantized, default for chat and tool use |
| Qwen 2.5 7B (Ollama) | Text, fallback | Cheaper, kicks in if 3.5 is busy |
| Flux 2 Dev | Image, quality | Full quality, slower |
| Flux 2 Klein 9B | Image, fast | Half the latency, good enough for drafts |
Routing is automatic. You ask for chat.completions and the text models handle it. You ask for audio.transcriptions and Whisper takes it. You ask for images.generations and Flux answers. No per-model credentials, no juggling SDKs.
The API
If you have ever written against OpenAI, you already know the shape. The only difference is the header: X-API-Key: sh-<your-token> instead of the OpenAI bearer format.
curl https://hub.brewcode.app/v1/chat/completions \
-H "X-API-Key: sh-yourtoken" \
-d '{"model":"qwen-3.5-9b","messages":[{"role":"user","content":"hi"}]}'
That is the whole integration surface for text. Audio and images use the same base URL with /v1/audio/transcriptions and /v1/images/generations. Full Scalar-powered reference lives at hub.brewcode.app/docs.
Most OpenAI SDKs accept a custom base URL and a custom header name. If yours does not, a five-line proxy in your edge layer solves it.
Free Tier Limits
The free tier uses a rolling window quota, not a hard monthly cap. Roughly, you get enough daily headroom to run a real side project or a staging environment. If you hit the window, requests queue or 429 with a Retry-After header, so your client can back off cleanly instead of silently burning cycles.
What is capped:
- Requests per hour, per key
- Concurrent in-flight requests
- Image generation is slower on the free tier than on paid (GPU priority)
What is not capped:
- Total monthly spend (there is none, it is free)
- Which models you can call
- Context length inside the model’s own limit
If the free tier is not enough for what you are building, the self-hosted enterprise track gives you dedicated hardware and your own keys. Reach out via the site.
What You Can Build on It
A few concrete things I have seen work well on the stack:
- Voice-driven bots: Whisper for capture, Qwen for response, one round trip
- Image pipelines: Flux Klein for quick iteration, Flux Dev for the final render
- Semantic-ish search: Qwen as a rerank step over BM25 results, no embedding service needed for small corpora
- Prototype integrations: drop the base URL into a Claude-compatible client and pressure-test your prompt logic without paying per retry
None of this needs a commit to the hub. If you later want to run it yourself, the same model set is available under self-host.
Getting a Key
Sign up at hub.brewcode.app, copy your key, and you are in. Keys start with sh- so they are easy to grep for in code reviews. The docs at hub.brewcode.app/docs have the full endpoint list, rate-limit headers, and example payloads for each model.
What’s Next
More models as they ship. A paid tier with higher quotas is coming for people who outgrow the free window but do not need a dedicated deployment. For teams that need a private hub on their own hardware, the enterprise self-host path is already open, ping me.
Free tier first. Build something, break it, tell me what hurts.