From 94be91941136a69fbe078d60ece1cfaa9358bbe0 Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Thu, 13 Aug 2026 01:59:48 -0700 Subject: [PATCH] feat: rename Codex OAuth provider label to "ChatGPT or Codex Subscription" Renames the openai-codex provider's display label across the CLI (hermes model picker, provider labels), the dashboard OAuth accounts catalog, and the Desktop onboarding + settings provider pickers. Slug, aliases, and auth flows are unchanged. --- apps/desktop/src/components/onboarding/index.test.tsx | 8 ++++---- apps/desktop/src/components/onboarding/providers.tsx | 2 +- hermes_cli/models.py | 4 ++-- hermes_cli/providers.py | 2 +- hermes_cli/web_server.py | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/desktop/src/components/onboarding/index.test.tsx b/apps/desktop/src/components/onboarding/index.test.tsx index 2231f39c761d6..ad81560e096f0 100644 --- a/apps/desktop/src/components/onboarding/index.test.tsx +++ b/apps/desktop/src/components/onboarding/index.test.tsx @@ -86,13 +86,13 @@ describe('onboarding Picker', () => { const labels = screen .getAllByRole('button') .map(el => el.textContent ?? '') - .filter(text => /Nous Portal|Fireworks AI|OpenAI OAuth|MiniMax|OpenRouter/.test(text)) + .filter(text => /Nous Portal|Fireworks AI|ChatGPT or Codex|MiniMax|OpenRouter/.test(text)) const indexOf = (needle: string) => labels.findIndex(text => text.includes(needle)) expect(indexOf('Nous Portal')).toBeGreaterThanOrEqual(0) expect(indexOf('Fireworks AI')).toBeGreaterThan(indexOf('Nous Portal')) - expect(indexOf('OpenAI OAuth')).toBeGreaterThan(indexOf('Fireworks AI')) - expect(indexOf('MiniMax')).toBeGreaterThan(indexOf('OpenAI OAuth')) + expect(indexOf('ChatGPT or Codex')).toBeGreaterThan(indexOf('Fireworks AI')) + expect(indexOf('MiniMax')).toBeGreaterThan(indexOf('ChatGPT or Codex')) }) it('shows every provider directly when Nous Portal is absent', () => { @@ -101,7 +101,7 @@ describe('onboarding Picker', () => { expect(screen.getByText('Fireworks AI')).toBeTruthy() expect(screen.getByText('Anthropic API Key')).toBeTruthy() - expect(screen.getByText('OpenAI OAuth (ChatGPT)')).toBeTruthy() + expect(screen.getByText('ChatGPT or Codex Subscription')).toBeTruthy() expect(screen.queryByText('Other sign-in options')).toBeNull() expect(screen.queryByText('Recommended')).toBeNull() }) diff --git a/apps/desktop/src/components/onboarding/providers.tsx b/apps/desktop/src/components/onboarding/providers.tsx index e35b7ab3cb7d2..1240efa95e64a 100644 --- a/apps/desktop/src/components/onboarding/providers.tsx +++ b/apps/desktop/src/components/onboarding/providers.tsx @@ -5,7 +5,7 @@ import type { OAuthProvider } from '@/types/hermes' const PROVIDER_DISPLAY: Record = { nous: { order: 0, title: 'Nous Portal' }, - 'openai-codex': { order: 1, title: 'OpenAI OAuth (ChatGPT)' }, + 'openai-codex': { order: 1, title: 'ChatGPT or Codex Subscription' }, 'minimax-oauth': { order: 2, title: 'MiniMax' }, 'qwen-oauth': { order: 3, title: 'Qwen Code' }, 'xai-oauth': { order: 4, title: 'xAI Grok' }, diff --git a/hermes_cli/models.py b/hermes_cli/models.py index 5d0cc6a9783ee..838289d9fdfaa 100644 --- a/hermes_cli/models.py +++ b/hermes_cli/models.py @@ -1123,7 +1123,7 @@ CANONICAL_PROVIDERS: list[ProviderEntry] = [ ProviderEntry("novita", "NovitaAI", "NovitaAI (Cloud: Model API, Agent Sandbox, GPU Cloud)"), ProviderEntry("lmstudio", "LM Studio", "LM Studio (Local desktop app with built-in model server)"), ProviderEntry("anthropic", "Anthropic", "Anthropic (Claude models via API key or Claude Code)"), - ProviderEntry("openai-codex", "OpenAI Codex", "OpenAI Codex (Codex CLI via ChatGPT subscription or API key)"), + ProviderEntry("openai-codex", "ChatGPT or Codex Subscription", "ChatGPT or Codex Subscription (Sign in with your ChatGPT account, uses Codex models)"), ProviderEntry("openai-api", "OpenAI API", "OpenAI API (api.openai.com, API key)"), ProviderEntry("alibaba", "Qwen Cloud", "Qwen Cloud / DashScope (Qwen + multi-provider)"), ProviderEntry("xai-oauth", "xAI Grok OAuth (SuperGrok / Premium+)", "xAI Grok OAuth (SuperGrok / Premium+ subscription)"), @@ -1207,7 +1207,7 @@ PROVIDER_GROUPS: dict[str, tuple[str, str, list[str]]] = { "minimax": ("MiniMax", "Global, OAuth Coding Plan & China endpoints", ["minimax", "minimax-oauth", "minimax-cn"]), "xai": ("xAI Grok", "Direct API or SuperGrok / Premium+ OAuth", ["xai", "xai-oauth"]), "google": ("Google Gemini", "Google AI Studio (API key)", ["gemini"]), - "openai": ("OpenAI", "Codex CLI or direct OpenAI API", ["openai-codex", "openai-api"]), + "openai": ("OpenAI", "ChatGPT/Codex subscription or direct OpenAI API", ["openai-codex", "openai-api"]), "qwen": ("Qwen", "Qwen Cloud / DashScope, Coding Plan & Qwen CLI OAuth", ["alibaba", "alibaba-coding-plan", "qwen-oauth"]), "opencode": ("OpenCode", "Zen pay-as-you-go or Go subscription", ["opencode-zen", "opencode-go"]), "copilot": ("GitHub Copilot", "GitHub token API or copilot --acp process", ["copilot", "copilot-acp"]), diff --git a/hermes_cli/providers.py b/hermes_cli/providers.py index ab47df203ff5d..20884cb3aee5b 100644 --- a/hermes_cli/providers.py +++ b/hermes_cli/providers.py @@ -413,7 +413,7 @@ ALIASES: Dict[str, str] = { _LABEL_OVERRIDES: Dict[str, str] = { "moa": "Mixture of Agents", "nous": "Nous Portal", - "openai-codex": "OpenAI Codex", + "openai-codex": "ChatGPT or Codex Subscription", "copilot-acp": "GitHub Copilot ACP", "stepfun": "StepFun Step Plan", "xiaomi": "Xiaomi MiMo", diff --git a/hermes_cli/web_server.py b/hermes_cli/web_server.py index f38ce4c3d92fe..701c5662d6c10 100644 --- a/hermes_cli/web_server.py +++ b/hermes_cli/web_server.py @@ -9835,7 +9835,7 @@ _OAUTH_PROVIDER_CATALOG: tuple[Dict[str, Any], ...] = ( }, { "id": "openai-codex", - "name": "OpenAI OAuth (ChatGPT)", + "name": "ChatGPT or Codex Subscription", "flow": "device_code", "cli_command": "hermes auth add openai-codex", "docs_url": "https://platform.openai.com/docs",