YUIO — Your Unified Inference Orchestrator. A self-hosted router that puts one OpenAI-compatible API in front of every model provider you use, and routes each request cheapest-tier-first with quota-aware pacing. You run it, on your own accounts.
# one URL, every provider, cheapest-first curl https://your-host/v1/chat/completions \ -H "Authorization: Bearer $KEY" \ -d '{"model":"auto","messages":[{"role":"user","content":"hi"}]}' # → tries the cheapest available lane, escalates on failure. never stalls.
A single, model-agnostic router you host yourself. Define your lanes in one
config.yaml — no model name, provider, host, or price is hard-coded. Every request
cascades from the cheapest available lane upward, escalating on error, empty answer, or a
quality-gate rejection, and never refuses to try.
Cheapest lane that's up answers; escalate on failure/empty/quality-reject. If every breaker is open, it tries them all anyway.
Paces consumption to each plan's reset window and prefers the least-used lane, so you burn what you've prepaid instead of hitting walls.
No Docker, no database required. Runs on a 512 MB box. One config.yaml, one process.
Everything in the box — reliability, cost visibility, and safety, not just routing.
/v1/chat/completions with SSE streaming; drop it into any OpenAI client.YUIO routes across whatever you configure. Recommended, cleanly-supported lanes:
OpenAI-compatible and explicitly sold for use in third-party tools. Cheap, fast, and clean to run.
OpenAI, Anthropic, Google Gemini and friends — the normal, sanctioned API-key path.
llama.cpp / Ollama on your own hardware. Zero marginal cost, fully private.
Any OpenAI-compatible endpoint is a lane. Aggregators and free tiers included.
The commercial gateways are excellent — for teams, breadth, and governance. YUIO competes on a different axis: a single-binary, quota-pacing orchestrator for one person.
| Product | Shape | Best for | Self-host | Quota-pacing focus |
|---|---|---|---|---|
| OpenRouter | Hosted aggregator | Instant breadth | No | — |
| LiteLLM | OSS proxy (Docker+DB) | Platform teams | Yes | — |
| Portkey | Gateway + governance | Enterprise | Yes | — |
| Cloudflare AI Gateway | Edge control plane | Cloudflare users | No | — |
| YUIO | Single-binary router | Solo devs / homelab | Yes | Yes |
Honest note: quota-aware subscription rotation isn't unique — open-source proxies like CLIProxyAPI and claude-code-router do it too. YUIO's bet is packaging: one opinionated binary with pacing built in, not a proxy plus bolt-on dashboards.
Five minutes from clone to first response.
# 1. install python -m pip install -r requirements.txt # 2. configure (one lane boots with no network key — a loopback baseline) cp config.example.yaml config.yaml # 3. run (loopback-only by default) python app.py # uvicorn on :8402 # 4. use curl -s http://127.0.0.1:8402/v1/chat \ -H 'Content-Type: application/json' \ -d '{"messages":[{"role":"user","content":"hello"}]}'
Edit config.yaml to add your lanes (model id, key env var, prices). Secrets stay in
env vars, never in config. Full reference in the repo.