Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions examples/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@
import sys
from typing import Any

from claude_agent_sdk import ClaudeAgentOptions, ClaudeSDKClient
from claude_agent_sdk.types import (
from claude_agent_sdk import (
AssistantMessage,
ClaudeAgentOptions,
ClaudeSDKClient,
HookContext,
HookJSONOutput,
HookMatcher,
Expand Down Expand Up @@ -84,7 +85,9 @@ async def add_custom_instructions(
async def example_pretooluse() -> None:
"""Basic example demonstrating hook protection."""
print("=== PreToolUse Example ===")
print("This example demonstrates how PreToolUse can block some bash commands but not others.\n")
print(
"This example demonstrates how PreToolUse can block some bash commands but not others.\n"
)

# Configure hooks using ClaudeAgentOptions
options = ClaudeAgentOptions(
Expand All @@ -93,7 +96,7 @@ async def example_pretooluse() -> None:
"PreToolUse": [
HookMatcher(matcher="Bash", hooks=[check_bash_command]),
],
}
},
)

async with ClaudeSDKClient(options=options) as client:
Expand Down
2 changes: 2 additions & 0 deletions src/claude_agent_sdk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
ContentBlock,
HookCallback,
HookContext,
HookJSONOutput,
HookMatcher,
McpSdkServerConfig,
McpServerConfig,
Expand Down Expand Up @@ -308,6 +309,7 @@ async def call_tool(name: str, arguments: dict[str, Any]) -> Any:
"PermissionUpdate",
"HookCallback",
"HookContext",
"HookJSONOutput",
"HookMatcher",
# Agent support
"AgentDefinition",
Expand Down