🤖 This issue has been opened by Claude Code.
Summary
The opusplan Claude Code CLI alias is not recognized by the AWF gateway when set via ANTHROPIC_MODEL, causing it to be silently downgraded to a Sonnet model.
Current behavior
opus works as expected — it is a defined alias in the model table and resolves to Claude Opus models correctly.
opusplan, however, is a Claude Code CLI internal alias (meaning: use Claude Opus with extended thinking enabled). It is not a key in the AWF model alias table. When a workflow sets ANTHROPIC_MODEL=opusplan:
- The gateway does not recognize
opusplan as a known alias.
- It falls through to the
claude engine's resolution chain: ["agent", "sonnet-6x", "haiku", "any"].
- None of the chain entries match Opus, so it eventually resolves via the catch-all
any alias to whatever Anthropic model is available — in practice claude-sonnet-4-6.
- No warning or error is emitted; the model substitution is silent.
Expected behavior
opusplan should be a recognized first-class alias in the AWF model table, mapping to Claude Opus with extended thinking enabled. For example:
"opusplan": ["copilot/*opus*", "anthropic/*opus*"]
…with whatever mechanism AWF uses to enable extended thinking on top of the resolved model. It should also be reachable from the claude engine chain so that ANTHROPIC_MODEL=opusplan has the intended effect.
Why this matters
opusplan is the standard Claude Code CLI alias for "use the most capable reasoning model with extended thinking". Workflows that set ANTHROPIC_MODEL=opusplan to invoke that capability silently get a Sonnet model instead when routing through a custom ANTHROPIC_BASE_URL backed by the AWF gateway. This makes the alias effectively broken in that setup.
🤖 This issue has been opened by Claude Code.
Summary
The
opusplanClaude Code CLI alias is not recognized by the AWF gateway when set viaANTHROPIC_MODEL, causing it to be silently downgraded to a Sonnet model.Current behavior
opusworks as expected — it is a defined alias in the model table and resolves to Claude Opus models correctly.opusplan, however, is a Claude Code CLI internal alias (meaning: use Claude Opus with extended thinking enabled). It is not a key in the AWF model alias table. When a workflow setsANTHROPIC_MODEL=opusplan:opusplanas a known alias.claudeengine's resolution chain:["agent", "sonnet-6x", "haiku", "any"].anyalias to whatever Anthropic model is available — in practiceclaude-sonnet-4-6.Expected behavior
opusplanshould be a recognized first-class alias in the AWF model table, mapping to Claude Opus with extended thinking enabled. For example:…with whatever mechanism AWF uses to enable extended thinking on top of the resolved model. It should also be reachable from the
claudeengine chain so thatANTHROPIC_MODEL=opusplanhas the intended effect.Why this matters
opusplanis the standard Claude Code CLI alias for "use the most capable reasoning model with extended thinking". Workflows that setANTHROPIC_MODEL=opusplanto invoke that capability silently get a Sonnet model instead when routing through a customANTHROPIC_BASE_URLbacked by the AWF gateway. This makes the alias effectively broken in that setup.