Skip to content
Developer Preview

StartSessionOptions

Caller-facing options for session/start.

Class in muse_code

Composed from the generated SessionStartParams. commandId is excluded because the connection mints it; previousSessionId because the facade starts root sessions, and spawnedBy because the facade does not expose a spawner yet. Experimental-only members (switchPolicy) are invisible here: the exclusion set tracks the stable SessionStartParams below, and a graduation reds the drift assert until the facade forwards or excludes the new member.

Property Type Description
approval_mode str | None The approval enforcement mode to start under; omitted = the host’s default.
provider_id str | None The provider to serve the session with; omitted = the host’s default.
session_id str | None A caller-chosen session id; omitted = the host mints one.
workspace_root str | None The workspace the session works in; omitted = the host decides.
workspace_roots List[str] | None The session’s initial runtime workspace-root set (wire workspaceRoots; first root = the CWD). When workspace_root is also given the two must agree.
model_id str | None The model to serve the session with; omitted = the provider’s default.
permission_profile str | None The permission profile to start the session under (wire permissionProfile): a profile id the host offers; omitted = the host’s configured default. An id the host does not offer refuses the start before the session exists.
require_permission_profile bool Require the permission_profile selection: when true, the client proves the committed selection equals the requested id — from the start result’s session.permissionState, else a session/read read-back — and raises PermissionProfileNotApplied instead of proceeding on the host default. Client-local: never sent on the wire. Setting it without permission_profile is a usage error.
recovery_mode RecoveryMode | None Optional recovery selection (wire recoveryMode); omitted means no selection is sent.
config SessionConfig | None Per-session configuration (wire config). Naming MCP servers in mcpServers needs the host’s sessionMcp grant; without it the start raises MuseCapabilityNotGrantedError before anything is sent.
Source

clients/sdk-py/src/muse_code/facade/client.py:128