Skip to main content

codex/
codex_options.rs

1use std::collections::HashMap;
2
3use serde_json::{Map, Value};
4
5/// JSON value accepted by `CodexOptions::config`.
6pub type CodexConfigValue = Value;
7/// Root object type accepted by `CodexOptions::config`.
8pub type CodexConfigObject = Map<String, Value>;
9
10/// Options for constructing a [`crate::Codex`] client.
11#[derive(Debug, Clone, Default)]
12pub struct CodexOptions {
13    /// Absolute path to the `codex` executable.
14    ///
15    /// When omitted, the SDK searches `PATH`, local `node_modules`, vendor
16    /// binaries, and common global install locations.
17    pub codex_path_override: Option<String>,
18    /// Overrides `OPENAI_BASE_URL` for Codex CLI requests.
19    pub base_url: Option<String>,
20    /// Overrides `CODEX_API_KEY` for Codex CLI requests.
21    pub api_key: Option<String>,
22    /// Additional `--config key=value` overrides for the Codex CLI.
23    pub config: Option<CodexConfigObject>,
24    /// Environment variables passed to the Codex CLI process.
25    ///
26    /// When provided, the SDK does not inherit `std::env`.
27    pub env: Option<HashMap<String, String>>,
28}