Add the two GPT-5.4 variants exposed by OpenAI's API (source: https://developers.openai.com/api/docs/models/gpt-5.4 and https://developers.openai.com/api/docs/models/gpt-5.4-mini): - **gpt-5.4** — frontier tier, 1,050,000 context window, 128k max output, $2.50 / input MTok, $15.00 / output MTok. - **gpt-5.4-mini** — balanced tier (matching the naming convention used by `gpt-5-mini`, `gpt-4.1-mini`, etc.), 400,000 context window, 128k max output, $0.75 / input MTok, $4.50 / output MTok. Ordered right after the GPT-5.2 family and before the Codex variants section to keep the frontier-GPT chain in release order. Addresses librefang/librefang-registry#65 — the original request filed these under the `codex-cli` provider, but Codex CLI's upstream `models.json` doesn't list `gpt-5.4-mini` (only the full `gpt-5.4` slug is list-visible there, and it's already tracked in `providers/codex-cli.toml`). The correct home for OpenAI-API-direct access is this file; users who want `gpt-5.4-mini` should configure `provider = "openai"` rather than `provider = "codex-cli"`.
211 lines
4.2 KiB
TOML
211 lines
4.2 KiB
TOML
# OpenAI — https://openai.com
|
|
# Models: 15 (including 2 Codex variants)
|
|
|
|
[provider]
|
|
id = "openai"
|
|
display_name = "OpenAI"
|
|
api_key_env = "OPENAI_API_KEY"
|
|
base_url = "https://api.openai.com/v1"
|
|
key_required = true
|
|
media_capabilities = ["image_generation", "text_to_speech"]
|
|
|
|
[[models]]
|
|
id = "gpt-4.1"
|
|
display_name = "GPT-4.1"
|
|
tier = "frontier"
|
|
context_window = 1047576
|
|
max_output_tokens = 32768
|
|
input_cost_per_m = 2.00
|
|
output_cost_per_m = 8.00
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
aliases = []
|
|
|
|
[[models]]
|
|
id = "gpt-4.1-mini"
|
|
display_name = "GPT-4.1 Mini"
|
|
tier = "balanced"
|
|
context_window = 1047576
|
|
max_output_tokens = 32768
|
|
input_cost_per_m = 0.40
|
|
output_cost_per_m = 1.60
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
aliases = []
|
|
|
|
[[models]]
|
|
id = "gpt-4.1-nano"
|
|
display_name = "GPT-4.1 Nano"
|
|
tier = "fast"
|
|
context_window = 1047576
|
|
max_output_tokens = 32768
|
|
input_cost_per_m = 0.10
|
|
output_cost_per_m = 0.40
|
|
supports_tools = true
|
|
supports_vision = false
|
|
supports_streaming = true
|
|
aliases = []
|
|
|
|
[[models]]
|
|
id = "o3"
|
|
display_name = "o3"
|
|
tier = "frontier"
|
|
context_window = 200000
|
|
max_output_tokens = 100000
|
|
input_cost_per_m = 2.0
|
|
output_cost_per_m = 8.0
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
supports_thinking = true
|
|
aliases = []
|
|
|
|
[[models]]
|
|
id = "o4-mini"
|
|
display_name = "o4-mini"
|
|
tier = "smart"
|
|
context_window = 200000
|
|
max_output_tokens = 100000
|
|
input_cost_per_m = 1.1
|
|
output_cost_per_m = 4.4
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
supports_thinking = true
|
|
aliases = []
|
|
|
|
[[models]]
|
|
id = "gpt-5"
|
|
display_name = "GPT-5"
|
|
tier = "frontier"
|
|
context_window = 400000
|
|
max_output_tokens = 128000
|
|
input_cost_per_m = 1.25
|
|
output_cost_per_m = 10.0
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
aliases = []
|
|
|
|
[[models]]
|
|
id = "gpt-5-mini"
|
|
display_name = "GPT-5 Mini"
|
|
tier = "balanced"
|
|
context_window = 400000
|
|
max_output_tokens = 128000
|
|
input_cost_per_m = 0.25
|
|
output_cost_per_m = 2.0
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
aliases = ["gpt5-mini"]
|
|
|
|
[[models]]
|
|
id = "gpt-5-nano"
|
|
display_name = "GPT-5 Nano"
|
|
tier = "fast"
|
|
context_window = 400000
|
|
max_output_tokens = 128000
|
|
input_cost_per_m = 0.05
|
|
output_cost_per_m = 0.40
|
|
supports_tools = true
|
|
supports_vision = false
|
|
supports_streaming = true
|
|
aliases = []
|
|
|
|
[[models]]
|
|
id = "gpt-5.1"
|
|
display_name = "GPT-5.1"
|
|
tier = "frontier"
|
|
context_window = 400000
|
|
max_output_tokens = 128000
|
|
input_cost_per_m = 1.25
|
|
output_cost_per_m = 10.0
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
aliases = []
|
|
|
|
[[models]]
|
|
id = "gpt-5.2"
|
|
display_name = "GPT-5.2"
|
|
tier = "frontier"
|
|
context_window = 400000
|
|
max_output_tokens = 128000
|
|
input_cost_per_m = 1.75
|
|
output_cost_per_m = 14.0
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
aliases = ["gpt5"]
|
|
|
|
[[models]]
|
|
id = "gpt-5.2-pro"
|
|
display_name = "GPT-5.2 Pro"
|
|
tier = "frontier"
|
|
context_window = 400000
|
|
max_output_tokens = 128000
|
|
input_cost_per_m = 21.0
|
|
output_cost_per_m = 168.0
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
aliases = []
|
|
|
|
[[models]]
|
|
id = "gpt-5.4"
|
|
display_name = "GPT-5.4"
|
|
tier = "frontier"
|
|
context_window = 1050000
|
|
max_output_tokens = 128000
|
|
input_cost_per_m = 2.50
|
|
output_cost_per_m = 15.0
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
aliases = []
|
|
|
|
[[models]]
|
|
id = "gpt-5.4-mini"
|
|
display_name = "GPT-5.4 Mini"
|
|
tier = "balanced"
|
|
context_window = 400000
|
|
max_output_tokens = 128000
|
|
input_cost_per_m = 0.75
|
|
output_cost_per_m = 4.50
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
aliases = []
|
|
|
|
# Codex variants (same OpenAI driver & API key)
|
|
|
|
[[models]]
|
|
id = "codex/gpt-4.1"
|
|
display_name = "GPT-4.1 (Codex)"
|
|
tier = "frontier"
|
|
context_window = 1047576
|
|
max_output_tokens = 32768
|
|
input_cost_per_m = 2.00
|
|
output_cost_per_m = 8.00
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
aliases = ["codex", "codex-4.1"]
|
|
|
|
[[models]]
|
|
id = "codex/o4-mini"
|
|
display_name = "o4-mini (Codex)"
|
|
tier = "smart"
|
|
context_window = 200000
|
|
max_output_tokens = 100000
|
|
input_cost_per_m = 1.10
|
|
output_cost_per_m = 4.40
|
|
supports_tools = true
|
|
supports_vision = true
|
|
supports_streaming = true
|
|
supports_thinking = true
|
|
aliases = ["codex-o4"]
|