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
Every prompt is classified into task tokens; each active family is scored by capability and live health; the best one runs it.
“Audit this code” → Claude. “Latest on Mars” → Perplexity. roost route "…" picks the family that's actually good at it.
Ask several models the same question, get one synthesized answer plus an agreement signal. roost consensus "…"
Verify a claim across models: majority verdict, mean confidence, and the dissent. roost factcheck "…"
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
| roost | typical gateway app | |
|---|---|---|
| Where it runs | your machine | someone's cloud |
| Your keys | BYO, env-only, never stored | uploaded to their server |
| Cost | $0 | subscription |
| Dependencies | none (pure stdlib) | a tree of them |
| On failure | errors are errors | a plausible-looking fake |
| Source | MIT, all of it | closed |
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.