Feature request: expose effortValue in statusLine stdin JSON
Resolved 💬 2 comments Opened Apr 10, 2026 by umiyosh Closed Apr 10, 2026
Summary
The statusLine script receives session metadata via stdin JSON, but the current effort level (effortValue) is not included. This makes it impossible for custom status lines to display the active effort setting.
Current behavior
- The statusLine stdin JSON includes:
session_id,model,workspace,version,cost,context_window,rate_limits, etc. effortValueis held only in the in-memory app state and is not passed to the statusLine script./effort low|medium|highwrites tosettings.jsonviaeffortLevel, but/effort maxdoes not persist (because"max"is not a standard API effort value and the validation function returnsundefined).CLAUDE_CODE_EFFORT_LEVELis set at process startup and never updated during the session.
As a result, there is no external mechanism to read the session-level effort value in real time from a statusLine script.
Expected behavior
Include the current effort level in the statusLine stdin JSON, e.g.:
{
"session_id": "...",
"model": "claude-opus-4-6",
"effort": "max",
...
}
This would allow status line scripts to display the active effort setting and react to /effort changes dynamically.
Additional context
- Tested on Claude Code v2.1.98 (macOS arm64)
- Investigated the compiled binary (
QV5function) and confirmedeffortValueis not serialized into the statusLine payload - A secondary issue:
/effort maxshould also persist tosettings.jsonfor consistency with other effort levels
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗