> ## Documentation Index
> Fetch the complete documentation index at: https://si.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={"dark"}
// 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 |
| - | - |
| [AsyncHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/AsyncHookOutput.md) | Represents the output of a hook that continues running asynchronously in the background. |
| [ConfigChangeHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/ConfigChangeHookOutput.md) | Represents the output for a ConfigChange hook.  Used to optionally block configuration changes (except policy\_settings). |
| [CwdChangedHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/CwdChangedHookOutput.md) | Represents the output for a CwdChanged hook.  This hook is observability-only and typically only uses base output fields.  Environment variables can be set by writing to the CLAUDE\_ENV\_FILE. |
| [CwdChangedSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/CwdChangedSpecificOutput.md) | Represents the hook-specific output for a CwdChanged hook. |
| [DirectoryAddedHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/DirectoryAddedHookOutput.md) | Represents the complete output for a DirectoryAdded hook. |
| [ElicitationHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/ElicitationHookOutput.md) | Represents the complete output for an Elicitation hook.  Combines base output fields with Elicitation-specific output. |
| [ElicitationResultHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/ElicitationResultHookOutput.md) | Represents the complete output for an ElicitationResult hook.  Combines base output fields with ElicitationResult-specific output. |
| [ElicitationResultSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/ElicitationResultSpecificOutput.md) | Represents the hook-specific output for an ElicitationResult hook.  Contains the action to take and optional override form field values. |
| [ElicitationSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/ElicitationSpecificOutput.md) | Represents the hook-specific output for an Elicitation hook.  Contains the action to take and optional form field values. |
| [FileChangedHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/FileChangedHookOutput.md) | Represents the output for a FileChanged hook.  This hook is observability-only and typically only uses base output fields.  Environment variables can be set by writing to the CLAUDE\_ENV\_FILE. |
| [FileChangedSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/FileChangedSpecificOutput.md) | Represents the hook-specific output for a FileChanged hook. |
| [HookOutputBase](https://si.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://si.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. |
| [InstructionsLoadedHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/InstructionsLoadedHookOutput.md) | Represents the output for an InstructionsLoaded hook.  This hook is observability-only and typically only uses base output fields. |
| [MessageDisplayHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/MessageDisplayHookOutput.md) | Represents the complete output for a MessageDisplay hook. |
| [MessageDisplaySpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/MessageDisplaySpecificOutput.md) | Represents the hook-specific output for a MessageDisplay hook, which replaces text on screen without changing the stored message. |
| [NotificationHookOutput](https://si.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. |
| [NotificationSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/NotificationSpecificOutput.md) | Represents the hook-specific output for a Notification hook. |
| [PermissionDeniedHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PermissionDeniedHookOutput.md) | Represents the complete output for a PermissionDenied hook.  Combines base output fields with PermissionDenied-specific output. |
| [PermissionDeniedSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PermissionDeniedSpecificOutput.md) | Represents the hook-specific output for a PermissionDenied hook.  Contains the option to allow the model to retry the denied permission. |
| [PermissionRequestDecision](https://si.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://si.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://si.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. |
| [PostCompactHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PostCompactHookOutput.md) | Represents the output for a PostCompact hook.  This hook is observability-only and typically only uses base output fields. |
| [PostModelSwitchHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PostModelSwitchHookOutput.md) | Represents the complete output for a PostModelSwitch hook. |
| [PostModelSwitchSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PostModelSwitchSpecificOutput.md) | Represents the hook-specific output for a PostModelSwitch hook. |
| [PostToolBatchHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PostToolBatchHookOutput.md) | Represents the complete output for a PostToolBatch hook. |
| [PostToolBatchSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PostToolBatchSpecificOutput.md) | Represents the hook-specific output for a PostToolBatch hook. |
| [PostToolUseFailureHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PostToolUseFailureHookOutput.md) | Represents the complete output for a PostToolUseFailure hook.  Combines base output fields with PostToolUseFailure-specific output. |
| [PostToolUseFailureSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PostToolUseFailureSpecificOutput.md) | Represents the hook-specific output for a PostToolUseFailure hook.  Contains additional context about the tool failure for Claude. |
| [PostToolUseHookOutput](https://si.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://si.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://si.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. |
| [PreModelSwitchHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PreModelSwitchHookOutput.md) | Represents the complete output for a PreModelSwitch hook. |
| [PreModelSwitchSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/PreModelSwitchSpecificOutput.md) | Represents the hook-specific output for a PreModelSwitch hook. |
| [PreToolUseHookOutput](https://si.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://si.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://si.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://si.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://si.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. |
| [SetupHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/SetupHookOutput.md) | Represents the complete output for a Setup hook. |
| [SetupSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/SetupSpecificOutput.md) | Represents the hook-specific output for a Setup hook. |
| [StopFailureHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/StopFailureHookOutput.md) | Represents the output for a StopFailure hook.  The StopFailure hook's exit code and output are ignored by Claude Code. |
| [StopHookOutput](https://si.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. |
| [StopSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/StopSpecificOutput.md) | Represents the hook-specific output for a Stop hook. |
| [SubagentStartHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/SubagentStartHookOutput.md) | Represents the complete output for a SubagentStart hook.  Combines base output fields with SubagentStart-specific output. |
| [SubagentStartSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/SubagentStartSpecificOutput.md) | Represents the hook-specific output for a SubagentStart hook.  Contains additional context to add to the subagent's context. |
| [SubagentStopHookOutput](https://si.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. |
| [SubagentStopSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/SubagentStopSpecificOutput.md) | Represents the hook-specific output for a SubagentStop hook. |
| [TaskCompletedHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/TaskCompletedHookOutput.md) | Represents the output for a TaskCompleted hook.  Use exit code 2 to block task completion with stderr feedback,  or set [HookOutputBase.Continue](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/HookOutputBase.md#continue) to false with a [HookOutputBase.StopReason](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/HookOutputBase.md#stopreason)  to stop the teammate entirely. |
| [TaskCreatedHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/TaskCreatedHookOutput.md) | Represents the output for a TaskCreated hook.  Use exit code 2 to block task creation with stderr feedback,  or set [HookOutputBase.Continue](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/HookOutputBase.md#continue) to false with a [HookOutputBase.StopReason](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/HookOutputBase.md#stopreason)  to stop the teammate entirely. |
| [TeammateIdleHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/TeammateIdleHookOutput.md) | Represents the output for a TeammateIdle hook.  Use exit code 2 to prevent the teammate from going idle,  or set [HookOutputBase.Continue](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/HookOutputBase.md#continue) to false with a [HookOutputBase.StopReason](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/HookOutputBase.md#stopreason)  to stop the teammate entirely. |
| [UserPromptExpansionHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/UserPromptExpansionHookOutput.md) | Represents the complete output for a UserPromptExpansion hook. |
| [UserPromptExpansionSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/UserPromptExpansionSpecificOutput.md) | Represents the hook-specific output for a UserPromptExpansion hook. |
| [UserPromptSubmitHookOutput](https://si.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://si.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. |
| [WorktreeCreateHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/WorktreeCreateHookOutput.md) | Represents the complete output for a WorktreeCreate hook.  Combines base output fields with WorktreeCreate-specific output. |
| [WorktreeCreateSpecificOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/WorktreeCreateSpecificOutput.md) | Represents the hook-specific output for a WorktreeCreate hook.  Contains the path for the created worktree. |
| [WorktreeRemoveHookOutput](https://si.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Outputs/WorktreeRemoveHookOutput.md) | Represents the output for a WorktreeRemove hook.  Failures from this hook are only logged in debug mode. |


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