[Feature Request] Expose effort and output_style in statusLine JSON input

Resolved 💬 4 comments Opened Apr 11, 2026 by lukasedw Closed Apr 24, 2026

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:

  1. 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.

  1. 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?

  1. 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.

View original on GitHub ↗

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