Expose thinking_budget / reasoning_effort in statusline JSON input

Status Fixed / completed
Maintainer reply None cached
Activity 2 comments · opened Apr 4, 2026 · 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 ↗