> ## Documentation Index
> Fetch the complete documentation index at: https://ai.easyaf.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Summary of the CloudNimble.ClaudeEssentials.Hooks.Outputs Namespace

## Summary

The `Outputs` 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

```csharp theme={null}
// Simple output - allow operation to continue
var output = new PreToolUseHookOutput<object> { Continue = true };
Console.WriteLine(ClaudeHooksSerializer.SerializePreToolUseOutput(output));

// Block an operation
var blockOutput = new StopHookOutput
{
Decision = HookDecision.Block,
Reason = "Tests must pass before stopping"
};
Console.WriteLine(ClaudeHooksSerializer.SerializeStopOutput(blockOutput));
```

### 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 from `HookOutputBase`:

* `Continue` - Whether to continue (default: true)
* `StopReason` - Message when Continue is false
* `SuppressOutput` - Hide from transcript
* `SystemMessage` - Warning message for Claude

## Types

### &#x20;Classes

| Name | Summary |
| - | - |
| [HookOutputBase](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/HookOutputBase.md) | 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](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/HookSpecificOutputBase.md) | Base class for hook-specific output data.  Contains the hook event name and serves as base for specific output types. |
| [NotificationHookOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/NotificationHookOutput.md) | Represents the output for a Notification hook.  The Notification hook typically only uses base output fields. |
| [PermissionRequestDecision](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PermissionRequestDecision.md) | Represents the decision object for a PermissionRequest hook response.  Contains the behavior decision and optional parameters. |
| [PermissionRequestHookOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PermissionRequestHookOutput.md) | Represents the complete output for a PermissionRequest hook.  Combines base output fields with PermissionRequest-specific output. |
| [PermissionRequestSpecificOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PermissionRequestSpecificOutput.md) | Represents the hook-specific output for a PermissionRequest hook.  Contains the decision object with behavior and optional parameters. |
| [PostToolUseHookOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PostToolUseHookOutput.md) | Represents the complete output for a PostToolUse hook.  Combines base output fields with PostToolUse-specific output. |
| [PostToolUseSpecificOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PostToolUseSpecificOutput.md) | Represents the hook-specific output for a PostToolUse hook.  Contains additional context to provide to Claude after tool execution. |
| [PreCompactHookOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PreCompactHookOutput.md) | Represents the output for a PreCompact hook.  The PreCompact hook typically only uses base output fields. |
| [PreToolUseHookOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PreToolUseHookOutput.md) | Represents the complete output for a PreToolUse hook.  Combines base output fields with PreToolUse-specific output. |
| [PreToolUseSpecificOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PreToolUseSpecificOutput.md) | Represents the hook-specific output for a PreToolUse hook.  Contains permission decisions and optional input modifications. |
| [SessionEndHookOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/SessionEndHookOutput.md) | Represents the output for a SessionEnd hook.  The SessionEnd hook typically only uses base output fields. |
| [SessionStartHookOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/SessionStartHookOutput.md) | Represents the complete output for a SessionStart hook.  Combines base output fields with SessionStart-specific output. |
| [SessionStartSpecificOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/SessionStartSpecificOutput.md) | Represents the hook-specific output for a SessionStart hook.  Contains additional context to add to the session start. |
| [StopHookOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/StopHookOutput.md) | Represents the output for a Stop hook.  Used to optionally block Claude from stopping and continue processing. |
| [SubagentStopHookOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/SubagentStopHookOutput.md) | Represents the output for a SubagentStop hook.  Used to optionally block a subagent from stopping and continue processing. |
| [UserPromptSubmitHookOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/UserPromptSubmitHookOutput.md) | Represents the complete output for a UserPromptSubmit hook.  Combines base output fields with UserPromptSubmit-specific output. |
| [UserPromptSubmitSpecificOutput](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/UserPromptSubmitSpecificOutput.md) | Represents the hook-specific output for a UserPromptSubmit hook.  Contains additional context to add to Claude's processing of the user prompt. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.