diff --git a/src/claude_code_sdk/_internal/transport/subprocess_cli.py b/src/claude_code_sdk/_internal/transport/subprocess_cli.py index 7b0b928..0b0cb78 100644 --- a/src/claude_code_sdk/_internal/transport/subprocess_cli.py +++ b/src/claude_code_sdk/_internal/transport/subprocess_cli.py @@ -153,6 +153,9 @@ class SubprocessCLITransport(Transport): if self._options.include_partial_messages: cmd.append("--include-partial-messages") + if self._options.fork_session: + cmd.append("--fork-session") + # Add extra args for future CLI flags for flag, value in self._options.extra_args.items(): if value is None: diff --git a/src/claude_code_sdk/types.py b/src/claude_code_sdk/types.py index 6bfc845..18dedd6 100644 --- a/src/claude_code_sdk/types.py +++ b/src/claude_code_sdk/types.py @@ -314,6 +314,9 @@ class ClaudeCodeOptions: # Partial message streaming support include_partial_messages: bool = False + # When true resumed sessions will fork to a new session ID rather than + # continuing the previous session. + fork_session: bool = False # SDK Control Protocol