diff --git a/hermes_cli/auth.py b/hermes_cli/auth.py index f087062b006..6f4fc344636 100644 --- a/hermes_cli/auth.py +++ b/hermes_cli/auth.py @@ -197,6 +197,14 @@ PROVIDER_REGISTRY: Dict[str, ProviderConfig] = { auth_type="oauth_external", inference_base_url=DEFAULT_CODEX_BASE_URL, ), + "openai-api": ProviderConfig( + id="openai-api", + name="OpenAI API", + auth_type="api_key", + inference_base_url="https://api.openai.com/v1", + api_key_env_vars=("OPENAI_API_KEY",), + base_url_env_var="OPENAI_BASE_URL", + ), "xai-oauth": ProviderConfig( id="xai-oauth", name="xAI Grok OAuth (SuperGrok / Premium+)", diff --git a/hermes_cli/main.py b/hermes_cli/main.py index 2a6fb9e4435..393a7bc0dc4 100644 --- a/hermes_cli/main.py +++ b/hermes_cli/main.py @@ -2412,6 +2412,7 @@ def select_provider_and_model(args=None): elif selected_provider == "azure-foundry": _model_flow_azure_foundry(config, current_model) elif selected_provider in { + "openai-api", "gemini", "deepseek", "xai", diff --git a/hermes_cli/models.py b/hermes_cli/models.py index 3ef4f04ecf2..ee4da1f3fad 100644 --- a/hermes_cli/models.py +++ b/hermes_cli/models.py @@ -199,6 +199,16 @@ _PROVIDER_MODELS: dict[str, list[str]] = { "gpt-4o", "gpt-4o-mini", ], + "openai-api": [ + "gpt-5.5", + "gpt-5.4", + "gpt-5.4-mini", + "gpt-5.4-nano", + "gpt-5-mini", + "gpt-4.1", + "gpt-4o", + "gpt-4o-mini", + ], "openai-codex": _codex_curated_models(), "xai-oauth": _xai_curated_models(), "copilot-acp": [ @@ -928,6 +938,7 @@ CANONICAL_PROVIDERS: list[ProviderEntry] = [ ProviderEntry("lmstudio", "LM Studio", "LM Studio (local desktop app with built-in model server)"), ProviderEntry("anthropic", "Anthropic", "Anthropic (Claude models — API key or Claude Code)"), ProviderEntry("openai-codex", "OpenAI Codex", "OpenAI Codex"), + ProviderEntry("openai-api", "OpenAI API", "OpenAI API (api.openai.com, API key)"), ProviderEntry("alibaba", "Qwen Cloud", "Qwen Cloud / DashScope Coding (Qwen + multi-provider)"), ProviderEntry("xai-oauth", "xAI Grok OAuth (SuperGrok / Premium+)", "xAI Grok OAuth (SuperGrok / Premium+)"), ProviderEntry("xiaomi", "Xiaomi MiMo", "Xiaomi MiMo (MiMo-V2.5 and V2 models — pro, omni, flash)"), diff --git a/hermes_cli/providers.py b/hermes_cli/providers.py index e3cf87c8a2a..2490bad802a 100644 --- a/hermes_cli/providers.py +++ b/hermes_cli/providers.py @@ -60,6 +60,11 @@ HERMES_OVERLAYS: Dict[str, HermesOverlay] = { auth_type="oauth_external", base_url_override="https://chatgpt.com/backend-api/codex", ), + "openai-api": HermesOverlay( + transport="codex_responses", + base_url_override="https://api.openai.com/v1", + base_url_env_var="OPENAI_BASE_URL", + ), "xai-oauth": HermesOverlay( transport="codex_responses", auth_type="oauth_external",