Feature: expose effortLevel in statusline JSON input

Resolved 💬 4 comments Opened Mar 23, 2026 by zhongnansu Closed Apr 22, 2026

Summary

The statusline command receives a JSON payload via stdin with fields like model, context_window, cost, rate_limits, vim, agent, and worktree. However, the current reasoning effort level (e.g., "low", "medium", "high", or the numeric value) is not included in this JSON.

Motivation

The effort level can change dynamically during a session (via /effortLevel or settings), and it meaningfully affects model behavior and cost. Users who customize their statusline would benefit from being able to display the current effort level alongside other session metadata like model name and context usage.

Currently, the only workaround is reading ~/.claude/settings.json, but that only reflects the default — not the runtime value if it was changed mid-session.

Proposed Change

Add an effort_level (or similar) field to the statusline JSON payload, e.g.:

{
  "effort_level": "high"
}

or with the numeric value:

{
  "effort_level": 99
}

This would allow statusline scripts to display the current effort level accurately.

View original on GitHub ↗

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