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: StringOptional 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: StringKey into the model_providers map that specifies which provider to use.
model_provider: ModelProviderInfoInfo needed to make an API request to the model.
approval_policy: AskForApprovalApproval policy for executing commands.
sandbox_policy: SandboxPolicy§shell_environment_policy: ShellEnvironmentPolicy§hide_agent_reasoning: boolWhen 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: boolWhen set to true, AgentReasoningRawContentEvent events will be shown in the UI/output.
Defaults to false.
disable_response_storage: boolDisable 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: PathBufThe 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: usizeMaximum number of bytes to include from an AGENTS.md project doc file.
codex_home: PathBufDirectory containing all Codex state (defaults to ~/.agcodex but can be
overridden by the CODEX_HOME environment variable).
history: HistorySettings that govern if and what will be written to ~/.agcodex/history.jsonl.
file_opener: UriBasedFileOpenerOptional URI-based file opener. If set, citations to files in the model output will be hyperlinked using the specified URI scheme.
tui: TuiCollection 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: ReasoningEffortValue to use for reasoning.effort when making a request using the
Responses API.
model_reasoning_summary: ReasoningSummaryIf not “none”, the value to use for reasoning.summary when making a
request using the Responses API.
chatgpt_base_url: StringBase 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: boolInclude an experimental plan tool that the model can use to update its current plan and status of each step.
include_apply_patch_tool: boolInclude 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: StringThe value for the originator header included with Responses API requests.
preferred_auth_method: AuthModeIf set to true, the API key will be signed with the originator header.
Implementations§
Source§impl Config
impl Config
Sourcepub fn load_with_cli_overrides(
cli_overrides: Vec<(String, TomlValue)>,
overrides: ConfigOverrides,
) -> Result<Self>
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
impl Config
Sourcepub fn load_from_base_config_with_overrides(
cfg: ConfigToml,
overrides: ConfigOverrides,
codex_home: PathBuf,
) -> Result<Self>
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§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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