Skip to main content

SessionOptions

Struct SessionOptions 

Source
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: bool

Continue the most recent conversation in the working directory.

§fork_session: bool

When 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: bool

Skip all permission checks (dangerous!).

§mcp_config: Vec<String>

Path(s) to MCP config JSON files.

§strict_mcp_config: bool

Only 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: bool

Include partial streaming events in output.

§effort: Option<String>

Effort level ("low", "medium", "high").

§no_session_persistence: bool

Disable 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

Source

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

Source§

fn clone(&self) -> SessionOptions

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SessionOptions

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SessionOptions

Source§

fn default() -> SessionOptions

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more