Model CatalogNEW
The bundled model registry — capabilities, limits, and per-1M-token pricing for 20+ models, plus per-session model selection and custom overrides.
Sophon ships with a bundled model catalog — a registry of 20+ pre-configured models across Anthropic, OpenAI, Google Gemini, and Ollama. Every entry carries a display name, capability flags, context and output limits, and flat per-1M-token input/output pricing. The catalog is what powers the model pickers in the Dashboard and CLI, the Settings capability matrix, and cost tracking.
The catalog is metadata only. It never adds or configures a provider — Sophon stays bring-your-own-key. It describes the models your providers expose, so pickers and cost tracking have accurate names, capabilities, and prices.
What's in the catalog
Each catalog entry describes one model:
| Field | Meaning |
|---|---|
| Display name | Human-readable name shown in pickers and Settings |
| Provider | Which provider type serves the model (anthropic, openai, gemini, ollama, …) |
| Capabilities | Vision, function calling, streaming, reasoning, code generation |
| Context window | Maximum input tokens |
| Max output | Maximum generated tokens |
| Input / output cost | Flat USD price per 1M tokens, each direction |
A model that isn't in the catalog — a custom endpoint, a freshly released model, or a local Ollama pull — falls back to the capabilities its provider reports. Custom and local models keep working without a catalog entry; they just show provider-supplied metadata instead of curated names and pricing.
Per-session model selection
By default, routing picks the highest-priority active provider. You can override that per session — useful for sending one conversation to a cheaper model, or testing a new model without touching priorities:
- Dashboard — the chat inspector has a model dropdown listing every active provider's models with display names and pricing inline.
- CLI — the
/providerslash command in Interactive Chat:
| Command | What it does |
|---|---|
/provider | List configured providers — id, type, status, default model — with the active one marked |
/provider <id | type> [modelId] | Route this session through a specific provider (and optionally a specific model) |
/provider reset | Clear the override; the session goes back to default priority routing |
The override is session-scoped: it affects only that conversation and disappears when you reset it or start a new session. Cost tracking always prices the model actually used — including overrides — so budget numbers stay honest no matter what you pick.
Settings matrix
Settings → Models in the Dashboard shows the full catalog as a capability and pricing matrix: model, provider, context window, max output tokens, vision, function calling, streaming, reasoning, and input/output cost per 1M tokens.
Admins with the ManageModels permission can additionally hide models. A hidden model disappears from pickers and the visible-catalog API, but its pricing data is retained so historical cost reports stay accurate. Non-admins see the matrix but can't toggle visibility.
Custom models & overrides
The bundled catalog is extended — never replaced — by an optional user file:
~/.sophon/config/models-catalog.jsonIt's plain JSON with no secrets, so you can edit it freely or check it into your dotfiles. Entries are matched against the bundled catalog by providerType::modelId, and an override entry fully replaces the bundled entry for that key — so to correct a bundled model's pricing, repeat the complete entry (capabilities included) with the new prices. A separate suppressions list hides models without removing their pricing data:
{
"entries": [
{
"providerType": "ollama",
"modelId": "qwen3:32b",
"displayName": "Qwen 3 32B (local)",
"capabilities": {
"supportsVision": false,
"supportsFunctionCalling": true,
"supportsStreaming": true,
"supportsReasoning": true,
"supportsCodeGeneration": true,
"maxContextTokens": 131072,
"maxOutputTokens": 16384,
"costPer1MInputTokens": 0,
"costPer1MOutputTokens": 0
}
}
],
"suppressions": ["openai::gpt-4o-mini"]
}Hiding a model from Settings → Models writes to the same suppressions list. A malformed override file is ignored with a warning — the bundled catalog keeps working.
API
| Endpoint | What it returns / does | Access |
|---|---|---|
GET /api/models/catalog | Visible (non-hidden) models with display names, capabilities, and pricing | Any authenticated user |
GET /api/models/catalog/all | Full catalog including hidden entries | Admin (ManageModels) |
PUT /api/models/catalog/{providerType}/{modelId}/hidden | Toggle a model's hidden flag; persists to the override file | Admin (ManageModels) |
PUT /api/sessions/{sessionId}/model-override | Set or reset the per-session model override — what the Dashboard picker calls | Session owner |
Where to go next
- Supported Providers — every provider Sophon connects to, with ids and auth.
- Routing, Failover & Budgets — how the default model is chosen and how spend is tracked.
- Interactive Chat — the CLI REPL where
/providerlives.