Skip to main content

InitMessage

Struct InitMessage 

Source
pub struct InitMessage {
Show 32 fields pub session_id: String, pub cwd: Option<String>, pub model: Option<String>, pub tools: Vec<String>, pub mcp_servers: Vec<Value>, pub slash_commands: Vec<String>, pub terminal_slash_commands: Vec<String>, pub agents: Vec<String>, pub plugins: Vec<PluginInfo>, pub skills: Vec<Value>, pub claude_code_version: Option<String>, pub messaging_socket_path: Option<String>, pub api_key_source: Option<ApiKeySource>, pub output_style: Option<OutputStyle>, pub permission_mode: Option<InitPermissionMode>, pub uuid: Option<String>, pub memory_paths: Option<MemoryPaths>, pub fast_mode_state: Option<String>, pub fast_mode_disabled_reason: Option<FastModeDisabledReason>, pub mcp_server_errors: Option<Vec<McpServerError>>, pub analytics_disabled: Option<bool>, pub product_feedback_disabled: Option<bool>, pub betas: Vec<String>, pub capabilities: Vec<String>, pub plugin_errors: Vec<PluginDiagnostic>, pub plugin_warnings: Vec<PluginDiagnostic>, pub effort: Option<String>, pub cloud_session: Option<Value>, pub footer_indicator: Option<FooterIndicator>, pub worker_epoch: Option<u64>, pub powershell_path: Option<Option<String>>, pub startup_timing: Option<Map<String, Value>>,
}
Expand description

Init system message data - sent at session start

Fields§

§session_id: String

Session identifier

§cwd: Option<String>

Current working directory

§model: Option<String>

Model being used

§tools: Vec<String>

List of available tools

§mcp_servers: Vec<Value>

MCP servers configured

§slash_commands: Vec<String>

Available slash commands (e.g., “compact”, “cost”, “review”)

§terminal_slash_commands: Vec<String>

Slash commands only meaningful in a terminal context (CLI 2.1.232+, e.g. “doctor”, “color”)

§agents: Vec<String>

Available agent types (e.g., “Bash”, “Explore”, “Plan”)

§plugins: Vec<PluginInfo>

Installed plugins

§skills: Vec<Value>

Installed skills

§claude_code_version: Option<String>

Claude Code CLI version

§messaging_socket_path: Option<String>

Unix socket path for the harness’s inter-session messaging bridge (new in CLI 2.1.232; absent on older CLIs and non-bridged runs)

§api_key_source: Option<ApiKeySource>

How the API key was sourced

§output_style: Option<OutputStyle>

Output style

§permission_mode: Option<InitPermissionMode>

Permission mode

§uuid: Option<String>

Message-level unique identifier

§memory_paths: Option<MemoryPaths>

Memory storage paths (e.g., {“auto”: “/path/to/memory/”})

§fast_mode_state: Option<String>

Fast mode toggle state (e.g., “off”)

§fast_mode_disabled_reason: Option<FastModeDisabledReason>

Why fast mode can’t serve right now. Absent when nothing blocks it.

§mcp_server_errors: Option<Vec<McpServerError>>

MCP server config entries (from --mcp-config) that failed validation and were skipped. Affected servers are absent from mcp_servers.

§analytics_disabled: Option<bool>

Whether analytics collection is disabled for this session.

§product_feedback_disabled: Option<bool>

Whether product-feedback prompts are disabled for this session.

§betas: Vec<String>

API beta flags active for the session.

§capabilities: Vec<String>

Open-set protocol capability names supported by this CLI.

§plugin_errors: Vec<PluginDiagnostic>

Plugin load errors.

§plugin_warnings: Vec<PluginDiagnostic>

Plugin load warnings.

§effort: Option<String>

The effort level the session will send on its next request — after env overrides, session state, org caps, and model-support downgrades ("low" | "medium" | "high" | "xhigh" | "max"). None when no effort parameter will be sent, or on CLIs before 2.1.239.

§cloud_session: Option<Value>

Only on init frames written by the headless stream-json client of a cloud-hosted session: a per-frame snapshot of the cloud session’s id, view URL, device binding, and directory-sync state. Absent in every other mode. Stored as raw JSON (the shape is internal and evolving).

§footer_indicator: Option<FooterIndicator>

The terminal’s server-configured ◆ <text> footer pill, carried so a host UI can render the same pill. Absent when nothing is configured (CLI 2.1.259+).

§worker_epoch: Option<u64>

This cloud worker’s life (CLAUDE_CODE_WORKER_EPOCH): a new number each time the session’s worker is started. Absent outside cloud workers and on CLIs before 2.1.259.

§powershell_path: Option<Option<String>>

Windows only: the absolute path of the PowerShell binary this session runs PowerShell commands with, or Some(None) (wire null) when none was found. Absent on other platforms and on CLIs before 2.1.259.

§startup_timing: Option<Map<String, Value>>

Cold-start telemetry for hosted (CCR) sessions: named startup phases and resume-hydration counters. Absent elsewhere. Stored as raw JSON (the shape is internal and evolving) (CLI 2.1.266+).

Trait Implementations§

Source§

impl Clone for InitMessage

Source§

fn clone(&self) -> InitMessage

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for InitMessage

Source§

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

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

impl<'de> Deserialize<'de> for InitMessage

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for InitMessage

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.