Route
/models— opens the Models view
What You See
The view is organized into four tabs:Providers tab
Lists every custom provider entry from theproviders.entries config block — these are OpenAI-compatible proxies, self-hosted gateways, and other endpoints not covered by the pi-ai built-in catalog. Most users will see this tab empty, because the pi-ai catalog covers all common providers natively (see the Catalog tab below).
Each card shows:
- Type — any pi-ai catalog provider name, or
openaifor an OpenAI-compatible custom proxy - Name — a friendly label
- Base URL — the endpoint the SDK calls
- API key env name — which environment variable holds the key (e.g.,
ANTHROPIC_API_KEY) - Status — a connection dot (green = key present and ping succeeded; red = missing or failing)
- Timeout / Max retries — per-provider transport tuning
- Enable toggle — soft-disable a provider without removing it
models.test to run a connectivity check and (when supported) lists which models the provider currently exposes plus which agents are using it.
The daemon includes a guard that rejects redundant custom entries for built-in providers — if you try to create
providers.entries.openrouter with the catalog’s default baseUrl, the daemon returns an actionable error directing you to use gateway env_set OPENROUTER_API_KEY=<key> + agents_manage update --provider openrouter instead. Custom entries are only needed for proxies (different baseUrl) or non-catalog providers.Catalog tab
Lists every model from the pi-ai SDK catalog — sourced live from themodels.list RPC, which itself wraps getModels(provider) from @earendil-works/pi-ai. Each row shows:
| Field | Description |
|---|---|
| Provider | Which provider serves the model |
| Model ID | Vendor’s canonical id (e.g., claude-sonnet-4-5-20250929) |
| Display name | Friendly label for UI |
| Context window | Maximum input tokens |
| Max output tokens | Per-completion cap |
| Reasoning | Whether the model exposes reasoning blocks |
| Validated | Whether Comis has confirmed the id resolves at the provider |
Aliases tab
Aliases are shorthand names you can use in agent config (e.g.,model: fast) instead of the full vendor id. Each row shows:
- Alias — the shorthand
- Provider + Model ID — what it resolves to
config.patch.
Defaults tab
Shows each agent’s effective model resolution. For every agent you’ll see:- Agent ID
- Provider the agent is currently configured to use
- Model ID — either explicit, or resolved from an alias
- Override controls if you want a per-agent model that differs from the global default
Common Tasks
Add a new provider
Click Add Provider on the Providers tab. Pick the type (e.g.,
groq), set a name, paste the API key into your environment file or use the secrets manager, then click Test to verify connectivity.Find which agents use Claude Sonnet
On the Providers tab, click Test on the Anthropic card. The test result lists every agent currently using an Anthropic model.
Create a 'fast' alias
On the Aliases tab, click Add Alias. Enter
fast as the alias, pick groq as provider, and llama-3.3-70b-versatile as the model id. Save. Now any agent with model: fast resolves to that combination.This view shows the user-facing slice of model configuration. The full set of provider options (rate limits, fallback chain, cost tracking) lives in the
models section of config.yaml — see the Config Editor for raw YAML access, or the models reference for the schema.Related Pages
Models Reference
Full provider catalog, default models, and pricing.
Agent Editor
Set per-agent model overrides from each agent’s editor page.
Config Editor
Edit the raw
models section of your YAML.