Add effort level to statusline JSON input
Summary
The custom statusline command (statusLine setting) receives a JSON object via stdin with fields like model, workspace, context_window, cost, rate_limits, etc. — but does not include the current effort level.
Problem
There's no way to display the per-instance effort level in a custom statusline because:
- The effort level is not in the statusline JSON input
settings.jsononly has the global default — not the per-session override- The
--effortCLI argument and/effortcommand both set session-scoped values that are invisible to the statusline script
Reading effortLevel from settings.json is a partial workaround, but breaks when:
- Multiple Claude Code instances run with different effort levels
- Effort is set via
--effort <level>CLI argument - Effort is changed mid-session via
/effort <level>
Proposed Solution
Add an effort_level (or effort) field to the JSON object passed to the statusline command:
{
"effort_level": "max",
...existing fields...
}
This should reflect the current session's effective effort level, accounting for CLI args and /effort overrides.
Context
The statusline already exposes output_style.name — effort level is a similar per-session setting that users would want to display.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗