[FEATURE] Add PermissionResolved hook event

Open 💬 1 comment Opened May 31, 2026 by wzp0514

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

When a tool requires user permission, the hook system currently fires:

  1. PreToolUse — before permission check
  2. PermissionRequest — when the dialog opens
  3. (nothing) — user clicks Allow/Deny ← gap
  4. PostToolUse / PostToolUseFailure — after tool completes/fails

Between step 2 and 4, NO hook event fires. This means tools like claude-eyes (https://github.com/wzp0514/claude-eyes)
cannot detect when the user resolves a permission dialog. The status indicator stays "waiting" (yellow) for the entire
tool execution duration, even though the user already approved.

Data evidence

From real hook logs (session 20dc3716, timestamps UTC):

03:51:39 | PreToolUse | Read ← green
03:51:44 | PermissionRequest| Read ← yellow (dialog opens)
← user clicks Allow, NO event fires
03:54:25 | PostToolUse | Read ← green (2 min 41 sec later!)

When the tool takes 2+ minutes to execute, the indicator shows "waiting for user" the entire time — misleading.

Proposed Solution

Add a new hook event PermissionResolved that fires immediately when the user clicks Allow or Deny, with an action
field:

{
"hook_event_name": "PermissionResolved",
"session_id": "...",
"tool_name": "Bash",
"tool_input": { "command": "git push", ... },
"action": "granted"
}

action values: "granted" | "denied" | "always_allow"

This would fire between the current PermissionRequest and PostToolUse/PostToolUseFailure, closing the gap.

Alternative Solutions

_No response_

Priority

Medium - Would be very helpful

Feature Category

CLI commands and flags

Use Case Example

Real-time status indicators (claude-eyes, custom panels, CI dashboards) could accurately reflect permission state:

  • Yellow → permission requested
  • Green → permission granted (immediately)
  • Red → permission denied

Additional Context

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗