Skip to content

Expose Codex accounts as model namespaces in the picker #425

Closed

Description

@chrisae9

Area

Authentication and account pool

What are you trying to accomplish?

Keep multiple Codex accounts authenticated at the same time and explicitly choose which exact account a new conversation uses from the model picker. The account choice should be visible in the selected model and remain fixed for that conversation, without logging out of any other account.

Account names should be arbitrary local IDs. They identify stored logins; they do not represent built-in roles or account types.

What prevents this today?

The active Pool account is selected separately from the model. A bare model such as gpt-5.6-sol does not show which credential will be used, and normal Pool behavior may rotate or fail over to another eligible account.

Changing the global active account is therefore not a strict per-conversation choice. Logging out and back in is also not a viable substitute when other Codex sessions depend on the existing login.

What should OpenCodex do?

Add an opt-in model-picker mode that exposes every supported native GPT model once per available Codex account.

  • Selecting an account-qualified model pins the conversation to that exact stored account.
  • Quota balancing, failure failover, affinity rebinding, and unsupported-model retry never switch that request to another account.
  • If the selected account is missing, cooling down, or needs reauthentication, the request fails closed.
  • Changing the active Pool account does not affect an account-qualified conversation.
  • Bare gpt-* models retain their current Pool or Direct behavior.
  • Hiding the account-specific picker entries does not turn an existing saved selector into a fallback route.
  • Newly supported native GPT models automatically receive the same account-qualified choices.

Example usage or interface

With a built-in login and one added account whose local ID is team-a, the picker could expose:

main/gpt-5.6-sol
team-a/gpt-5.6-sol

main/gpt-5.6-sol always uses the built-in login. team-a/gpt-5.6-sol always uses the stored account identified locally as team-a. If team-a is unavailable, the request fails instead of using main or another account.

IDs such as team-a, client, personal, or work are user-chosen examples only. OpenCodex should not assign any semantics to them.

Alternatives or workarounds

  • Switching the active Pool account is global and does not make the choice visible in the model selector.
  • Disabling automatic balancing reduces switching but still does not create an explicit per-conversation account target.
  • Logging out and back in disrupts other sessions and requires unnecessary credential churn.

Additional context

This is generic explicit account targeting, not a request for special Personal and Work account roles. The existing picker and Pool/Direct behavior should remain unchanged unless the user opts in.

Checks

  • I searched existing issues and documentation.
  • This request describes a concrete OpenCodex workflow rather than merely naming a desired technology.
  • I removed secrets and personal data.

Activity

  1. github-actions commented on Jul 25, 2026

    @github-actions
    Contributor

    Issue reopened

    The report now contains the information required by the automated check. Thanks for updating it.

  2. Ingwannu commented on Jul 26, 2026

    @Ingwannu
    Owner

    The opt-in account-qualified namespace is a coherent direction, and draft PR #426 tracks the implementation. The important contract is stricter than normal Pool routing: a qualified selector must pin one stored account, fail closed when that account is unavailable, and bypass balancing, affinity rebinding, quota failover, and unsupported-model retry. Bare gpt-* selectors must remain unchanged.

    Please keep the namespace derived from arbitrary local account ids rather than assigning built-in role semantics. I am keeping this issue open while #426 validates routing, catalog persistence, hidden-entry behavior, and failure handling across restarts.

  3. Repository owner deleted a comment from github-actions on Jul 26, 2026
  4. linked a pull request that will close this issuefeat(codex): add account namespace foundation #512on Jul 28, 2026
  5. assigned and unassigned on Jul 28, 2026
  6. added
    account-poolOAuth, credentials, Codex pool, quota, failover, plans
    on Aug 1, 2026
  7. added
    catalogModel catalog, slugs, visibility, routed entries
    on Aug 3, 2026
  8. Wibias commented on Aug 3, 2026

    @Wibias
    Contributor

    Fixed by #512

  9. github-actions commented on Aug 3, 2026

    @github-actions
    Contributor

    Automated translation bookkeeping — detected language: unknown.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

account-poolOAuth, credentials, Codex pool, quota, failover, planscatalogModel catalog, slugs, visibility, routed entriesenhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions