To extract specific content from Claude’s responses, check the message type and content blocks:
from claude_agent_sdk import query, AssistantMessage, TextBlockasync for message in query(prompt="What is 2 + 2?"): if isinstance(message, AssistantMessage): for block in message.content: if isinstance(block, TextBlock): print(f"Claude: {block.text}")
Customize Claude’s behavior using ClaudeAgentOptions:
from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, TextBlockoptions = ClaudeAgentOptions( system_prompt="You are a helpful assistant that explains things simply.", max_turns=1,)async for message in query( prompt="Explain what Python is in one sentence.", options=options): if isinstance(message, AssistantMessage): for block in message.content: if isinstance(block, TextBlock): print(f"Claude: {block.text}")
Enable Claude to perform actions like reading and writing files:
from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, TextBlockoptions = ClaudeAgentOptions( allowed_tools=["Read", "Write"], system_prompt="You are a helpful file assistant.",)async for message in query( prompt="Create a file called hello.txt with 'Hello, World!' in it", options=options,): if isinstance(message, AssistantMessage): for block in message.content: if isinstance(block, TextBlock): print(f"Claude: {block.text}")
By default, Claude will ask for permission before using tools. To auto-accept file edits, set permission_mode='acceptEdits' in your options.