Skip to content

[Feature/UX]: add additive Claude Desktop catalog mode with honest native/OpenCodex switching #1213

Closed

Description

@str0203

Client or integration

Claude Desktop 3P profile

Area

Claude Desktop integration / catalog / configuration UX

Current status

The original destructive-restore defect is partially resolved.

PR #1106 added a real Claude Desktop integration toggle and a safe OFF/native pivot:

  • claude-desktop is tracked as a native client integration;
  • OFF pivots to a credential-free standard profile before removing the OpenCodex-owned gateway profile;
  • owned backup and metadata state are cleaned up under the integration contract;
  • desired OFF state is persisted so later provider changes do not silently re-enable the integration;
  • ownership/drift inspection refuses unsafe mutations instead of blindly rewriting foreign state.

Therefore this issue no longer needs to claim that OpenCodex has no safe restore path.

The issue remains open because the reopened request is broader: users want an honest way to keep or switch between Claude-native access and OpenCodex-routed models, ideally in one picker where the installed Claude Desktop contract permits it.

Remaining goal

Provide the best supported Claude Desktop experience for users who want both:

native Claude-family access
+
selected OpenCodex-routed models

without silently changing credential or billing provenance.

There are two materially different meanings of "additive" and they must not be conflated.

1. True first-party coexistence

Ideal behavior:

Claude Desktop keeps its first-party subscription provider and credential
+
OpenCodex adds extra routed models

This requires a supported Claude Desktop mechanism for either:

  • multiple inference providers in one active profile; or
  • first-party credential passthrough while a gateway base URL is active.

Current OpenCodex configuration writing alone does not prove that capability exists.

Adding official-looking claude-* rows to inferenceModels is not sufficient if the gateway cannot receive or safely resolve the user's original first-party credential.

If current Claude Desktop does not expose a supported coexistence contract, OpenCodex must say so rather than simulate native access.

2. Unified gateway catalog

A practical approximation may be possible through one OpenCodex gateway catalog containing:

  • selected routed OpenCodex models; and
  • Claude models served through an explicitly configured OpenCodex Anthropic OAuth/API credential.

That can provide one combined picker, but those Claude entries are gateway-routed. They are not automatically the untouched first-party Claude Desktop subscription provider.

The UI must expose that difference clearly and must never silently turn subscription-backed Claude access into separately billed Anthropic API traffic.

Desired user modes

The Desktop integration should converge on explicit modes such as:

Native Claude
  Do not apply an OpenCodex inference profile.

Additive / unified gateway
  Show Claude-family routes and selected OpenCodex routes together.
  Available only when the required credential/routing contract is proven.

OpenCodex only
  Use the OpenCodex gateway catalog without implying native-provider coexistence.

If true coexistence is unavailable, the supported fallback should be fast, reversible profile switching:

Use native Claude configuration
Use OpenCodex configuration

The user should not need to edit Claude-3p/configLibrary/_meta.json manually.

Required investigation

Before implementing true additive first-party mode:

  1. Probe the current supported Claude Desktop configuration contract.
  2. Determine whether first-party Claude OAuth can be preserved or forwarded when a gateway profile/base URL is active.
  3. Determine whether one active profile can expose more than one credential/provider provenance safely.
  4. If the answer is no, treat true first-party coexistence as an upstream limitation.
  5. Only then implement the strongest supported local mode.

Provenance requirements

Any combined catalog must make routing provenance explicit enough that users can distinguish entries such as:

Claude Opus 5 · native Claude
Claude Opus 5 · Anthropic via OpenCodex
GPT 5.6 Sol · ChatGPT pool via OpenCodex

Exact labels can follow the final UI design, but the product must not hide meaningful credential or billing differences behind identical model names.

Safety requirements

  • Never silently replace a first-party Claude credential with a separately billed API credential.
  • Never claim native coexistence when the client only supports one active gateway provider.
  • Preserve exact routed model IDs where required by the gateway.
  • Switching modes must be reversible and survive restart.
  • Desired OFF/native state must continue to prevent later auto-apply from restoring an unwanted gateway profile.
  • Foreign or drifted Desktop configuration must continue to fail safely.

Acceptance criteria

Already delivered

  • Claude Desktop has an OpenCodex integration toggle.
  • OFF has a safe standard/native pivot instead of requiring manual _meta.json surgery.
  • Desired OFF state survives later OpenCodex activity.
  • Owned/drifted/foreign Desktop state is classified before mutation.

Remaining work

  • The current Claude Desktop coexistence capability is verified rather than guessed.
  • The UI offers explicit Native Claude / OpenCodex mode selection.
  • If true first-party coexistence is supported, an additive mode preserves the first-party credential correctly.
  • If true coexistence is not supported, the UI explains that limitation before applying a gateway profile.
  • A unified gateway mode, if provided, requires explicit OpenCodex-managed Anthropic credentials and exposes their provenance.
  • No silent credential or billing substitution occurs.
  • Native/OpenCodex switching is one action, reversible, and restart-safe.
  • Catalog entries make meaningful provider/credential provenance understandable.
  • Regression coverage protects restore, switching, drift refusal, and provenance behavior.

Close condition

Close when Claude Desktop users have either verified additive coexistence or an explicit, honest, reversible mode-switching experience that does not misrepresent native access.

Activity

  1. github-actions commented on Aug 7, 2026

    @github-actions
    Contributor

    Automated translation bookkeeping — detected language: unknown.

  2. added
    bugSomething isn't working
    catalogModel catalog, slugs, visibility, routed entries
    on Aug 7, 2026
  3. github-actions commented on Aug 7, 2026

    @github-actions
    Contributor

    Maintainer decision respected

    A maintainer has reopened this issue. The automated closure has been deactivated.

  4. str0203 commented on Aug 7, 2026

    @str0203
    Author

    Follow-up enhancement proposal: Additive Claude Desktop catalog mode

    The ideal user experience is not merely a safer replacement flow. Users want to keep their existing Claude models and add selected OpenCodex routes to the same picker.

    Feasibility boundary

    There appear to be two materially different meanings of “native + routed models”:

    1. True first-party coexistence

    Claude Desktop keeps its existing first-party subscription models and credentials, while OpenCodex adds extra model routes.

    This does not appear implementable through the current OpenCodex Desktop writer alone:

    • Claude Desktop serves only the configuration selected by one configLibrary/_meta.json.appliedId.
    • The generated OpenCodex config selects one inferenceProvider: "gateway".
    • OpenCodex currently sets inferenceCredentialKind: "static" and supplies a gateway key.
    • Consequently, the Desktop's first-party subscription credential is not necessarily sent to the gateway.
    • Adding official-looking claude-* rows to inferenceModels is not sufficient if the gateway cannot receive or safely resolve the user's original first-party credential.

    If Claude Desktop exposes a supported credential-passthrough or multi-provider mechanism, OpenCodex could use it. Otherwise, this part should be documented as an upstream limitation rather than simulated unsafely.

    2. Unified gateway catalog (implementable approximation)

    OpenCodex can potentially expose one combined gateway catalog containing:

    • selected routed OpenCodex models; and
    • genuine Claude models routed through an explicitly configured OpenCodex Anthropic OAuth/API credential.

    This would produce the desired combined picker, although the Claude entries would be gateway-routed rather than the untouched first-party Desktop provider.

    This mode must clearly disclose credential and billing provenance. It must never silently turn a Claude subscription model into separately billed Anthropic API traffic.

    Proposed modes

    The Desktop page could offer an explicit mode selector:

    Native Claude
      Do not apply an OpenCodex inference profile.
    
    Additive / unified gateway
      Show Claude-family routes and selected OpenCodex routes together.
      Requires a usable Anthropic credential managed by OpenCodex.
      Clearly labels which credential/provider serves each model.
    
    OpenCodex only
      Replace the picker with the selected OpenCodex routes (current static behavior).
    

    If true additive mode is not possible, provide a supported profile-switching fallback:

    Use native Claude configuration
    Use OpenCodex configuration
    

    Switching must preserve both profiles and require only one click, without editing _meta.json manually.

    Suggested implementation investigation

    1. Probe whether current Claude Desktop can forward first-party OAuth while using a gateway base URL.
    2. If supported, add official Claude IDs to the same generated catalog and use the existing native-passthrough path.
    3. If not supported, implement unified gateway mode only when an explicit Anthropic credential is configured.
    4. Preserve the previous applied configuration and expose restore/switch actions.
    5. Store the selected Desktop mode and stop autoApplyDesktopBestEffort() from always rewriting it as static.
    6. Add provenance labels such as:
      • Claude Opus 5 · native passthrough
      • Claude Opus 5 · Anthropic OAuth via OpenCodex
      • GPT 5.6 Sol · ChatGPT pool via OpenCodex

    Acceptance criteria

    • Applying an additive mode does not silently remove expected Claude-family access.
    • The UI accurately distinguishes first-party passthrough from OpenCodex-managed Anthropic OAuth/API access.
    • No silent credential substitution or separately billed API fallback occurs.
    • The exact request model ID remains stable.
    • Native/OpenCodex profile switching is reversible and survives restarts.
    • If the installed Claude Desktop version cannot support coexistence, the UI explains the limitation before applying anything.

    This would turn the current destructive replacement workflow into either real coexistence where supported, or an honest and reversible approximation where it is not.

  5. reopened this on Aug 7, 2026
  6. changed the title [-][Bug/UX]: Claude Desktop “Save and apply” silently replaces the native model catalog and lacks a safe restore path[/-] [+][Feature/UX]: add additive Claude Desktop catalog mode with honest native/OpenCodex switching[/+] on Aug 11, 2026
  7. added
    enhancementNew feature or request
    and removed
    bugSomething isn't working
    on Aug 11, 2026
  8. lidge-jun commented on Aug 19, 2026

    @lidge-jun
    Owner

    리뷰 · 우선순위 52 / 80

    현재 dev에서 Claude Desktop은 이미 네이티브 클라이언트 통합으로 다뤄집니다. integrations.claude-desktop desired state, /api/claude-desktop GET/PUT/apply/status, OFF 시 자격 증명 없는 표준 프로필로 피벗하는 경로가 src/server/management/agent-settings-routes.ts와 src/codex/desired-state에 있습니다. PR #1106이 말한 파괴적 복원 결함은 이 이슈의 남은 목표가 아닙니다. 안전한 OFF/네이티브 피벗은 있다고 보는 것이 맞습니다.

    남은 요청은 피커 하나에 네이티브 Claude 구독과 OpenCodex 라우트 모델을 같이 두는 것입니다. 이슈가 구분한 두 의미는 코드로도 갈라집니다. 진짜 1P 공존은 Claude Desktop이 활성 프로필에서 여러 inference provider를 받거나, 게이트웨이 base URL이 켜진 채 1P 자격 증명을 통과시켜야 합니다. OpenCodex 설정 쓰기만으로 그 계약이 있다는 증명은 되지 않습니다.

    통합 게이트웨이 카탈로그는 현실적인 근사입니다. OpenCodex Anthropic OAuth/API로 서빙하는 Claude 행과 라우트 모델을 한 목록에 넣을 수는 있습니다. 다만 그 Claude 행은 게이트웨이 청구이지 데스크톱 구독이 아닙니다. native/* 행을 그럴듯하게 추가하는 것은, 게이트웨이가 원래 1P 자격 증명을 받거나 안전하게 해석하지 못하면 청구 출처를 속이는 일이 됩니다.

    네이티브 신뢰성 우선순위는 그래서 기능 추가보다 정직함에 있습니다. 현재 Claude Desktop 계약이 공존을 허용하지 않으면 지원하지 않는다고 말해야 합니다. Windows/서비스 경로에서 프로필 파일만 덧씌우면 소유권/드리프트 검사가 거부하는 외국 상태를 다시 만들 수 있습니다. 위생적으로는 OFF desired state가 프로바이더 변경에 다시 켜지지 않는 지금 계약을 유지해야 합니다.

    해결방안은 1P 공존이 클라이언트 계약으로 확인되기 전에는 게이트웨이 카탈로그만 명시적 자격 증명으로 제공하고, UI에 “이 행은 OpenCodex 계정으로 청구된다”를 붙이는 것입니다. 패치는 추측하지 않으며, 현재 트리에서 1P 자격 증명 패스스루 구현은 확인하지 못했습니다.

    이 댓글은 grok-bot이 작성했습니다

  9. added
    priority: P3Low: new provider/client integration, large or experimental feature (>2000 LOC or >50 files), RFC/ro
    on Sep 24, 2026
  10. lidge-jun commented on Sep 27, 2026

    @lidge-jun
    Owner

    Closing as implemented on dev. Claude Desktop picker mode landed in 66d4cf9 (#5728): OpenCodex models are listed by name in Desktop's Code-tab picker while Desktop stays first-party (src/claude/intercept/picker-runtime.ts). If a coexistence edge case is still missing, please open a focused issue against the current picker behavior.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    catalogModel catalog, slugs, visibility, routed entriesenhancementNew feature or requestpriority: P3Low: new provider/client integration, large or experimental feature (>2000 LOC or >50 files), RFC/ro

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions