Status line JSON reports wrong model after switching to Opus 4.6

Resolved 💬 2 comments Opened Feb 6, 2026 by nir-ayalon-craft Closed Feb 6, 2026

Bug description

When using Claude Code with claude-opus-4-6, the status line JSON passed to custom status line scripts via stdin reports the previous/default model instead of the active model.

Specifically, model.id shows claude-sonnet-4-5-20250929 and model.display_name shows Sonnet 4.5 even though the session is running Opus 4.6.

Switching to Haiku correctly updates the model field. The issue appears specific to Opus 4.6.

Steps to reproduce

  1. Start Claude Code (default model: Sonnet 4.5)
  2. Switch to Opus 4.6 via /model or --model claude-opus-4-6
  3. Inspect the JSON passed to the status line script via stdin

Actual behavior

{
  "model": {
    "id": "claude-sonnet-4-5-20250929",
    "display_name": "Sonnet 4.5"
  }
}

The model field still shows Sonnet 4.5 despite Opus 4.6 being the active model (confirmed by the system prompt containing "You are powered by the model named Opus 4.6").

Expected behavior

{
  "model": {
    "id": "claude-opus-4-6",
    "display_name": "Opus 4.6"
  }
}

Environment

  • Claude Code version: 2.1.32
  • OS: macOS (Darwin 25.2.0)
  • Model: claude-opus-4-6

Notes

  • Switching to Haiku correctly updates the model in the status line JSON
  • This worked correctly with Opus 4.5 previously
  • The status line script itself is not the issue — it faithfully displays model.display_name from the JSON

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗