{"version":"2.1.246","anchor":"server-driven-model-substitution-off-unless-configured","canonical_anchor":"server-driven-model-substitution-off-unless-configured","heading":"Server-driven model substitution, off unless configured","tier":"use","area":"Models","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.246\/e\/server-driven-model-substitution-off-unless-configured","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.246","markdown":"### Server-driven model substitution, off unless configured\n\nYou can swap the model a request uses by setting an environment variable, or the server can do it.\n\n**What**\n\nA new step can swap the model a request asks for before it is sent. The replacement comes from the environment variable `CLAUDE_CODE_BREEZY_HORIZON`, or failing that from a server-supplied config block that maps each source model to a replacement. With neither set, nothing changes, so this build only substitutes models if you set the variable or the server tells it to.\n\n**Details**\n\n- A model id it does not recognise is logged and ignored rather than applied.\n- A real swap emits telemetry `tengu_breezy_horizon` recording the original model, the replacement, and whether the source was the environment variable or server config.\n\n**Evidence**\n\n`[breezy_horizon] ${s}: ignoring unrecognized model id ${String(o)} for ${n}`\n\n- Area: Models\n- Names: `CLAUDE_CODE_BREEZY_HORIZON`\n- Tier: Use it now\n- Useful: 4\/5\n- Signal: 4\/5"}