[DOCS] Missing PermissionRequest hook details in Hooks Guide and Input Reference schema
Documentation Type
Missing documentation (feature not documented)
Documentation Location
docs/en/hooks-guide.md docs/en/hooks.md
Section/Topic
- hooks-guide.md: "Hook Events Overview" - hooks.md: "Hook Input" section
Current Documentation
In docs/en/hooks-guide.md under Hook Events Overview, the list currently reads:
PreToolUse: Runs before tool calls (can block them) PostToolUse: Runs after tool calls complete UserPromptSubmit: Runs when the user submits a prompt... Notification: Runs when Claude Code sends notifications Stop: Runs when Claude Code finishes responding SubagentStop: Runs when subagent tasks complete PreCompact: Runs before Claude Code is about to run a compact operation SessionStart: Runs when Claude Code starts a new session... * SessionEnd: Runs when Claude Code session ends
In docs/en/hooks.md, while PermissionRequest is mentioned in the Configuration and Output sections, it is completely missing from the Hook Input section, which lists inputs for all other hooks (PreToolUse Input, PostToolUse Input, Notification Input, etc.).
What's Wrong or Missing?
The PermissionRequest hook was introduced in v2.0.45 (according to the Changelog), but the documentation is incomplete:
- It is missing from the high-level list in the Hooks Guide, making it difficult for new users to know the feature exists.
- Critically, the Reference documentation is missing the
PermissionRequest InputJSON schema. Developers cannot implement this hook without knowing what fields are passed tostdin(e.g., does it receivetool_input?tool_name?cwd?).
Suggested Improvement
In docs/en/hooks-guide.md:*
Add PermissionRequest to the overview list:
* PermissionRequest: Runs when the permission system requires user confirmation (can auto-approve or deny)
In docs/en/hooks.md:
Add a new section under Hook Input detailing the JSON schema. Based on the tool's behavior, it should likely look similar to this:
PermissionRequest Input
{
"session_id": "abc123",
"transcript_path": "/Users/.../.claude/projects/.../transcript.jsonl",
"cwd": "/Users/...",
"permission_mode": "default",
"hook_event_name": "PermissionRequest",
"tool_name": "Bash",
"tool_input": {
"command": "npm install"
}
}
Impact
High - Prevents users from using a feature
Additional Context
- This feature was highlighted in Changelog 2.0.45: "Added
PermissionRequesthook to automatically approve or deny tool permission requests with custom logic" - The "Decision Control" output format is documented, but the Input format is missing.
This issue has 11 comments on GitHub. Read the full discussion on GitHub ↗