Docs / How it works / Choosing modelsVIEW .MD

Choosing models

Each role (pilot, builder, reviewer) in ade.toml has one engine and, per engine, a model and an optional reasoning effort. Models are family aliases, so each engine resolves its latest release. Change a role's model or effort under [roles.<role>]:

TOML
[roles.builder]
provider = "claude"
models = { claude = "sonnet", codex = "gpt-6.1-sol", opencode = "openrouter/deepseek/deepseek-v4.1-flash" }
effort = { claude = "high", codex = "high", opencode = "high" }

Effort is off until you set it. An unset effort comes from the engine: codex takes [providers.codex] default_effort; claude and opencode fall to their own user config, so set effort per role to keep lanes independent of your setup. ade config --roles shows every engine's model and effort for each role, the active engine marked, and the codex compaction source.

claude#

Model key[roles.<role>].models.claude
Effort key[roles.<role>].effort.claude: low, medium, high, xhigh or max
How ADE passes effortclaude --effort <value>
Kit defaultpilot opus; builder and reviewer sonnet; effort unset

codex#

Model key[roles.<role>].models.codex
Effort key[roles.<role>].effort.codex: low, medium, high or xhigh
How ADE passes effortcodex -c model_reasoning_effort=<value>
Compaction keys[providers.codex] auto_compact_token_limit and context_window, passed as codex -c model_auto_compact_token_limit / model_context_window; unset means the lane inherits ~/.codex/config.toml
Kit defaultgpt-6.1-sol for every role; effort and compaction unset

opencode#

Model key[roles.<role>].models.opencode, named provider/model (openrouter/..., ollama/..., anthropic/...)
Effort key[roles.<role>].effort.opencode: the model's own variant names
How ADE passes effortopencode --variant <value>
Kit defaultopenrouter/deepseek/deepseek-v4.1-flash for every role; effort unset

Run one card on another engine#

Set ADE_PROVIDER for the one command, and ade.toml stays as it is:

SH
ADE_PROVIDER=codex ade conduct

ADE_PROVIDER forces every role onto that engine, using each role's model from the table above. fake is a built-in engine that is deterministic and spends no usage, handy for a rehearsal.

Change a model or effort for one run#

ade loop and ade conduct take --model ROLE=ENGINE:MODEL and --effort ROLE=LEVEL, each repeatable. They hold for that run only (lanes included); ade.toml is not edited, and the next run without the flags uses it:

SH
ade loop c12 --model builder=claude:haiku --effort builder=max

Look any key up with ade config WORD.