Skip to main content

Models CLI

See /concepts/model-failover for auth profile rotation, cooldowns, and how that interacts with fallbacks. Quick provider overview + examples: /concepts/model-providers.

How model selection works

Clawdbot selects models in this order:
  1. Primary model (agents.defaults.model.primary or agents.defaults.model).
  2. Fallbacks in agents.defaults.model.fallbacks (in order).
  3. Provider auth failover happens inside a provider before moving to the next model.
Related:
  • agents.defaults.models is the allowlist/catalog of models Clawdbot can use (plus aliases).
  • agents.defaults.imageModel is used only when the primary model can’t accept images.

Quick model picks (anecdotal)

  • GLM: a bit better for coding/tool calling.
  • MiniMax: better for writing and vibes.
If you don’t want to hand-edit config, run the onboarding wizard:
clawdbot onboard
It can set up model + auth for common providers, including OpenAI Code (Codex) subscription (OAuth) and Anthropic (API key recommended; claude setup-token also supported).

Config keys (overview)

  • agents.defaults.model.primary and agents.defaults.model.fallbacks
  • agents.defaults.imageModel.primary and agents.defaults.imageModel.fallbacks
  • agents.defaults.models (allowlist + aliases + provider params)
  • models.providers (custom providers written into models.json)
Model refs are normalized to lowercase. Provider aliases like z.ai/* normalize to zai/*. Provider configuration examples (including OpenCode Zen) live in /gateway/configuration.

“Model is not allowed” (and why replies stop)

If agents.defaults.models is set, it becomes the allowlist for /model and for session overrides. When a user selects a model that isn’t in that allowlist, Clawdbot returns:
Model "provider/model" is not allowed. Use /model to list available models.
This happens before a normal reply is generated, so the message can feel like it “didn’t respond.” The fix is to either:
  • Add the model to agents.defaults.models, or
  • Clear the allowlist (remove agents.defaults.models), or
  • Pick a model from /model list.
Example allowlist config:
{
  agent: {
    model: { primary: "anthropic/claude-sonnet-4-5" },
    models: {
      "anthropic/claude-sonnet-4-5": { alias: "Sonnet" },
      "anthropic/claude-opus-4-5": { alias: "Opus" }
    }
  }
}

CLI commands

clawdbot models list
clawdbot models status
clawdbot models set <provider/model>
clawdbot models set-image <provider/model>

clawdbot models aliases list
clawdbot models aliases add <alias> <provider/model>
clawdbot models aliases remove <alias>

clawdbot models fallbacks list
clawdbot models fallbacks add <provider/model>
clawdbot models fallbacks remove <provider/model>
clawdbot models fallbacks clear

clawdbot models image-fallbacks list
clawdbot models image-fallbacks add <provider/model>
clawdbot models image-fallbacks remove <provider/model>
clawdbot models image-fallbacks clear
clawdbot models (no subcommand) is a shortcut for models status.

models list

Shows configured models by default. Useful flags:
  • --all: full catalog
  • --local: local providers only
  • --provider <name>: filter by provider
  • --plain: one model per line
  • --json: machine‑readable output

models status

Shows the resolved primary model, fallbacks, image model, and an auth overview of configured providers. It also surfaces OAuth expiry status for profiles found in the auth store (warns within 24h by default). --plain prints only the resolved primary model. OAuth status is always shown (and included in --json output). If a configured provider has no credentials, models status prints a Missing auth section. JSON includes auth.oauth (warn window + profiles) and auth.providers (effective auth per provider). Use --check for automation (exit 1 when missing/expired, 2 when expiring). Preferred Anthropic auth is the Claude CLI setup-token (run on the gateway host):
claude setup-token
clawdbot models status

Scanning (OpenRouter free models)

clawdbot models scan inspects OpenRouter’s free model catalog and can optionally probe models for tool and image support. Key flags:
  • --no-probe: skip live probes (metadata only)
  • --min-params <b>: minimum parameter size (billions)
  • --max-age-days <days>: skip older models
  • --provider <name>: provider prefix filter
  • --max-candidates <n>: fallback list size
  • --set-default: set agents.defaults.model.primary to the first selection
  • --set-image: set agents.defaults.imageModel.primary to the first image selection
Probing requires an OpenRouter API key (from auth profiles or OPENROUTER_API_KEY). Without a key, use --no-probe to list candidates only. Scan results are ranked by:
  1. Image support
  2. Tool latency
  3. Context size
  4. Parameter count
Input
  • OpenRouter /models list (filter :free)
  • Requires OpenRouter API key from auth profiles or OPENROUTER_API_KEY (see /environment)
  • Optional filters: --max-age-days, --min-params, --provider, --max-candidates
  • Probe controls: --timeout, --concurrency
When run in a TTY, you can select fallbacks interactively. In non‑interactive mode, pass --yes to accept defaults.

Models registry (models.json)

Custom providers in models.providers are written into models.json under the agent directory (default ~/.clawdbot/agents/<agentId>/models.json). This file is merged by default unless models.mode is set to replace.