Expose thinking_budget / reasoning_effort in statusline JSON input
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)
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗