pub struct ExecCommand { /* private fields */ }Expand description
Run Codex non-interactively (codex exec <prompt>).
This is the primary command for programmatic use. It supports the full range of exec flags: model selection, sandbox policy, approval policy, images, config overrides, feature flags, JSON output, and more.
§Example
use codex_wrapper::{Codex, CodexCommand, ExecCommand, SandboxMode};
let codex = Codex::builder().build()?;
let output = ExecCommand::new("fix the failing test")
.model("o3")
.sandbox(SandboxMode::WorkspaceWrite)
.ephemeral()
.execute(&codex)
.await?;
println!("{}", output.stdout);Implementations§
Source§impl ExecCommand
impl ExecCommand
Sourcepub fn from_stdin() -> Self
pub fn from_stdin() -> Self
Read the prompt from stdin (-).
Sourcepub fn config(self, key_value: impl Into<String>) -> Self
pub fn config(self, key_value: impl Into<String>) -> Self
Override a config key (-c key=value).
May be called multiple times to set several keys.
Sourcepub fn enable(self, feature: impl Into<String>) -> Self
pub fn enable(self, feature: impl Into<String>) -> Self
Enable an optional feature flag (--enable <feature>).
May be called multiple times.
Sourcepub fn disable(self, feature: impl Into<String>) -> Self
pub fn disable(self, feature: impl Into<String>) -> Self
Disable an optional feature flag (--disable <feature>).
May be called multiple times.
Sourcepub fn image(self, path: impl Into<String>) -> Self
pub fn image(self, path: impl Into<String>) -> Self
Attach an image to the prompt (--image <path>).
May be called multiple times to attach several images.
Sourcepub fn model(self, model: impl Into<String>) -> Self
pub fn model(self, model: impl Into<String>) -> Self
Set the model to use (--model <model>).
Panics if model is an empty string.
Sourcepub fn local_provider(self, provider: impl Into<String>) -> Self
pub fn local_provider(self, provider: impl Into<String>) -> Self
Use a local model provider (--local-provider <provider>).
Sourcepub fn sandbox(self, sandbox: SandboxMode) -> Self
pub fn sandbox(self, sandbox: SandboxMode) -> Self
Set the sandbox policy (--sandbox <mode>).
Sourcepub fn approval_policy(self, policy: ApprovalPolicy) -> Self
pub fn approval_policy(self, policy: ApprovalPolicy) -> Self
Set the approval policy (--ask-for-approval <policy>).
Sourcepub fn profile(self, profile: impl Into<String>) -> Self
pub fn profile(self, profile: impl Into<String>) -> Self
Select a named configuration profile (--profile <name>).
Sourcepub fn dangerously_bypass_approvals_and_sandbox(self) -> Self
pub fn dangerously_bypass_approvals_and_sandbox(self) -> Self
Bypass all approval prompts and sandbox restrictions.
Passes --dangerously-bypass-approvals-and-sandbox. Use with caution.
Sourcepub fn cd(self, dir: impl Into<String>) -> Self
pub fn cd(self, dir: impl Into<String>) -> Self
Change the working directory before running (--cd <dir>).
Sourcepub fn skip_git_repo_check(self) -> Self
pub fn skip_git_repo_check(self) -> Self
Skip the git repository check (--skip-git-repo-check).
Sourcepub fn add_dir(self, dir: impl Into<String>) -> Self
pub fn add_dir(self, dir: impl Into<String>) -> Self
Add an extra directory to the context (--add-dir <dir>).
May be called multiple times.
Sourcepub fn output_schema(self, path: impl Into<String>) -> Self
pub fn output_schema(self, path: impl Into<String>) -> Self
Require output to conform to a JSON schema (--output-schema <path>).
Sourcepub fn progress_cursor(self) -> Self
pub fn progress_cursor(self) -> Self
Show a progress cursor while the command runs (--progress-cursor).
Sourcepub fn json(self) -> Self
pub fn json(self) -> Self
Emit JSON Lines output (--json).
When set, stdout will contain one JSON object per line. Use
execute_json_lines to parse the
events automatically (requires the json feature).
Sourcepub fn output_last_message(self, path: impl Into<String>) -> Self
pub fn output_last_message(self, path: impl Into<String>) -> Self
Write the last assistant message to a file (--output-last-message <path>).
Sourcepub fn retry(self, policy: RetryPolicy) -> Self
pub fn retry(self, policy: RetryPolicy) -> Self
Override the retry policy for this command.
Takes precedence over the client-level policy set on Codex.
Sourcepub async fn stream<F>(&self, codex: &Codex, handler: F) -> Result<()>where
F: FnMut(JsonLineEvent),
pub async fn stream<F>(&self, codex: &Codex, handler: F) -> Result<()>where
F: FnMut(JsonLineEvent),
Stream JSONL events from the command, invoking handler for each
parsed JsonLineEvent as it arrives.
Automatically appends --json if not already set. Requires the json
feature.
§Example
use codex_wrapper::{Codex, ExecCommand, JsonLineEvent};
let codex = Codex::builder().build()?;
ExecCommand::new("what is 2+2?")
.ephemeral()
.stream(&codex, |event: JsonLineEvent| {
println!("{}: {:?}", event.event_type, event.extra);
})
.await?;Sourcepub async fn execute_json_lines(
&self,
codex: &Codex,
) -> Result<Vec<JsonLineEvent>>
pub async fn execute_json_lines( &self, codex: &Codex, ) -> Result<Vec<JsonLineEvent>>
Execute the command and parse the output as JSON Lines events.
Automatically appends --json if not already set. Requires the json
feature.
Trait Implementations§
Source§impl Clone for ExecCommand
impl Clone for ExecCommand
Source§fn clone(&self) -> ExecCommand
fn clone(&self) -> ExecCommand
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more