pub struct ClaudeCodeOptions {Show 29 fields
pub system_prompt_v2: Option<SystemPrompt>,
pub system_prompt: Option<String>,
pub append_system_prompt: Option<String>,
pub allowed_tools: Vec<String>,
pub disallowed_tools: Vec<String>,
pub permission_mode: PermissionMode,
pub mcp_servers: HashMap<String, McpServerConfig>,
pub mcp_tools: Vec<String>,
pub max_turns: Option<i32>,
pub max_thinking_tokens: i32,
pub max_output_tokens: Option<u32>,
pub model: Option<String>,
pub cwd: Option<PathBuf>,
pub continue_conversation: bool,
pub resume: Option<String>,
pub permission_prompt_tool_name: Option<String>,
pub settings: Option<String>,
pub add_dirs: Vec<PathBuf>,
pub extra_args: HashMap<String, Option<String>>,
pub env: HashMap<String, String>,
pub debug_stderr: Option<Arc<Mutex<dyn Write + Send + Sync>>>,
pub include_partial_messages: bool,
pub can_use_tool: Option<Arc<dyn CanUseTool>>,
pub hooks: Option<HashMap<String, Vec<HookMatcher>>>,
pub control_protocol_format: ControlProtocolFormat,
pub setting_sources: Option<Vec<SettingSource>>,
pub fork_session: bool,
pub agents: Option<HashMap<String, AgentDefinition>>,
pub cli_channel_buffer_size: Option<usize>,
}Expand description
Configuration options for Claude Code SDK
Fields§
§system_prompt_v2: Option<SystemPrompt>System prompt configuration (simplified in v0.1.12+) Can be either a string or a preset configuration Replaces the old system_prompt and append_system_prompt fields
system_prompt: Option<String>[DEPRECATED] System prompt to prepend to all messages Use system_prompt_v2 instead
append_system_prompt: Option<String>[DEPRECATED] Additional system prompt to append Use system_prompt_v2 instead
allowed_tools: Vec<String>List of allowed tools
disallowed_tools: Vec<String>List of disallowed tools
permission_mode: PermissionModePermission mode for tool execution
mcp_servers: HashMap<String, McpServerConfig>MCP server configurations
mcp_tools: Vec<String>MCP tools to enable
max_turns: Option<i32>Maximum number of conversation turns
max_thinking_tokens: i32Maximum thinking tokens
max_output_tokens: Option<u32>Maximum output tokens per response (1-32000, overrides CLAUDE_CODE_MAX_OUTPUT_TOKENS env var)
model: Option<String>Model to use
cwd: Option<PathBuf>Working directory
continue_conversation: boolContinue from previous conversation
resume: Option<String>Resume from a specific conversation ID
permission_prompt_tool_name: Option<String>Custom permission prompt tool name
settings: Option<String>Settings file path for Claude Code CLI
add_dirs: Vec<PathBuf>Additional directories to add as working directories
extra_args: HashMap<String, Option<String>>Extra arbitrary CLI flags
env: HashMap<String, String>Environment variables to pass to the process
debug_stderr: Option<Arc<Mutex<dyn Write + Send + Sync>>>Debug output stream (e.g., stderr)
include_partial_messages: boolInclude partial assistant messages in streaming output
can_use_tool: Option<Arc<dyn CanUseTool>>Tool permission callback
hooks: Option<HashMap<String, Vec<HookMatcher>>>Hook configurations
control_protocol_format: ControlProtocolFormatControl protocol format (defaults to Legacy for compatibility)
setting_sources: Option<Vec<SettingSource>>Setting sources to load (user, project, local) When None, no filesystem settings are loaded (matches Python SDK v0.1.0 behavior)
fork_session: boolFork session when resuming instead of continuing When true, creates a new branch from the resumed session
agents: Option<HashMap<String, AgentDefinition>>Programmatic agent definitions Define agents inline without filesystem dependencies
cli_channel_buffer_size: Option<usize>CLI channel buffer size for internal communication channels Controls the size of message, control, and stdin buffers (default: 100) Increase for high-throughput scenarios to prevent message lag
Implementations§
Source§impl ClaudeCodeOptions
impl ClaudeCodeOptions
Sourcepub fn builder() -> ClaudeCodeOptionsBuilder
pub fn builder() -> ClaudeCodeOptionsBuilder
Create a new options builder
Trait Implementations§
Source§impl Clone for ClaudeCodeOptions
impl Clone for ClaudeCodeOptions
Source§fn clone(&self) -> ClaudeCodeOptions
fn clone(&self) -> ClaudeCodeOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ClaudeCodeOptions
impl Debug for ClaudeCodeOptions
Source§impl Default for ClaudeCodeOptions
impl Default for ClaudeCodeOptions
Source§fn default() -> ClaudeCodeOptions
fn default() -> ClaudeCodeOptions
Auto Trait Implementations§
impl Freeze for ClaudeCodeOptions
impl !RefUnwindSafe for ClaudeCodeOptions
impl Send for ClaudeCodeOptions
impl Sync for ClaudeCodeOptions
impl Unpin for ClaudeCodeOptions
impl !UnwindSafe for ClaudeCodeOptions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more