Feature Request: Include thinking/extended thinking state in statusline JSON

Resolved 💬 2 comments Opened Dec 10, 2025 by trobanga Closed Dec 11, 2025

Feature Request

Is your feature request related to a problem?

When creating custom statuslines, there's no way to display whether thinking mode (extended thinking) is currently enabled or disabled. The JSON data passed to statusline commands doesn't include any field indicating the current thinking state.

Describe the solution you'd like

Add a field to the statusline JSON input that indicates whether thinking/extended thinking is currently enabled. For example:

{
  "session_id": "...",
  "model": {...},
  "thinking": {
    "enabled": true,
    "budget_tokens": 10000
  },
  ...
}

Or simply:

{
  "thinking_enabled": true,
  ...
}

Describe alternatives you've considered

Currently, the workaround is to read from ~/.claude/settings.json and check alwaysThinkingEnabled. However, this only reflects the default/persisted setting, not the runtime state when a user toggles thinking with /think during a session.

Additional context

Current JSON structure passed to statusline (from debug logs):

{
  "session_id": "...",
  "transcript_path": "...",
  "cwd": "...",
  "model": {"id": "claude-opus-4-5-20251101", "display_name": "Opus 4.5"},
  "workspace": {"current_dir": "...", "project_dir": "..."},
  "version": "2.0.64",
  "output_style": {"name": "default"},
  "cost": {
    "total_cost_usd": 4.56,
    "total_duration_ms": 9567817,
    "total_api_duration_ms": 861727,
    "total_lines_added": 477,
    "total_lines_removed": 30
  },
  "exceeds_200k_tokens": false
}

This would allow users to display a visual indicator (e.g., 🧠) in their statusline that accurately reflects whether thinking mode is active, improving visibility into the current session configuration.

View original on GitHub ↗

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