Choosing models
Published 02/11/2026
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>]:
[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 effort | claude --effort <value> |
| Kit default | pilot 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 effort | codex -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 default | gpt-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 effort | opencode --variant <value> |
| Kit default | openrouter/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:
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:
ade loop c12 --model builder=claude:haiku --effort builder=max
Look any key up with ade config WORD.