Expose activePermissionMode in statusline stdin JSON payload

Resolved 💬 3 comments Opened Apr 10, 2026 by bverenz Closed Apr 14, 2026

Is your feature request related to a problem?

The statusline stdin JSON payload includes model, rate_limits, context_window, cost, output_style, and version — but not the current permission mode.

This means no statusline tool can show whether the user is in default, acceptEdits, plan, or bypassPermissions mode. I surveyed 8 popular statusline projects on GitHub — none of them can display the permission mode because it's simply not exposed.

The transcript JSONL logs an initial permission-mode entry at session start, but Shift+Tab mode changes are not appended to the transcript, so reading the transcript only gives the startup mode.

Describe the solution you'd like

Add activePermissionMode (or permission_mode) to the JSON object piped via stdin to statusLine.command:

{
  "session_id": "...",
  "model": { "id": "claude-sonnet-4-6", "display_name": "Sonnet 4.6" },
  "permission_mode": "acceptEdits",
  ...
}

This field should reflect the current runtime mode, updating when the user presses Shift+Tab — not just the startup mode.

Ideally, also append a new {"type": "permission-mode", "permissionMode": "..."} line to the session transcript JSONL on every Shift+Tab change (currently only the initial mode is logged).

Prior issues

  • #4719 — requested for PreToolUse hooks (closed by inactivity bot, not implemented)
  • #6227 — requested for hooks + statusline (closed as duplicate of #4719, also by inactivity bot)
  • #16494 — also closed as duplicate

This has been requested multiple times and keeps getting auto-closed. The feature gap is real — every statusline author would benefit from this.

Additional context

  • Claude Code version: 2.1.100
  • Current stdin keys: session_id, transcript_path, cwd, model, workspace, version, output_style, cost, context_window, exceeds_200k_tokens, rate_limits
  • Also useful: expose permission_mode in hook payloads (PreToolUse, PostToolUse, Notification, etc.)

View original on GitHub ↗

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