[Bug] Plan mode doesn't auto-switch between Sonnet 4.5 and Haiku 4.5

Status Fixed / completed
Maintainer reply ✓ Yes — km-anthropic
Activity 7 comments · opened Oct 16, 2025 · closed Oct 17, 2025
💡 Likely answer: A maintainer (km-anthropic, contributor) responded on this thread — see the highlighted reply below.

Bug Description
Plan mode doesn't auto-switch between Sonnet 4.5 and Haiku 4.5. When I set Haiku as default, entering plan mode should switch to Sonnet, then back to Haiku for execution. Instead, the model stays on Haiku the whole time. I have to manually /model sonnet and /model haiku to switch.

Environment Info

  • Platform: darwin
  • Terminal: vscode
  • Version: 2.0.20
  • Feedback ID: 088b5fed-6736-41f3-8396-ab644f0b9bdc

Errors

[{"error":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n    at JSON.parse (<anonymous>)\n    at file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:62:719\n    at Q (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:8:15093)\n    at Bn2 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:1056:20444)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-10-16T22:31:02.604Z"},{"error":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n    at JSON.parse (<anonymous>)\n    at file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:62:719\n    at Q (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:8:15093)\n    at Bn2 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:1056:20444)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-10-16T22:33:24.431Z"},{"error":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n    at JSON.parse (<anonymous>)\n    at file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:62:719\n    at Q (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:8:15093)\n    at Bn2 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:1056:20444)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-10-16T22:35:56.520Z"},{"error":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n    at JSON.parse (<anonymous>)\n    at file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:62:719\n    at Q (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:8:15093)\n    at Bn2 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:1056:20444)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-10-16T22:37:51.525Z"},{"error":"SyntaxError: Unexpected token '`', \"```json\n{\n\"... is not valid JSON\n    at JSON.parse (<anonymous>)\n    at file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:62:719\n    at Q (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:8:15093)\n    at Bn2 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:1056:20444)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-10-16T22:40:30.601Z"},{"error":"SyntaxError: Unexpected token '`', \"```json\n{\"\"... is not valid JSON\n    at JSON.parse (<anonymous>)\n    at file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:62:719\n    at Q (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:8:15093)\n    at Bn2 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:1056:20444)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-10-16T22:41:02.213Z"}]

View original on GitHub ↗

7 Comments

github-actions[bot] · 12 months ago

Found 1 possible duplicate issue:

  1. https://github.com/anthropics/claude-code/issues/6108

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

km-anthropic contributor · 12 months ago

hi, the current plan mode defaults to Sonnet on purpose (i.e. baking SonnetPlan as default given users liked OpusPlan). There's no straightforward way to bypass it, feel free to create another issue if it's really important to do so and please tag me!

yslinear · 12 months ago

@km-anthropic How to turn on SonnetPlan mode?

ohcedar · 12 months ago
hi, the current plan mode defaults to Sonnet on purpose (i.e. baking SonnetPlan as default given users liked OpusPlan). There's no straightforward way to bypass it, feel free to create another issue if it's really important to do so and please tag me!

@km-anthropic
I'm not sure you understood OP. I'm having same issue as him. What happens:

Select a non-plan mode
choose Haiku 4.5
select plan mode
Expectation: auto switch to sonnet 4.5
Reality: still Haiku 4.5

km-anthropic contributor · 11 months ago

@yslinear @ohcedar SonnetPlan should be default when you use the Haiku model. In plan mode it should sample Sonnet. In your test case when you're in plan mode, could you please select Haiku, send a simple message like "hi" and click ctrl+o? That'll show the exact model sampled

ohcedar · 11 months ago

Working as expected. In my humble opinion it would be more clear if we use the old opus pattern where there was a third option for “code with sonnet plan with opus“ a similar pattern would be welcome here.

github-actions[bot] · 11 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.