pub struct MuseExecBuilder { /* private fields */ }Expand description
Builder for one muse exec --json invocation.
Covers the full muse exec flag surface (Muse Code 0.1.0), verified
flag-by-flag against the real binary. Constraints the CLI enforces are
noted on each method (several flags are Meta-provider-only; the echo
provider rejects them at startup with a usage error).
Implementations§
Source§impl MuseExecBuilder
impl MuseExecBuilder
pub fn new(prompt: impl Into<String>) -> Self
Sourcepub fn binary(self, path: impl Into<String>) -> Self
pub fn binary(self, path: impl Into<String>) -> Self
Use a specific binary instead of muse from PATH.
pub fn provider(self, provider: Provider) -> Self
Sourcepub fn preset(self, preset: impl Into<String>) -> Self
pub fn preset(self, preset: impl Into<String>) -> Self
Built-in preset (native-basic, miniswe).
pub fn model(self, model: impl Into<String>) -> Self
Sourcepub fn session_id(self, session_id: impl Into<String>) -> Self
pub fn session_id(self, session_id: impl Into<String>) -> Self
Run under a caller-supplied session id (--session-id), the basis of
multi-turn continuity: each turn is its own process, and passing the
same id makes the CLI continue that session rather than start a new
one. The id is adopted verbatim as the stream.id on every emitted
record.
Supplying your own id is also what makes
MuseRecord identity safe to key on: record
ids are UUID-shaped counters that repeat across sessions, so the
only unique handle is the composite (stream.id, id) — and that is
trustworthy precisely because stream.id is yours. (When omitted,
the CLI mints a random v4 of its own.)
Sourcepub fn reasoning_effort(self, effort: impl Into<String>) -> Self
pub fn reasoning_effort(self, effort: impl Into<String>) -> Self
Meta reasoning effort (none|minimal|low|medium|high|xhigh|ultra).
Not supported with Provider::Echo.
pub fn base_url(self, url: impl Into<String>) -> Self
Sourcepub fn prompt_file(self, path: impl Into<PathBuf>) -> Self
pub fn prompt_file(self, path: impl Into<PathBuf>) -> Self
Read the prompt from a file (--prompt-file) instead of passing it
as an argument; the positional prompt is omitted when set.
Sourcepub fn api_key_stdin(self, enabled: bool) -> Self
pub fn api_key_stdin(self, enabled: bool) -> Self
Read the provider API key from stdin (--api-key-stdin).
Meta-provider-only (the echo provider rejects it at startup). When
set, the child’s stdin is piped instead of null — the caller writes
the key (newline-terminated) and closes it.
Sourcepub fn parallel_tool_calls(self, enabled: bool) -> Self
pub fn parallel_tool_calls(self, enabled: bool) -> Self
Meta API parallel tool calls: true → --parallel-tool-calls,
false → --no-parallel-tool-calls. Meta-provider-only (the echo
provider rejects both at startup).
Sourcepub fn agents(self, json: impl Into<String>) -> Self
pub fn agents(self, json: impl Into<String>) -> Self
One ephemeral agent-definition overlay as JSON (--agents).
Accepted by exec even though only the top-level help lists it
(verified against the binary).
Sourcepub fn image(self, path: impl Into<PathBuf>) -> Self
pub fn image(self, path: impl Into<PathBuf>) -> Self
Attach a local image file (--image, repeatable). Requires an
image-capable provider — the echo provider rejects it at startup.
Sourcepub fn workspace(self, path: impl Into<PathBuf>) -> Self
pub fn workspace(self, path: impl Into<PathBuf>) -> Self
Root policy-gated workspace tools at this path (--workspace).
Sourcepub fn worktree(self, mode: WorktreeMode) -> Self
pub fn worktree(self, mode: WorktreeMode) -> Self
Session git worktree mode (--worktree off|create|existing).
Sourcepub fn worktree_base(self, git_ref: impl Into<String>) -> Self
pub fn worktree_base(self, git_ref: impl Into<String>) -> Self
Base ref for WorktreeMode::Create (--worktree-base, default
HEAD).
Sourcepub fn worktree_existing(self, path: impl Into<PathBuf>) -> Self
pub fn worktree_existing(self, path: impl Into<PathBuf>) -> Self
Existing worktree path for WorktreeMode::Existing
(--worktree-existing).
Sourcepub fn context_compaction_strategy(self, id: impl Into<String>) -> Self
pub fn context_compaction_strategy(self, id: impl Into<String>) -> Self
Context compaction strategy id (--context-compaction-strategy,
e.g. summary-preserved-suffix/v1). Kept as a string: the ids are
versioned and the set will drift.
Sourcepub fn context_compaction_soft_threshold(self, fraction: f64) -> Self
pub fn context_compaction_soft_threshold(self, fraction: f64) -> Self
Soft compaction threshold fraction
(--context-compaction-soft-threshold).
Sourcepub fn context_compaction_hard_threshold(self, fraction: f64) -> Self
pub fn context_compaction_hard_threshold(self, fraction: f64) -> Self
Hard compaction threshold fraction
(--context-compaction-hard-threshold).
Sourcepub fn max_model_steps(self, steps: u64) -> Self
pub fn max_model_steps(self, steps: u64) -> Self
Cap the number of model steps (--max-model-steps).
Sourcepub fn max_tool_output_bytes(self, bytes: u64) -> Self
pub fn max_tool_output_bytes(self, bytes: u64) -> Self
Cap tool output bytes fed back to the model
(--max-tool-output-bytes).
Sourcepub fn allow_workspace_switch(self, enabled: bool) -> Self
pub fn allow_workspace_switch(self, enabled: bool) -> Self
Allow switching the workspace mid-run (--allow-workspace-switch).
The CLI requires MuseExecBuilder::session_id alongside it
(verified: rejected at startup otherwise).
Sourcepub fn user_input_auto_resolve(self, enabled: bool) -> Self
pub fn user_input_auto_resolve(self, enabled: bool) -> Self
Offer request_user_input and auto-cancel prompts in headless runs
(--user-input-auto-resolve).
Sourcepub fn subagent_worktree_isolation(self, enabled: bool) -> Self
pub fn subagent_worktree_isolation(self, enabled: bool) -> Self
Compatibility flag for subagent worktree isolation
(--subagent-worktree-isolation); the capability defaults on.
Sourcepub fn disable_web_tools(self, disabled: bool) -> Self
pub fn disable_web_tools(self, disabled: bool) -> Self
Disable web tools for this run (--disable-web-tools).
Sourcepub fn no_foreign_personal_context(self, excluded: bool) -> Self
pub fn no_foreign_personal_context(self, excluded: bool) -> Self
Exclude foreign personal rules and skills
(--no-foreign-personal-context).
Sourcepub fn no_session_log(self, disabled: bool) -> Self
pub fn no_session_log(self, disabled: bool) -> Self
Do not persist session event logs to disk (--no-session-log).
Conflicts with MuseExecBuilder::session_id: the CLI rejects the
pair at startup (“a session id needs retained logging” — verified),
which also means multi-turn continuity requires the log.
Sourcepub fn yolo(self, enabled: bool) -> Self
pub fn yolo(self, enabled: bool) -> Self
Disable approval and sandbox and trust this workspace for the run
(--yolo).
Sourcepub fn trust_workspace(self, trusted: bool) -> Self
pub fn trust_workspace(self, trusted: bool) -> Self
Load this workspace’s skills and rules for the run
(--trust-workspace).
Sourcepub fn disable_approval(self, disabled: bool) -> Self
pub fn disable_approval(self, disabled: bool) -> Self
Disable tool approval prompts for the run (--disable-approval).
Sourcepub fn disable_sandbox(self, disabled: bool) -> Self
pub fn disable_sandbox(self, disabled: bool) -> Self
Disable shell filesystem/network sandboxing for the run
(--disable-sandbox).
Sourcepub fn sandbox_network(self, mode: impl Into<String>) -> Self
pub fn sandbox_network(self, mode: impl Into<String>) -> Self
Sandbox network mode (--sandbox-network, default proxy-only).
Kept as a string: the help names no closed set of modes.
Sourcepub fn disable_write(self, disabled: bool) -> Self
pub fn disable_write(self, disabled: bool) -> Self
Disable non-shell workspace filesystem writes (--disable-write).
Sourcepub fn disable_shell(self, disabled: bool) -> Self
pub fn disable_shell(self, disabled: bool) -> Self
Disable workspace shell execution (--disable-shell).
Sourcepub fn enable_shell_tool(self, enabled: bool) -> Self
pub fn enable_shell_tool(self, enabled: bool) -> Self
Use the legacy shell tool instead of managed bash
(--enable-shell-tool).
Sourcepub fn extra_args<I, S>(self, args: I) -> Self
pub fn extra_args<I, S>(self, args: I) -> Self
Raw argument passthrough for flags this builder does not model (mirrors codex-codes). Appended AFTER every typed flag and BEFORE the positional prompt, so callers relaying user-supplied tokens (e.g. a launch dialog’s extra-args box) need no flag parser of their own. Prefer the typed setters when one exists.
pub fn working_directory(self, dir: impl Into<PathBuf>) -> Self
pub fn env(self, key: impl Into<String>, value: impl Into<String>) -> Self
Sourcepub fn build_command(&self) -> Result<Command>
pub fn build_command(&self) -> Result<Command>
Resolve the binary and assemble the command with piped stdio.
Trait Implementations§
Source§impl Clone for MuseExecBuilder
impl Clone for MuseExecBuilder
Source§fn clone(&self) -> MuseExecBuilder
fn clone(&self) -> MuseExecBuilder
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MuseExecBuilder
impl Debug for MuseExecBuilder
Source§impl Default for MuseExecBuilder
impl Default for MuseExecBuilder
Source§fn default() -> Self
fn default() -> Self
An empty-prompt builder resolving muse from PATH; use
MuseExecBuilder::new (or MuseExecBuilder::prompt_file) to
supply the prompt.