Expose thinking_budget / reasoning_effort in statusline JSON input

Resolved 💬 2 comments Opened Apr 4, 2026 by iguinea Closed Apr 4, 2026

Feature Request

Description

The statusline JSON input (received via stdin by custom statusline scripts) currently exposes many useful session fields: model, context_window, cost, rate_limits, agent, worktree, vim mode, output_style, etc.

However, there is no field exposing the current thinking budget / reasoning effort level (low, medium, high) that can be set via /think or configured in settings.

Use Case

When building custom statuslines, it's very useful to show the thinking level alongside the model name, since it directly affects:

  • Response quality: higher thinking = deeper reasoning
  • Cost: extended thinking consumes more tokens
  • Speed: higher thinking levels take longer

Example desired output:

🧠 Opus [high] │ 🧮 [████████░░░░] 42.5% │ 💰$1.23
🧠 Sonnet [low] │ 🧮 [██░░░░░░░░░░] 12.0% │ 💰$0.15

Proposed Field

Add a field to the statusline JSON input:

{
  "thinking": {
    "budget": "high",
    "tokens": 16384
  }
}

Or at minimum:

{
  "thinking_budget": "high"
}

Current Workaround

There is no reliable workaround. Reading from settings files doesn't reflect runtime changes made via /think.

Environment

  • Claude Code CLI
  • Custom statusline scripts (Node.js / Bash)

View original on GitHub ↗

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