ClaudeCode.Message.SystemMessage.HookProgress (ClaudeCode v0.36.3)
View SourceRepresents a hook progress system message from the Claude CLI.
Emitted periodically while a hook is executing to relay intermediate output.
Fields
:type- Always:system:subtype- Always:hook_progress:session_id- Session identifier:uuid- Message UUID:hook_id- Unique identifier for this hook execution:hook_name- Name of the hook being executed:hook_event- Event that triggered the hook:stdout- Standard output from the hook process:stderr- Standard error from the hook process:output- Combined or processed output
JSON Format
{
"type": "system",
"subtype": "hook_progress",
"session_id": "...",
"uuid": "...",
"hook_id": "hook_abc123",
"hook_name": "my_hook",
"hook_event": "on_tool_start",
"stdout": "processing...",
"stderr": null,
"output": "processing..."
}
Summary
Functions
Type guard to check if a value is a HookProgress.
Creates a new HookProgress from JSON data.
Types
Functions
Type guard to check if a value is a HookProgress.
Creates a new HookProgress from JSON data.
Examples
iex> HookProgress.new(%{
...> "type" => "system",
...> "subtype" => "hook_progress",
...> "session_id" => "session-1",
...> "hook_id" => "hook_abc",
...> "hook_name" => "my_hook",
...> "hook_event" => "on_tool_start"
...> })
{:ok, %HookProgress{type: :system, subtype: :hook_progress, ...}}
iex> HookProgress.new(%{"type" => "assistant"})
{:error, :invalid_message_type}