diff --git a/src/claude_agent_sdk/client.py b/src/claude_agent_sdk/client.py index fc7b6754..7af8f47a 100644 --- a/src/claude_agent_sdk/client.py +++ b/src/claude_agent_sdk/client.py @@ -61,12 +61,14 @@ class ClaudeSDKClient: def __init__( self, - options: ClaudeAgentOptions | None = None, + options: ClaudeAgentOptions | dict[str, Any] | None = None, transport: Transport | None = None, ): """Initialize Claude SDK client.""" if options is None: options = ClaudeAgentOptions() + elif isinstance(options, dict): + options = ClaudeAgentOptions(**options) self.options = options self._custom_transport = transport self._transport: Transport | None = None diff --git a/src/claude_agent_sdk/query.py b/src/claude_agent_sdk/query.py index 98ed0c1c..b7923a7c 100644 --- a/src/claude_agent_sdk/query.py +++ b/src/claude_agent_sdk/query.py @@ -12,7 +12,7 @@ async def query( *, prompt: str | AsyncIterable[dict[str, Any]], - options: ClaudeAgentOptions | None = None, + options: ClaudeAgentOptions | dict[str, Any] | None = None, transport: Transport | None = None, ) -> AsyncIterator[Message]: """ @@ -115,6 +115,8 @@ class MyCustomTransport(Transport): """ if options is None: options = ClaudeAgentOptions() + elif isinstance(options, dict): + options = ClaudeAgentOptions(**options) os.environ["CLAUDE_CODE_ENTRYPOINT"] = "sdk-py"