Summary
TheOutputs namespace contains classes for serializing JSON responses that hooks send to Claude Code via stdout.
All output classes inherit from HookOutputBase which provides Continue, StopReason, SuppressOutput, and SystemMessage properties.
Usage
Creating and Serializing Output
Exit Codes
- 0: Success - stdout is parsed as JSON
- 2: Blocking error - stderr is shown to Claude/user
- Other: Non-blocking error - shown in verbose mode only
Common Base Properties
All outputs inherit fromHookOutputBase:
Continue- Whether to continue (default: true)StopReason- Message when Continue is falseSuppressOutput- Hide from transcriptSystemMessage- Warning message for Claude
Types
Classes
| Name | Summary |
|---|---|
| HookOutputBase | Base class containing common fields for all hook outputs. Hook outputs are written to stdout as JSON when the hook exits with code 0. |
| HookSpecificOutputBase | Base class for hook-specific output data. Contains the hook event name and serves as base for specific output types. |
| NotificationHookOutput | Represents the output for a Notification hook. The Notification hook typically only uses base output fields. |
| PermissionRequestDecision | Represents the decision object for a PermissionRequest hook response. Contains the behavior decision and optional parameters. |
| PermissionRequestHookOutput | Represents the complete output for a PermissionRequest hook. Combines base output fields with PermissionRequest-specific output. |
| PermissionRequestSpecificOutput | Represents the hook-specific output for a PermissionRequest hook. Contains the decision object with behavior and optional parameters. |
| PostToolUseHookOutput | Represents the complete output for a PostToolUse hook. Combines base output fields with PostToolUse-specific output. |
| PostToolUseSpecificOutput | Represents the hook-specific output for a PostToolUse hook. Contains additional context to provide to Claude after tool execution. |
| PreCompactHookOutput | Represents the output for a PreCompact hook. The PreCompact hook typically only uses base output fields. |
| PreToolUseHookOutput | Represents the complete output for a PreToolUse hook. Combines base output fields with PreToolUse-specific output. |
| PreToolUseSpecificOutput | Represents the hook-specific output for a PreToolUse hook. Contains permission decisions and optional input modifications. |
| SessionEndHookOutput | Represents the output for a SessionEnd hook. The SessionEnd hook typically only uses base output fields. |
| SessionStartHookOutput | Represents the complete output for a SessionStart hook. Combines base output fields with SessionStart-specific output. |
| SessionStartSpecificOutput | Represents the hook-specific output for a SessionStart hook. Contains additional context to add to the session start. |
| StopHookOutput | Represents the output for a Stop hook. Used to optionally block Claude from stopping and continue processing. |
| SubagentStopHookOutput | Represents the output for a SubagentStop hook. Used to optionally block a subagent from stopping and continue processing. |
| UserPromptSubmitHookOutput | Represents the complete output for a UserPromptSubmit hook. Combines base output fields with UserPromptSubmit-specific output. |
| UserPromptSubmitSpecificOutput | Represents the hook-specific output for a UserPromptSubmit hook. Contains additional context to add to Claude’s processing of the user prompt. |