pub struct RunRequest {Show 13 fields
pub prompt: String,
pub cwd: PathBuf,
pub model: Option<String>,
pub timeout: Duration,
pub env_remove: Vec<OsString>,
pub json_schema: Option<Value>,
pub tool_policy: ToolPolicy,
pub mcp_servers: Vec<McpServer>,
pub env: Vec<(OsString, OsString)>,
pub system_prompt: Option<String>,
pub persist_session: bool,
pub resume: Option<String>,
pub on_event: Option<EventHandler>,
}Expand description
A single, fresh CLI run.
Build it with struct update syntax so new optional fields do not break callers:
RunRequest { prompt, cwd, ..RunRequest::default() }.
Fields§
§prompt: String§cwd: PathBuf§model: Option<String>Model ID for the chosen provider, or None for its configured default.
timeout: Duration§env_remove: Vec<OsString>Environment variable names to remove from the child only.
json_schema: Option<Value>Optional JSON Schema. Claude and Codex enforce it; Devin and OpenCode leave validation to the caller.
tool_policy: ToolPolicyWhich tools the agent may use.
mcp_servers: Vec<McpServer>MCP servers for this run. Claude and Codex only; with a policy other than
ToolPolicy::Default, MCP servers from the user’s own CLI configuration are ignored.
env: Vec<(OsString, OsString)>Extra environment variables for the child only, set after env_remove is applied.
system_prompt: Option<String>Instructions appended to the CLI’s own system prompt (Claude: --append-system-prompt,
Codex: developer_instructions). Devin and OpenCode receive it before the prompt.
persist_session: boolKeep the CLI’s session so a later run can resume it (default: ephemeral, as before 0.4).
resume: Option<String>Continue the session returned earlier in RunResult::session_id. Implies persistence.
Claude and Codex resume in the same cwd; OpenCode by id; Devin rejects it.
on_event: Option<EventHandler>Called with progress while the run goes on (Claude streams text; Codex and OpenCode report whole messages and tool calls; Devin reports nothing).