Status Line Not Refreshing on Thinking Mode Toggle

Resolved 💬 4 comments Opened Oct 10, 2025 by pialmmh Closed Feb 28, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Status Line Not Refreshing on Thinking Mode Toggle (Tab Key)

## Description
The status line does not update when toggling thinking mode with the Tab key. According to the documentation, the status line "updates every 300ms when conversation messages change,"
but Tab toggle does not trigger this refresh.

## Steps to Reproduce

  1. Configure status line in ~/.claude/settings.json:

```json
{
"statusLine": {
"type": "command",
"command": "jq -r '.model.display_name + \" | thinking: \" + (if .extended_thinking.enabled then \"on\" else \"off\" end)'"
}
}

  1. Start a conversation
  2. Press Tab to toggle thinking mode on/off
  3. Observe that status line shows old thinking state
  4. Send a message
  5. Status line now correctly shows updated thinking state

Expected Behavior

Status line should refresh immediately when Tab key toggles thinking mode, showing the updated extended_thinking.enabled state.

Actual Behavior

Status line only refreshes on message send/receive events, not on Tab toggle events. The thinking status becomes stale until the next message is sent.

Environment

  • OS: Linux (Ubuntu/Debian)
  • Claude Code CLI version: [latest as of 2025-10-10]
  • Shell: bash

Workaround

Send any message after toggling thinking mode to force status line refresh. This is not ideal for quick status checks.

Root Cause Analysis

The status line documentation states it "updates every 300ms when conversation messages change." Tab toggle does not qualify as a "conversation message change," so the 300ms polling
never triggers a refresh.

Suggested Fix

Status line should refresh on ANY state change that affects the JSON input, not just message events. This includes:

  • Tab key thinking toggle
  • Model changes via /model command
  • Any UI state changes that modify the status line JSON input

Impact

  • Minor UX issue
  • Users cannot see real-time thinking mode status
  • Forces unnecessary message sending just to check status

Related

The status line command itself works correctly - testing the jq command manually with both extended_thinking.enabled: true and false produces correct output. The issue is purely with
the refresh trigger mechanism.

---

What Should Happen?

Status Line Not Refreshing on Thinking Mode Toggle (Tab Key)

## Description
The status line does not update when toggling thinking mode with the Tab key. According to the documentation, the status line "updates every 300ms when conversation messages change,"
but Tab toggle does not trigger this refresh.

## Steps to Reproduce

  1. Configure status line in ~/.claude/settings.json:

```json
{
"statusLine": {
"type": "command",
"command": "jq -r '.model.display_name + \" | thinking: \" + (if .extended_thinking.enabled then \"on\" else \"off\" end)'"
}
}

  1. Start a conversation
  2. Press Tab to toggle thinking mode on/off
  3. Observe that status line shows old thinking state
  4. Send a message
  5. Status line now correctly shows updated thinking state

Expected Behavior

Status line should refresh immediately when Tab key toggles thinking mode, showing the updated extended_thinking.enabled state.

Actual Behavior

Status line only refreshes on message send/receive events, not on Tab toggle events. The thinking status becomes stale until the next message is sent.

Environment

  • OS: Linux (Ubuntu/Debian)
  • Claude Code CLI version: [latest as of 2025-10-10]
  • Shell: bash

Workaround

Send any message after toggling thinking mode to force status line refresh. This is not ideal for quick status checks.

Root Cause Analysis

The status line documentation states it "updates every 300ms when conversation messages change." Tab toggle does not qualify as a "conversation message change," so the 300ms polling
never triggers a refresh.

Suggested Fix

Status line should refresh on ANY state change that affects the JSON input, not just message events. This includes:

  • Tab key thinking toggle
  • Model changes via /model command
  • Any UI state changes that modify the status line JSON input

Impact

  • Minor UX issue
  • Users cannot see real-time thinking mode status
  • Forces unnecessary message sending just to check status

Related

The status line command itself works correctly - testing the jq command manually with both extended_thinking.enabled: true and false produces correct output. The issue is purely with
the refresh trigger mechanism.

---

Error Messages/Logs

Steps to Reproduce

Status Line Not Refreshing on Thinking Mode Toggle (Tab Key)

## Description
The status line does not update when toggling thinking mode with the Tab key. According to the documentation, the status line "updates every 300ms when conversation messages change,"
but Tab toggle does not trigger this refresh.

## Steps to Reproduce

  1. Configure status line in ~/.claude/settings.json:

```json
{
"statusLine": {
"type": "command",
"command": "jq -r '.model.display_name + \" | thinking: \" + (if .extended_thinking.enabled then \"on\" else \"off\" end)'"
}
}

  1. Start a conversation
  2. Press Tab to toggle thinking mode on/off
  3. Observe that status line shows old thinking state
  4. Send a message
  5. Status line now correctly shows updated thinking state

Expected Behavior

Status line should refresh immediately when Tab key toggles thinking mode, showing the updated extended_thinking.enabled state.

Actual Behavior

Status line only refreshes on message send/receive events, not on Tab toggle events. The thinking status becomes stale until the next message is sent.

Environment

  • OS: Linux (Ubuntu/Debian)
  • Claude Code CLI version: [latest as of 2025-10-10]
  • Shell: bash

Workaround

Send any message after toggling thinking mode to force status line refresh. This is not ideal for quick status checks.

Root Cause Analysis

The status line documentation states it "updates every 300ms when conversation messages change." Tab toggle does not qualify as a "conversation message change," so the 300ms polling
never triggers a refresh.

Suggested Fix

Status line should refresh on ANY state change that affects the JSON input, not just message events. This includes:

  • Tab key thinking toggle
  • Model changes via /model command
  • Any UI state changes that modify the status line JSON input

Impact

  • Minor UX issue
  • Users cannot see real-time thinking mode status
  • Forces unnecessary message sending just to check status

Related

The status line command itself works correctly - testing the jq command manually with both extended_thinking.enabled: true and false produces correct output. The issue is purely with
the refresh trigger mechanism.

---

Claude Model

None

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

latest as of 2025-10-10

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

Status Line Not Refreshing on Thinking Mode Toggle (Tab Key)

## Description
The status line does not update when toggling thinking mode with the Tab key. According to the documentation, the status line "updates every 300ms when conversation messages change,"
but Tab toggle does not trigger this refresh.

## Steps to Reproduce

  1. Configure status line in ~/.claude/settings.json:

```json
{
"statusLine": {
"type": "command",
"command": "jq -r '.model.display_name + \" | thinking: \" + (if .extended_thinking.enabled then \"on\" else \"off\" end)'"
}
}

  1. Start a conversation
  2. Press Tab to toggle thinking mode on/off
  3. Observe that status line shows old thinking state
  4. Send a message
  5. Status line now correctly shows updated thinking state

Expected Behavior

Status line should refresh immediately when Tab key toggles thinking mode, showing the updated extended_thinking.enabled state.

Actual Behavior

Status line only refreshes on message send/receive events, not on Tab toggle events. The thinking status becomes stale until the next message is sent.

Environment

  • OS: Linux (Ubuntu/Debian)
  • Claude Code CLI version: [latest as of 2025-10-10]
  • Shell: bash

Workaround

Send any message after toggling thinking mode to force status line refresh. This is not ideal for quick status checks.

Root Cause Analysis

The status line documentation states it "updates every 300ms when conversation messages change." Tab toggle does not qualify as a "conversation message change," so the 300ms polling
never triggers a refresh.

Suggested Fix

Status line should refresh on ANY state change that affects the JSON input, not just message events. This includes:

  • Tab key thinking toggle
  • Model changes via /model command
  • Any UI state changes that modify the status line JSON input

Impact

  • Minor UX issue
  • Users cannot see real-time thinking mode status
  • Forces unnecessary message sending just to check status

Related

The status line command itself works correctly - testing the jq command manually with both extended_thinking.enabled: true and false produces correct output. The issue is purely with
the refresh trigger mechanism.

---

View original on GitHub ↗

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