Add effort level to status line JSON
Resolved 💬 4 comments Opened Mar 19, 2026 by Nutcasey Closed Apr 24, 2026
Summary
The status line command receives a JSON payload on stdin with session metadata, but the current effort level is not included. This makes it impossible to display the active effort level in a custom status line.
Current status line JSON fields
{
"session_id": "...",
"model": { "id": "...", "display_name": "..." },
"workspace": { "current_dir": "...", "project_dir": "...", "added_dirs": [] },
"version": "...",
"output_style": { "name": "..." },
"cost": { ... },
"context_window": { ... },
"exceeds_200k_tokens": true
}
Request
Add the session-scoped effort level to the status line JSON, e.g.:
{
"effort_level": "max"
}
This should reflect the effective effort for the current session, including any /effort override, not just the persistent settings.json default.
Why
output_styleis already exposed — effort level is equally important session-level config- Users running multiple Claude Code windows with different effort levels have no way to tell them apart from the status line
- The only workaround (reading
settings.json) only shows the default, not per-session overrides from/effort
Workaround attempted
Reading effortLevel from ~/.claude/settings.json in the status line script. This works for the persistent default but not for session-scoped /effort overrides.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗