Feature Request: Expose effort level in StatusLine JSON
Feature Request
Is your feature request related to a problem?
When the effort level is set to auto, Claude Code dynamically determines the thinking budget (budget_tokens) per request based on complexity. However, there is no way to observe:
- The user-set effort level (low/medium/high/max/auto) from outside the process
- The actual resolved effort level when in auto mode
The StatusLine JSON (stdin to the statusline command) includes model.id, context_window, cost, rate_limits, etc., but does not include the current effort level.
Describe the solution you'd like
Add an effort field to the StatusLine JSON:
{
"effort": {
"setting": "auto",
"resolved": "high",
"budget_tokens": 10000
},
"model": { ... },
...
}
setting: The user's configured effort level (low/medium/high/max/auto)resolved: The actual effort level chosen for the current/last request (when in auto mode)budget_tokens: The actual thinking budget used
This would allow custom statusline scripts and tmux integrations to display the current effort level in real-time.
Describe alternatives you've considered
CLAUDE_CODE_EFFORT_LEVELenv var in hooks — Not available in hook or statusline subprocess contextssettings.jsoneffortLevel field — Only reflects persistent settings, not session-level/effortchanges- Transcript JSONL — Does not record effort/budget_tokens per request
ConfigChangehook —/effortis session-only and doesn't trigger this hook
None of these alternatives provide the actual effort level.
Additional context
- Claude Code version: 2.1.94
- Platform: macOS (Darwin 25.4.0)
- Use case: tmux status line showing current model + effort level for developer awareness
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗