Feature Request: Expose effort level in StatusLine JSON

Resolved 💬 3 comments Opened Apr 8, 2026 by zime78 Closed Apr 11, 2026

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:

  1. The user-set effort level (low/medium/high/max/auto) from outside the process
  2. 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

  1. CLAUDE_CODE_EFFORT_LEVEL env var in hooks — Not available in hook or statusline subprocess contexts
  2. settings.json effortLevel field — Only reflects persistent settings, not session-level /effort changes
  3. Transcript JSONL — Does not record effort/budget_tokens per request
  4. ConfigChange hook/effort is 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

View original on GitHub ↗

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