[FEATURE] Expose Thinking Mode and Reasoning Effort in Status Line JSON

Resolved 💬 3 comments Opened Dec 5, 2025 by rosepark4861 Closed Dec 9, 2025

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Summary

Add thinking_mode and reasoning_effort fields to the JSON data provided to custom status line scripts, allowing users to display the current reasoning configuration in their terminal status line.

Motivation

Users who customize their Claude Code status line (via statusline-command setting) currently have no way to see:

  • Whether extended thinking is enabled or disabled
  • What reasoning effort level is active (low, medium, high)

This information is valuable because:

  1. Awareness - Users may toggle thinking mode (Tab key) and forget the current state
  2. Cost visibility - Higher reasoning effort consumes more tokens; seeing this helps users make informed decisions
  3. Debugging - When responses seem brief or overly detailed, knowing the reasoning state helps diagnose why
  4. Workflow optimization - Power users switch between modes for different tasks and benefit from visual confirmation

Current Behavior

The status line JSON includes model information but not reasoning configuration:

{
"model": {
"id": "claude-opus-4-5-20251101",
"display_name": "Claude Opus 4.5"
}
}

Environment

  • Claude Code CLI
  • Status line customization via statusline-command setting

Proposed Solution

Proposed Enhancement

Add reasoning state fields to the JSON:

{
"model": {
"id": "claude-opus-4-5-20251101",
"display_name": "Claude Opus 4.5",
"thinking_enabled": true,
"reasoning_effort": "medium"
}
}

Field definitions:
| Field | Type | Values | Description |
|------------------|---------|---------------------------|-----------------------------------------------|
| thinking_enabled | boolean | true / false | Whether extended thinking is currently active |
| reasoning_effort | string | "low" / "medium" / "high" | Current reasoning effort level |

Example Use Case

With these fields, a status line script could display:

✨ Opus 4.5 🧠 thinking (high) # Thinking enabled, high effort
✨ Opus 4.5 💤 no-think # Thinking disabled
✨ Sonnet 4 🧠 thinking (low) # Thinking enabled, low effort

Implementation Notes

  • These values are already tracked internally (Tab toggles thinking, trigger words set effort)
  • Simply exposing them in the existing status line JSON payload
  • No breaking changes to existing scripts (new fields are additive)
  • Minimal performance impact (reading existing state)

Alternative Solutions

_No response_

Priority

Medium - Would be very helpful

Feature Category

CLI commands and flags

Use Case Example

_No response_

Additional Context

_No response_

View original on GitHub ↗

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