Codex.Models (Codex SDK v0.6.0)

Copy Markdown View Source

Known Codex models and their defaults.

Summary

Functions

Coerces a reasoning effort to the nearest supported value for a model.

Returns the SDK default model, honoring environment overrides when present.

Returns the default reasoning effort for the given model (or the default model).

Returns the description for a model, if known.

Returns the display name for a model, if known.

Returns the upgrade information for a model, if available.

Returns the list of supported models visible for the inferred auth mode.

Returns models visible in the model picker.

Parses a reasoning effort value into its canonical atom form.

Renders a normalized reasoning effort as the CLI-friendly string value.

Lists the valid reasoning effort values understood by the SDK.

Returns true if a model is supported via API key authentication.

Returns the supported reasoning efforts for a model.

Returns true when the given model supports tool execution.

Types

apply_patch_tool_type()

@type apply_patch_tool_type() :: :freeform | :function

client_version()

@type client_version() :: {non_neg_integer(), non_neg_integer(), non_neg_integer()}

model_info()

@type model_info() :: %{
  slug: String.t(),
  display_name: String.t(),
  description: String.t() | nil,
  default_reasoning_level: reasoning_effort(),
  supported_reasoning_levels: [reasoning_effort_preset()],
  shell_type: shell_tool_type(),
  visibility: model_visibility(),
  minimal_client_version: client_version(),
  supported_in_api: boolean(),
  priority: integer(),
  upgrade: String.t() | nil,
  base_instructions: String.t() | nil,
  supports_reasoning_summaries: boolean(),
  support_verbosity: boolean(),
  default_verbosity: verbosity() | nil,
  apply_patch_tool_type: apply_patch_tool_type() | nil,
  truncation_policy: truncation_policy(),
  supports_parallel_tool_calls: boolean(),
  context_window: non_neg_integer() | nil,
  reasoning_summary_format: reasoning_summary_format(),
  experimental_supported_tools: [String.t()]
}

model_preset()

@type model_preset() :: %{
  id: String.t(),
  model: String.t(),
  display_name: String.t(),
  description: String.t(),
  default_reasoning_effort: reasoning_effort(),
  supported_reasoning_efforts: [reasoning_effort_preset()],
  is_default: boolean(),
  upgrade: model_upgrade() | nil,
  show_in_picker: boolean(),
  supported_in_api: boolean()
}

model_upgrade()

@type model_upgrade() :: %{
  id: String.t(),
  reasoning_effort_mapping:
    %{required(reasoning_effort()) => reasoning_effort()} | nil,
  migration_config_key: String.t(),
  model_link: String.t() | nil,
  upgrade_copy: String.t() | nil
}

model_visibility()

@type model_visibility() :: :list | :hide | :none

reasoning_effort()

@type reasoning_effort() :: :none | :minimal | :low | :medium | :high | :xhigh

reasoning_effort_preset()

@type reasoning_effort_preset() :: %{
  effort: reasoning_effort(),
  description: String.t()
}

reasoning_summary_format()

@type reasoning_summary_format() :: :none | :experimental

shell_tool_type()

@type shell_tool_type() ::
  :default | :local | :unified_exec | :disabled | :shell_command

truncation_policy()

@type truncation_policy() :: %{mode: :bytes | :tokens, limit: non_neg_integer()}

verbosity()

@type verbosity() :: :low | :medium | :high

Functions

coerce_reasoning_effort(model, effort)

@spec coerce_reasoning_effort(String.t() | atom() | nil, reasoning_effort() | nil) ::
  reasoning_effort() | nil

Coerces a reasoning effort to the nearest supported value for a model.

Returns the input effort unchanged when the model is unknown or already supports it.

default_model(auth_mode \\ Auth.infer_auth_mode())

@spec default_model(:api | :chatgpt) :: String.t()

Returns the SDK default model, honoring environment overrides when present.

default_reasoning_effort(model \\ default_model())

@spec default_reasoning_effort(String.t() | atom() | nil) :: reasoning_effort() | nil

Returns the default reasoning effort for the given model (or the default model).

description(model_id)

@spec description(String.t() | atom()) :: String.t() | nil

Returns the description for a model, if known.

display_name(model_id)

@spec display_name(String.t() | atom()) :: String.t() | nil

Returns the display name for a model, if known.

get_upgrade(model_id)

@spec get_upgrade(String.t()) :: model_upgrade() | nil

Returns the upgrade information for a model, if available.

list()

@spec list() :: [model_preset(), ...]

Returns the list of supported models visible for the inferred auth mode.

list_visible(auth_mode \\ :api, opts \\ [])

@spec list_visible(
  :api | :chatgpt,
  keyword()
) :: [model_preset()]

Returns models visible in the model picker.

If auth_mode is :api, only include supported_in_api models.

normalize_reasoning_effort(value)

@spec normalize_reasoning_effort(String.t() | atom() | nil) ::
  {:ok, reasoning_effort() | nil} | {:error, term()}

Parses a reasoning effort value into its canonical atom form.

reasoning_effort_to_string(effort)

@spec reasoning_effort_to_string(reasoning_effort()) :: String.t()

Renders a normalized reasoning effort as the CLI-friendly string value.

reasoning_efforts()

@spec reasoning_efforts() :: [reasoning_effort(), ...]

Lists the valid reasoning effort values understood by the SDK.

supported_in_api?(model_id)

@spec supported_in_api?(String.t()) :: boolean()

Returns true if a model is supported via API key authentication.

supported_reasoning_efforts(model_id)

@spec supported_reasoning_efforts(String.t()) :: [reasoning_effort_preset()]

Returns the supported reasoning efforts for a model.

tool_enabled?(model)

@spec tool_enabled?(String.t() | atom() | nil) :: boolean()

Returns true when the given model supports tool execution.