Skip to content

CLI: /status shows ChatGPT usage link for non-OpenAI providers (e.g. Bedrock) #22778

@ajjuaire

Description

@ajjuaire

Summary

The /status command unconditionally displays "Visit https://chatgpt.com/codex/settings/usage for up-to-date information on rate limits and credits" regardless of the configured model provider. When an organization deploys Codex with a non-OpenAI provider like AWS Bedrock, this link is irrelevant and confusing — it directs users to a ChatGPT page that has nothing to do with their actual usage or billing.

Why This Matters

Enterprise admins configuring Codex with Bedrock (or other non-OpenAI providers) don't want their users clicking through to chatgpt.com. The link is:

  • Irrelevant — rate limits and credits are managed through the organization's AWS account, not ChatGPT
  • Confusing — users may think they need a ChatGPT account or that their usage is tracked there
  • Undesirable from an admin perspective — it directs users to an external service unrelated to their deployment

Environment

  • Component: codex-rs TUI (codex-rs/tui/src/status/card.rs, lines 749-763)
  • Provider: AWS Bedrock (likely affects all non-OpenAI providers)

Steps to Reproduce

  1. Configure Codex to use Bedrock as the model provider
  2. Run /status
  3. Observe the ChatGPT usage link displayed at the top of the status output

Expected Behavior

The ChatGPT usage link should only appear when the configured provider is OpenAI. For other providers, either omit the note entirely or show a provider-appropriate message.

Actual Behavior

The note is rendered unconditionally at lines 749-763 of codex-rs/tui/src/status/card.rs with no check against the model provider:

let note_first_line = Line::from(vec![
    Span::from("Visit ").cyan(),
    "https://chatgpt.com/codex/settings/usage"
        .cyan()
        .underlined(),
    Span::from(" for up-to-date").cyan(),
]);
let note_second_line = Line::from(vec![
    Span::from("information on rate limits and credits").cyan(),
]);
let note_lines = adaptive_wrap_lines(
    [note_first_line, note_second_line],
    RtOptions::new(available_inner_width),
);
lines.extend(note_lines);

Suggested Fix

The codebase already has the information needed. self.model_provider is None for default OpenAI and Some(...) for non-OpenAI providers (set via format_model_provider which uses provider.is_openai()). Gate the usage note:

if self.model_provider.is_none() {
    // Only show chatgpt.com link for default OpenAI provider
    lines.extend(note_lines);
    lines.push(Line::from(Vec::<Span<'static>>::new()));
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    TUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal displaybugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions