Statusline model data not updated after /model switch

Resolved 💬 4 comments Opened Feb 15, 2026 by jimmy-harden Closed Feb 15, 2026

Description

The statusline command receives stale model data after switching models mid-session with /model. The JSON input to the statusline script continues to report the original session model, not the newly selected one.

Steps to Reproduce

  1. Start a Claude Code session (defaults to Sonnet 4.5 in my case)
  2. Configure a custom statusline that displays model info:

``json
"statusLine": {
"type": "command",
"command": "jq -r '.model.id'"
}
``

  1. Run /model and switch to Opus
  2. Send a message to trigger a statusline refresh
  3. Observe the statusline still shows the previous model

Expected Behavior

After /model switch, the statusline JSON input should reflect the new model:

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

Actual Behavior

The statusline JSON input still contains the pre-switch model:

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

Confirmed by dumping the raw JSON stdin to a file — Claude Code is sending the stale data, not a statusline script bug.

Environment

  • Claude Code v1.0.34
  • macOS (Darwin 25.3.0)
  • Model switched from Sonnet 4.5 → Opus 4.6 via /model

View original on GitHub ↗

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