[Feature Request] Expose effort and output_style in statusLine JSON input
Bug Description
Subject: Expose current effort level in statusLine JSON input
The ask: Add an effort (or reasoning_effort) field to the JSON object passed to statusLine commands on stdin. Same goes for output_style.
Why this is a real gap, not a nice-to-have:
- Effort is an officially supported first-class feature. You ship effortLevel in settings.json and a /effort slash command with four levels (low/medium/high/max). You've invested in making this configurable — but the one surface users look at constantly to understand
their session has no idea it exists.
- The status line exposes every other piece of session state. vim.mode, agent.name, worktree.branch, context %, cost, rate limits — all of it. The rule seems to be "if it changes during a session, surface it." Effort changes during a session via /effort. Why is it the
exception?
- The settings.json fallback is actively misleading. I tried to work around this by having my statusline script read effortLevel from ~/.claude/settings.json. But /effort max is session-only and never persisted, so my status line now confidently displays "high" while
the session is actually running on "max". That's worse than no display at all — it's a lie. And there is no file, env var, or IPC surface a hook can read to get the truth. I looked. …
Note: Content was truncated.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗