Starting model and effort¶
ExOShell can pick the model and reasoning effort an agent starts with. Model IDs and supported effort levels depend on the agent, model, and provider; ExOShell does not maintain a model catalog or translate effort levels into a universal scale.
Set a starting model¶
Set optional model and effort strings in each [agents.codex],
[agents.claude], or [agents.opencode] section. Only the selected agent's
values apply. Omitting either setting preserves that agent's native defaults,
including defaults supplied by your image.
[agents.codex]
# model = "example-model"
# effort = "high" # Codex: model_reasoning_effort
[agents.claude]
# model = "sonnet"
# effort = "high" # Claude Code: --effort
[agents.opencode]
# model = "openrouter/example-model"
# effort = "high" # OpenCode: model variant (provider/model#variant); requires model
Override for one launch¶
Override a configured value for one launch with --model VALUE or
--effort VALUE before the launcher separator. --no-model and --no-effort
ignore the corresponding ExOShell setting for that launch; they do not clear
the agent's own image, project, or user configuration. Omitting a launcher
option uses the configured value. For example:
./run-exoshell-agent.sh --effort low /path/to/project
./run-exoshell-agent.sh --no-model --no-effort /path/to/project
Explicit native options forwarded after -- take precedence over ExOShell's
starting values. Codex accepts repeatable -c/--config overrides for
model and model_reasoning_effort; native -m/--model also overrides the
model. Claude accepts native --model and --effort. OpenCode accepts native
-m/--model for run and mini (the full-screen TUI accepts neither; use
ExOShell model/effort settings for it). Values after a native literal --
remain positional arguments. Verbose output reports ExOShell's selected
values, not native overrides or the agent's eventual model selection.
Per-agent notes¶
Codex, Claude, and OpenCode run selections use native startup options. Users
can change models and effort during the session.
OpenCode effort requires an explicit model from the config or launcher option
(native --model cannot combine with a configured effort for run; express
the variant natively as --model provider/model#variant). Interactive launches
merge the model (with #variant when effort is set) into the built-in build
and plan agents through disposable OPENCODE_CONFIG_CONTENT, preserving
unrelated configuration and MCP settings. Custom OpenCode agents keep their own
model configuration. opencode run receives --model after the subcommand
instead.
Rebuild the base image and dependent images before using interactive OpenCode model/effort: its startup helper consumes the launcher's model/variant pair. See ADR-0036 and ADR-0040.