pub struct SessionOptions {Show 27 fields
pub resume: Option<String>,
pub continue_conversation: bool,
pub fork_session: bool,
pub session_id: Option<String>,
pub model: Option<String>,
pub fallback_model: Option<String>,
pub max_budget_usd: Option<f64>,
pub max_turns: Option<u64>,
pub system_prompt: Option<String>,
pub append_system_prompt: Option<String>,
pub tools: Vec<String>,
pub allowed_tools: Vec<String>,
pub disallowed_tools: Vec<String>,
pub permission_mode: Option<PermissionMode>,
pub dangerously_skip_permissions: bool,
pub mcp_config: Vec<String>,
pub strict_mcp_config: bool,
pub working_dir: Option<PathBuf>,
pub add_dirs: Vec<PathBuf>,
pub include_partial_messages: bool,
pub effort: Option<String>,
pub no_session_persistence: bool,
pub json_schema: Option<String>,
pub agents: Option<String>,
pub settings: Option<String>,
pub setting_sources: Vec<String>,
pub env_vars: Vec<(String, String)>,
}Expand description
Options for creating a new Claude session.
These map 1-to-1 onto claude CLI flags. Only the fields you set will
produce flags; None / empty-vec fields are omitted.
Fields§
§resume: Option<String>Resume a specific session by ID.
continue_conversation: boolContinue the most recent conversation in the working directory.
fork_session: boolWhen resuming, fork to a new session ID.
session_id: Option<String>Use a specific session ID (must be a valid UUID).
model: Option<String>Model to use (e.g. "sonnet", "opus", or full model name).
fallback_model: Option<String>Fallback model when the primary is overloaded.
max_budget_usd: Option<f64>Maximum dollar amount to spend on API calls.
max_turns: Option<u64>Maximum number of agentic turns.
system_prompt: Option<String>Replace the entire system prompt.
append_system_prompt: Option<String>Append text to the default system prompt.
tools: Vec<String>Restrict which built-in tools Claude can use (e.g. ["Bash", "Edit", "Read"]).
allowed_tools: Vec<String>Tools that execute without prompting for permission.
disallowed_tools: Vec<String>Tools that are explicitly denied.
permission_mode: Option<PermissionMode>Permission mode.
dangerously_skip_permissions: boolSkip all permission checks (dangerous!).
mcp_config: Vec<String>Path(s) to MCP config JSON files.
strict_mcp_config: boolOnly use MCP servers from mcp_config, ignoring all other configs.
working_dir: Option<PathBuf>Working directory for the Claude session.
add_dirs: Vec<PathBuf>Additional directories to allow tool access to.
include_partial_messages: boolInclude partial streaming events in output.
effort: Option<String>Effort level ("low", "medium", "high").
no_session_persistence: boolDisable session persistence.
json_schema: Option<String>JSON schema for structured output validation.
agents: Option<String>Custom subagents defined as a JSON string.
settings: Option<String>Custom settings file or JSON string.
setting_sources: Vec<String>Setting sources to load.
env_vars: Vec<(String, String)>Additional environment variables to set.
Implementations§
Source§impl SessionOptions
impl SessionOptions
Sourcepub fn to_cli_args(&self) -> Vec<String>
pub fn to_cli_args(&self) -> Vec<String>
Convert these options into CLI arguments for the claude binary.
This does not include the base arguments (--print,
--output-format stream-json, etc.) — those are added by
Transport::spawn.
Trait Implementations§
Source§impl Clone for SessionOptions
impl Clone for SessionOptions
Source§fn clone(&self) -> SessionOptions
fn clone(&self) -> SessionOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more