Original Reddit post

This is MAC SPECIFIC advice. I do not know if Windows has an equivalent. I don’t know how many of you need to know this but the problem with 4.6 eating all the tokens ever is pretty solvable with a bit of routing in ./username/.zshrc My shell defaults look like this: export PATH=“$HOME/.local/bin:$PATH” # Task Master aliases added on 2/5/2026 alias tm=‘task-master’ alias taskmaster=‘task-master’ alias hamster=‘task-master’ alias ham=‘task-master’ # Claude Code deferred MCP loading (added by Taskmaster) export ENABLE_EXPERIMENTAL_MCP_CLI=‘true’ # Claude Code model routing: opusplan = Opus 4.6 (plan) + Opus 4.5 (execute) export ANTHROPIC_MODEL=‘opusplan’ export ANTHROPIC_DEFAULT_OPUS_MODEL=‘claude-opus-4-6’ export ANTHROPIC_DEFAULT_SONNET_MODEL=‘claude-opus-4-5-20251101’ Those last three exports are what matters here. To state the obvious I’m declaring that the default opus model for all calls should be Opus 4.6 and the default Sonnet model should be Opus 4.5. No guarantees on how this will work if you specify a different Opus using /model but in OpusPlan it dials right in. You get the benefit of advanced logic for planning and your old token sipping friend for execution. You’ll know it’s working because you won’t see “You’re absolutely right” in execution mode 😏 and you’ll know if it’s broken by the same passphrase. SOURCES Model configuration (aliases, env vars, opusplan): https://code.claude.com/docs/en/model-config Settings file reference: https://code.claude.com/docs/en/settings Known bug — model setting not persisting: https://github.com/anthropics/claude-code/issues/13242 FOLLOW UP ON SUBAGENTS/SKILLS Whether or not this overrides your subagent routing depends entirely on how you configure the subagent. If a subagent’s frontmatter says model: sonnet, that alias still resolves through your ANTHROPIC_DEFAULT_SONNET_MODEL override so it would become Opus 4.5 as expected. If you set CLAUDE_CODE_SUBAGENT_MODEL as an env var, that takes a full model name, so it bypasses the alias system entirely. And if a subagent’s frontmatter specifies a full model name like model: claude-haiku-4-5-20251001, that’s a direct reference with no alias resolution. Ergo, no override. So practically speaking if you want a subagent to run on Haiku for cost reasons, use the full model name in its frontmatter. The sonnet-to-opus remap won’t touch it. But if you leave a subagent on model: sonnet or model: inherit, your routing kicks in and it’ll run on Opus 4.5. The same goes for specifying TASK agents. Use the full model name to avoid the override. submitted by /u/isarmstrong

Originally posted by u/isarmstrong on r/ClaudeCode