RouterFuel is a single async proxy layer in front of every model provider you use: direct integrations for 11 major labs, plus every model on OpenRouter as a fallback. Built on a Tokio and Axum network core, it multiplexes concurrent inference requests and automatically reroutes around a failing provider without you writing retry logic yourself.
self-hosted via Docker · zero telemetry sent off-cluster · AGPL-3.0 core
build
Postgres + pgvector are provisioned automatically by Docker Compose. Nothing to install by hand.
# 1. Clone and configure git clone https://github.com/uaz5/Routerfuel.git cd Routerfuel cp .env.example .env # fill in ROUTERFUEL_ADMIN_KEY at minimum # 2. Generate a client API key ./scripts/generate-key.sh "MyFirstClient" # copy the printed hash line into .env's ROUTERFUEL_API_KEYS # 3. Run it: Postgres + pgvector are provisioned automatically docker compose up --build # 4. Make your first request (use the raw key generate-key.sh printed, not the hash) curl -X POST http://localhost:3000/v1/chat/completions \ -H "X-API-Key: rf_live_yourgeneratedkey" \ -H "X-Anthropic-API-Key: sk-ant-yourkey" \ -H "Content-Type: application/json" \ -d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
supported providers
what's shown on the left
Illustrative example traffic, not a live feed of production metrics. Every provider named is one RouterFuel actually routes to; nothing here is fabricated, it's just not connected to a real running instance on this page.
Every RouterFuel deployment ships with the same resiliency core: no add-on modules, no separate billing for the parts that keep your inference layer alive.
Vector-matches incoming prompts against prior completions using a local embedding model (no external embedding API cost) and serves near-duplicates from cache instead of re-calling a provider.
Trips automatically after repeated provider errors, stops sending it traffic, and probes it back into rotation once it recovers, so a struggling provider doesn't take your requests down with it.
LoopGuard flags a client stuck retrying the same prompt; SpendGuard hard-caps per-client spend in a rolling window. Both are checked before a provider is ever called, so a blocked request costs nothing.
Seamlessly route to any model OpenRouter supports. Catalog is synced at server startup, so new models show up without a code change on your side.
Every tier ships the full resiliency core. All features are free during the open beta.
Hobby
For side projects and prototypes.
Freelaunching soon
Developer
For production workloads at scale.
$15/molaunching soon
Enterprise
For regulated and air-gapped environments.
Customlaunching soon
Questions, feedback, or want to talk deployment? Reach us directly.
contact@routerfuel.comlicensing
RouterFuel's core is licensed under AGPL-3.0. That works great for self-hosting and open-source use, but if you're embedding RouterFuel in a closed-source product or run into AGPL's network-use clause at your company, we offer a separate commercial/enterprise license with no copyleft obligations.
Talk to us about licensingFree during the open beta. We'll email you when your access is ready.
We'll email you as soon as your access is ready.