All your AI models, working under one roof.

A small, local gateway that takes one prompt and routes it to the model that's actually good at it — then adds the two things a single model can't do: consensus and cross-model fact-check.

pipx install roost-ai
Claudecode · security OpenAIcreative Geminianalysis Perplexitylive search Localprivate · $0
What it does

One prompt in. The right model out.

Every prompt is classified into task tokens; each active family is scored by capability and live health; the best one runs it.

🎯

Task-aware routing

“Audit this code” → Claude. “Latest on Mars” → Perplexity. roost route "…" picks the family that's actually good at it.

🤝

Consensus

Ask several models the same question, get one synthesized answer plus an agreement signal. roost consensus "…"

Cross-model fact-check

Verify a claim across models: majority verdict, mean confidence, and the dissent. roost factcheck "…"

Local-first — runs on your machine BYO keys — env-only, never stored $0 — no subscription Zero deps — pure standard library MIT — all of it, open
30 seconds

Install & run

Bring the keys you already pay for. A local Ollama needs no key at all.

# install + configure
pipx install roost-ai
roost init
export ANTHROPIC_API_KEY=…   # BYOK — as many as you like
export OPENAI_API_KEY=…

# route, agree, verify
roost route "audit this code for SQL injection"   # → Claude
roost consensus "what caused the 2008 crash" --k 3
roost factcheck "the Great Wall is visible from space"

# or run it as a gateway any OpenAI client can call
roost serve   # http://127.0.0.1:8899/v1  · model="roost" auto-routes
Honest by design

roost vs. the “unified AI gateway” apps

roosttypical gateway app
Where it runsyour machinesomeone's cloud
Your keysBYO, env-only, never storeduploaded to their server
Cost$0subscription
Dependenciesnone (pure stdlib)a tree of them
On failureerrors are errorsa plausible-looking fake
SourceMIT, all of itclosed
Bring your own

Any OpenAI-compatible endpoint works

OpenAI, Ollama, OpenRouter, Groq, DeepSeek, Together, Google's OpenAI endpoint, a private gateway — all via "kind":"openai". Claude uses "kind":"anthropic". Add them in ~/.roost/config.json.