statusLine: expose live permission mode (Shift+Tab toggle) in stdin payload
Feature request
The statusLine hook's stdin JSON payload currently does not include the live permission mode that's toggled at runtime via Shift+Tab (auto-accept / manual / plan / bypass-permissions).
I confirmed this empirically on v2.1.217: captured 45 statusLine invocations across two sessions to a debug file and inspected the JSON keys. The payload includes session_id, transcript_path, cwd, prompt_id, effort, session_name, model, workspace, version, output_style, cost, context_window, exceeds_200k_tokens, fast_mode, thinking, and rate_limits — but nothing reflecting the current permission/approval mode.
The only related value available anywhere is permissions.defaultMode in ~/.claude/settings.json, which is just the startup default and does not update when the mode is toggled mid-session.
Request
Add a field (e.g. permission_mode or mode.current) to the statusLine stdin payload reflecting the live, current permission mode (auto-accept, manual, plan, bypass-permissions, etc.), updated in real time as the user toggles it with Shift+Tab.
Use case
Custom statusLine scripts want to render a live badge showing whether the session is currently in auto-accept or manual-approval mode, since this materially affects how actions are being taken. Right now this is impossible to build accurately — only a stale "configured default" can be shown.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗