Skip to content

Models

Model slots, effort, and the decision model selection.

Cetas identifies a model slot with a provider/model id, for example deepseek/deepseek-flash or moonshot/kimi-k3.

Two slots, never interchangeable

The conversation model and the decision model cannot be swapped, and the two pickers enforce it:

/model      # conversation slots; rejects a decision slot
/decision   # decision slots, with the active one marked; rejects a chat slot

/decision with no argument lists what the configured providers offer. A build that ships no decision backend simply has nothing to offer here.

The decision model matters for one setting in particular: permission auto routes every non-read tool call through a semantic gate, and that gate needs a decision model to judge — see Permissions.

Where the selection lives, and who changes it

The active selection lives in settings — fields in the Settings reference. Three ways to change it:

Surface Behavior
Terminal Successful /model, /effort, /decision changes are persisted
Editor (ACP) Successful model / effort config-option changes are persisted
Automation (cetas-run) --model and --effort are run-scoped overrides and are not persisted

If provider configuration changes make the previous selection unavailable, Cetas falls back to an available default instead of refusing to compose.

Model lists

Discovered model catalogs are cached in <CETAS_HOME>/.cetas/model_lists.json, one record array per provider. Pickers keep working from a warm cache, and a provider’s cached list is refreshed when it is re-discovered.

Custom models

A provider that is not one of the built-ins is an OpenAI-compatible endpoint you declare yourself, and model capabilities (context window, image input, efforts) are declared in the same place. See Custom and self-hosted models.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close