two bugs. both squash user model choice silently. bug 1: applyDefaultModel() unconditional primary: model overwrite. wizard calls with setDefaultModel=true, provider returns its default (e.g. openrouter/auto), bam user primary gone. fix: existingPrimary ?? model. bug 2: applyModelFallbacksFromSelection() phantom primary injection. when no primary configured, resolvedKey (hardcoded default) written as primary via nullish coalescing fallback. fix: conditional spread — only include primary key when one actually existed. tests for both. closes #70696
3.2 KiB
summary, read_when, title
| summary | read_when | title | |
|---|---|---|---|
| CLI reference for `openclaw configure` (interactive configuration prompts) |
|
Configure |
openclaw configure
Interactive prompt to set up credentials, devices, and agent defaults.
Note: The Model section now includes a multi-select for the
agents.defaults.models allowlist (what shows up in /model and the model picker).
Provider-scoped setup choices merge their selected models into the existing
allowlist instead of replacing unrelated providers already in the config.
Re-running provider auth from configure preserves an existing
agents.defaults.model.primary; use openclaw models auth login --provider <id> --set-default
or openclaw models set <model> when you intentionally want to change the default model.
When configure starts from a provider auth choice, the default-model and
allowlist pickers prefer that provider automatically. For paired providers such
as Volcengine/BytePlus, the same preference also matches their coding-plan
variants (volcengine-plan/*, byteplus-plan/*). If the preferred-provider
filter would produce an empty list, configure falls back to the unfiltered
catalog instead of showing a blank picker.
Tip: openclaw config without a subcommand opens the same wizard. Use
openclaw config get|set|unset for non-interactive edits.
For web search, openclaw configure --section web lets you choose a provider
and configure its credentials. Some providers also show provider-specific
follow-up prompts:
- Grok can offer optional
x_searchsetup with the sameXAI_API_KEYand let you pick anx_searchmodel. - Kimi can ask for the Moonshot API region (
api.moonshot.aivsapi.moonshot.cn) and the default Kimi web-search model.
Related:
- Gateway configuration reference: Configuration
- Config CLI: Config
Options
--section <section>: repeatable section filter
Available sections:
workspacemodelwebgatewaydaemonchannelspluginsskillshealth
Notes:
- Choosing where the Gateway runs always updates
gateway.mode. You can select "Continue" without other sections if that is all you need. - Channel-oriented services (Slack/Discord/Matrix/Microsoft Teams) prompt for channel/room allowlists during setup. You can enter names or IDs; the wizard resolves names to IDs when possible.
- If you run the daemon install step, token auth requires a token, and
gateway.auth.tokenis SecretRef-managed, configure validates the SecretRef but does not persist resolved plaintext token values into supervisor service environment metadata. - If token auth requires a token and the configured token SecretRef is unresolved, configure blocks daemon install with actionable remediation guidance.
- If both
gateway.auth.tokenandgateway.auth.passwordare configured andgateway.auth.modeis unset, configure blocks daemon install until mode is set explicitly.
Examples
openclaw configure
openclaw configure --section web
openclaw configure --section model --section channels
openclaw configure --section gateway --section daemon