CodexWrapper.Config (CodexWrapper v0.5.8)

Copy Markdown View Source

Shared client configuration for the Codex CLI.

Holds binary path, working directory, environment variables, and default options that apply across all commands.

Usage

config = CodexWrapper.Config.new()
config = CodexWrapper.Config.new(working_dir: "/path/to/project")

Summary

Functions

Build the base command args from config (global flags).

Build the cmd options (working dir, env) for System.cmd.

Find the codex binary path.

Create a new config from keyword options.

Build the runner options for a streaming run.

Types

t()

@type t() :: %CodexWrapper.Config{
  binary: String.t(),
  env: [{String.t(), String.t()}],
  idle_timeout_ms: pos_integer() | nil,
  timeout: pos_integer() | nil,
  verbose: boolean(),
  working_dir: String.t() | nil
}

Functions

base_args(config)

@spec base_args(t()) :: [String.t()]

Build the base command args from config (global flags).

Currently always empty. Raises ArgumentError if verbose: true was set on a directly constructed or updated struct.

cmd_opts(config)

@spec cmd_opts(t()) :: keyword()

Build the cmd options (working dir, env) for System.cmd.

find_binary()

@spec find_binary() :: String.t()

Find the codex binary path.

Checks in order:

  1. CODEX_CLI environment variable
  2. System PATH

new(opts \\ [])

@spec new(keyword()) :: t()

Create a new config from keyword options.

Options

  • :binary - Path to the codex binary (default: auto-discover)
  • :working_dir - Working directory for the subprocess
  • :env - List of {key, value} environment variable tuples
  • :timeout - Whole-command timeout in milliseconds for streaming runs
  • :idle_timeout_ms - Maximum gap between output frames while streaming (default: 300,000 ms)
  • :verbose - Compatibility option. Only false is supported; true raises ArgumentError before the CLI is launched, because the Codex CLI does not define a --verbose flag

stream_opts(config)

@spec stream_opts(t()) :: keyword()

Build the runner options for a streaming run.

Same shape as cmd_opts/1 but with stderr_to_stdout: false: the streaming paths parse NDJSON off stdout, and merging stderr into it would put unparseable lines in the stream. Stderr is left to flow to the parent's stderr.