config generator

Build your models.yaml in the browser.

Pick a routing mode, define the engine chain for each tier or level, and copy or download a valid config. Everything runs locally in your browser; nothing you type is sent anywhere.

the engines

Five engine kinds, one of which covers most of the cloud

ollama
Local models on your own GPU. Free, private, no key. The default front of every chain.
openai
Any OpenAI-compatible /chat/completions API. One kind, many providers, set by a base URL.
anthropic
Claude models through Anthropic's native Messages API. Needs an Anthropic key.
openrouter
Hundreds of cloud models behind a single OpenRouter key.
hermes
github-copilot models via your existing hermes CLI login. No key stored here.

The openai kind is not just OpenAI. It speaks the standard chat-completions protocol, so the same engine reaches any provider that implements it. Pick one from the preset menu in an openai engine and the base URL fills in for you:

Global vs per-engine. Set openai_base_url and openai_key_env once in the Global defaults card and every openai engine inherits them. Any openai engine can still override them with its own base URL and key env in that engine's own fields, and the per-engine value always wins. Set the global once if all your openai engines point at the same provider; override per engine when they differ.

routing
How the judge decides where a task goes.
Three fixed buckets: EASY, HARD, EXPERT. Simplest to start with.
The small local classifier. 7B is the accurate floor on an 8 GB card.
tiers
Each tier runs its chain top to bottom; the first engine that answers wins, the rest are fallbacks.
global defaults
Applied across every engine unless an engine overrides them.
Default base URL for every openai engine.
Env var every openai engine reads its key from.
Used when the judge returns a tier your config does not define.
models.yaml