Config

Struct Config 

Source
pub struct Config {
Show 32 fields pub model: String, pub model_family: ModelFamily, pub model_context_window: Option<u64>, pub model_max_output_tokens: Option<u64>, pub model_provider_id: String, pub model_provider: ModelProviderInfo, pub approval_policy: AskForApproval, pub sandbox_policy: SandboxPolicy, pub shell_environment_policy: ShellEnvironmentPolicy, pub hide_agent_reasoning: bool, pub show_raw_agent_reasoning: bool, pub disable_response_storage: bool, pub user_instructions: Option<String>, pub base_instructions: Option<String>, pub notify: Option<Vec<String>>, pub cwd: PathBuf, pub mcp_servers: HashMap<String, McpServerConfig>, pub model_providers: HashMap<String, ModelProviderInfo>, pub project_doc_max_bytes: usize, pub codex_home: PathBuf, pub history: History, pub file_opener: UriBasedFileOpener, pub tui: Tui, pub codex_linux_sandbox_exe: Option<PathBuf>, pub model_reasoning_effort: ReasoningEffort, pub model_reasoning_summary: ReasoningSummary, pub chatgpt_base_url: String, pub experimental_resume: Option<PathBuf>, pub include_plan_tool: bool, pub include_apply_patch_tool: bool, pub responses_originator_header: String, pub preferred_auth_method: AuthMode,
}
Expand description

Application configuration loaded from disk and merged with overrides.

Fields§

§model: String

Optional override of model selection.

§model_family: ModelFamily§model_context_window: Option<u64>

Size of the context window for the model, in tokens.

§model_max_output_tokens: Option<u64>

Maximum number of output tokens.

§model_provider_id: String

Key into the model_providers map that specifies which provider to use.

§model_provider: ModelProviderInfo

Info needed to make an API request to the model.

§approval_policy: AskForApproval

Approval policy for executing commands.

§sandbox_policy: SandboxPolicy§shell_environment_policy: ShellEnvironmentPolicy§hide_agent_reasoning: bool

When true, AgentReasoning events emitted by the backend will be suppressed from the frontend output. This can reduce visual noise when users are only interested in the final agent responses.

§show_raw_agent_reasoning: bool

When set to true, AgentReasoningRawContentEvent events will be shown in the UI/output. Defaults to false.

§disable_response_storage: bool

Disable server-side response storage (sends the full conversation context with every request). Currently necessary for OpenAI customers who have opted into Zero Data Retention (ZDR).

§user_instructions: Option<String>

User-provided instructions from AGENTS.md.

§base_instructions: Option<String>

Base instructions override.

§notify: Option<Vec<String>>

Optional external notifier command. When set, Codex will spawn this program after each completed turn (i.e. when the agent finishes processing a user submission). The value must be the full command broken into argv tokens without the trailing JSON argument - Codex appends one extra argument containing a JSON payload describing the event.

Example ~/.agcodex/config.toml snippet:

notify = ["notify-send", "Codex"]

which will be invoked as:

notify-send Codex '{"type":"agent-turn-complete","turn-id":"12345"}'

If unset the feature is disabled.

§cwd: PathBuf

The directory that should be treated as the current working directory for the session. All relative paths inside the business-logic layer are resolved against this path.

§mcp_servers: HashMap<String, McpServerConfig>

Definition for MCP servers that Codex can reach out to for tool calls.

§model_providers: HashMap<String, ModelProviderInfo>

Combined provider map (defaults merged with user-defined overrides).

§project_doc_max_bytes: usize

Maximum number of bytes to include from an AGENTS.md project doc file.

§codex_home: PathBuf

Directory containing all Codex state (defaults to ~/.agcodex but can be overridden by the CODEX_HOME environment variable).

§history: History

Settings that govern if and what will be written to ~/.agcodex/history.jsonl.

§file_opener: UriBasedFileOpener

Optional URI-based file opener. If set, citations to files in the model output will be hyperlinked using the specified URI scheme.

§tui: Tui

Collection of settings that are specific to the TUI.

§codex_linux_sandbox_exe: Option<PathBuf>

Path to the codex-linux-sandbox executable. This must be set if crate::exec::SandboxType::LinuxSeccomp is used. Note that this cannot be set in the config file: it must be set in code via ConfigOverrides.

When this program is invoked, arg0 will be set to codex-linux-sandbox.

§model_reasoning_effort: ReasoningEffort

Value to use for reasoning.effort when making a request using the Responses API.

§model_reasoning_summary: ReasoningSummary

If not “none”, the value to use for reasoning.summary when making a request using the Responses API.

§chatgpt_base_url: String

Base URL for requests to ChatGPT (as opposed to the OpenAI API).

§experimental_resume: Option<PathBuf>

Experimental rollout resume path (absolute path to .jsonl; undocumented).

§include_plan_tool: bool

Include an experimental plan tool that the model can use to update its current plan and status of each step.

§include_apply_patch_tool: bool

Include the apply_patch tool for models that benefit from invoking file edits as a structured tool call. When unset, this falls back to the model family’s default preference.

§responses_originator_header: String

The value for the originator header included with Responses API requests.

§preferred_auth_method: AuthMode

If set to true, the API key will be signed with the originator header.

Implementations§

Source§

impl Config

Source

pub fn load_with_cli_overrides( cli_overrides: Vec<(String, TomlValue)>, overrides: ConfigOverrides, ) -> Result<Self>

Load configuration with generic CLI overrides (-c key=value) applied in between the values parsed from config.toml and the strongly-typed overrides specified via ConfigOverrides.

The precedence order is therefore: config.toml < -c overrides < ConfigOverrides.

Source§

impl Config

Source

pub fn load_from_base_config_with_overrides( cfg: ConfigToml, overrides: ConfigOverrides, codex_home: PathBuf, ) -> Result<Self>

Meant to be used exclusively for tests: load_with_overrides() should be used in all other cases.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

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

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

impl PartialEq for Config

Source§

fn eq(&self, other: &Config) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Config

Auto Trait Implementations§

§

impl Freeze for Config

§

impl RefUnwindSafe for Config

§

impl Send for Config

§

impl Sync for Config

§

impl Unpin for Config

§

impl UnwindSafe for Config

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Send + Sync>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> Fruit for T
where T: Send + Downcast,