Skip to main content

CodexBuilder

Struct CodexBuilder 

Source
pub struct CodexBuilder { /* private fields */ }
Expand description

Builder for creating a Codex client.

All options are optional. By default the builder discovers the codex binary via PATH.

Implementations§

Source§

impl CodexBuilder

Source

pub fn tested_cli_version_range(self, min: CliVersion, max: CliVersion) -> Self

Override the tested-against CLI version range.

Defaults to the range this crate declares and verifies in CI. Set this only when you have validated a different range yourself; widening it does not make the wrapper work against versions it was not tested on.

Source

pub fn binary(self, path: impl Into<PathBuf>) -> Self

Set an explicit path to the codex binary (skips PATH lookup).

Source

pub fn working_dir(self, path: impl Into<PathBuf>) -> Self

Set the working directory for all commands.

Source

pub fn env(self, key: impl Into<String>, value: impl Into<String>) -> Self

Set a single environment variable for child processes.

Source

pub fn envs( self, vars: impl IntoIterator<Item = (impl Into<String>, impl Into<String>)>, ) -> Self

Set multiple environment variables for child processes.

Source

pub fn clear_env(self) -> Self

Clear the inherited environment before applying variables supplied by env and envs.

By default, child processes inherit the wrapper process’s environment. This opt-in is call-order independent: explicit variables survive whether they are added before or after clear_env.

This controls the direct Codex child’s environment. It is not OS or same-user isolation: the child can still access files, process metadata, sockets, and other resources allowed to its user and sandbox.

Source

pub fn timeout_secs(self, seconds: u64) -> Self

Set the command timeout in seconds.

Source

pub fn timeout(self, duration: Duration) -> Self

Set the command timeout as a Duration.

Source

pub fn termination_grace(self, duration: Duration) -> Self

How long a cancelled run’s process group gets to exit before it is killed. Defaults to five seconds.

Applies to run_codex_cancellable, which sends SIGTERM, waits this long, then sends SIGKILL. A dropped future does not use it: Drop cannot wait, so it kills immediately.

Source

pub fn process_group(self, enabled: bool) -> Self

Whether each run gets its own process group. On by default.

With a group of its own, cancelling a run reaches the subprocesses codex spawned for tool use, not just codex itself (#78). That is the right contract for a supervisor that cancels programmatically.

Opting out puts the child in the parent’s group, so a terminal Ctrl-C reaches the whole run directly. Then a wrapper-side kill reaches only the direct child, and its subprocesses survive. That is the right contract for a terminal-attached host that shells out synchronously and treats the terminal as the supervisor.

Matches claude-wrapper’s option of the same name. No effect on non-unix targets, which have no process groups.

Source

pub fn arg(self, arg: impl Into<String>) -> Self

Append a raw global argument passed before any subcommand.

When an exec command has a typed rollout budget, conflicting global --enable/--disable rollout_budget arguments are suppressed at final assembly. Codex applies feature toggles after config regardless of argv order, so retaining one could silently defeat the typed protection.

Source

pub fn config(self, key_value: impl Into<String>) -> Self

Add a global config override (-c key=value).

Source

pub fn enable(self, feature: impl Into<String>) -> Self

Enable a feature flag globally (--enable <name>).

A rollout_budget toggle is suppressed for an exec command that has a typed RolloutBudgetConfig.

Source

pub fn disable(self, feature: impl Into<String>) -> Self

Disable a feature flag globally (--disable <name>).

A rollout_budget toggle is suppressed for an exec command that has a typed RolloutBudgetConfig.

Source

pub fn retry(self, policy: RetryPolicy) -> Self

Set a default RetryPolicy for all commands.

Source

pub fn build(self) -> Result<Codex>

Build the Codex client.

Returns Error::NotFound if no binary path was set and codex is not found in PATH.

Trait Implementations§

Source§

impl Debug for CodexBuilder

Source§

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

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

impl Default for CodexBuilder

Source§

fn default() -> CodexBuilder

Returns the “default value” for a type. 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more