Repository navigation
Add a config flag to keep native/* models out of the Claude Desktop model list #767
Description
Activity
github-actions commented
on Jul 30, 2026 on Jul 30, 2026 – with GitHub ActionsContributorMore actionsAutomated translation bookkeeping — detected language: unknown.
[shipping-github] Research review
Claim: Add a config flag to omit
native/*models from the Claude Desktop model list so only proxy-routed models appear.
Checked against: dev@be177ea5Field Finding Still an issue on latest development? yes Exact issue No claudeCode.desktopNativeModels(or equivalent) flag; export/show/apply paths keep reinserting native entriesFixed on development? no Open PR covering this? none Duplicate of? none Security relevance none — n/a Priority low — enhancement with local patch workaround; clear UX win for proxy-only Desktop users Verdict Needs fix on development Evidence: No matches for
desktopNativeModelsinsrc/. Claude Desktop routes under/api/claude-desktop*and CLI desktop commands still manage native inclusion without an opt-out.
Gaps: Preferred key name / whether GUI toggle ships in same change still open (reporter asked).[shipping-github] Opened PR #783 to address this.
- added a commit that references this issue
on Jul 31, 2026 Implemented on
dev(verified atbf9bc1ac8), landed inf72610027.The flag is
claudeCode.desktopNativeModels. Setting it tofalsekeepsnative/*out of the Claude Desktop model list:src/codex/catalog/metadata.ts:126-129—desktopVisibleNativeSlugs()returns an empty list when the flag is off.src/server/management/shared.ts:224-248— also strips native assignments and defaults, not just the list.
The second part is what makes it stick. Filtering the list alone would still have let a native model return as a default or an existing assignment, which is how the original report described it reappearing after show/export/apply. Every CLI and API writer path goes through the same helper.
Closing as implemented.
- added a commit that references this issue
on Jul 31, 2026
Area
Proxy and routing
What are you trying to accomplish?
I use OpenCodex to route Claude Desktop through the proxy, and I want Claude Desktop's model list to contain only the proxy-routed models. Today the Claude Desktop config keeps getting
native/*entries added back, which I do not want there: they bypass the proxy, so they are absent from the request log, from usage accounting, and from the routing rules I configured. Having both sets present also makes the model picker ambiguous — two entries that look equivalent but behave differently.What prevents this today?
There is no way to opt out.
show,exportandapplyall reinsertnative/*models into the Claude Desktop configuration, and the only way I have found to keep them out is to patch the code locally. That patch is the single change I would most like to stop maintaining, because it has to be re-applied on every release.What should OpenCodex do?
Honour a boolean configuration flag that suppresses
native/*entries when writing the Claude Desktop model list. Everything else stays as it is; when the flag is absent or true, behaviour is unchanged, so this is backwards compatible.The flag needs to be respected by every path that writes that list, not just one command — in my local patch the enforcement points are the desktop profile export and the CLI's Claude Desktop command.
Example usage or interface
In
~/.opencodex/config.json:{ "claudeCode": { "enabled": true, "desktopNativeModels": false, "authMode": "proxy" } }With
desktopNativeModels: false:A dashboard toggle alongside the existing Claude switch would be a natural home for it too, but the config key alone would be enough for me.
Alternatives or workarounds
npm install -gand has to be re-applied and re-verified after each release.show/export/applyputs the entries straight back.Additional context
I am happy to open a PR for this if the config key name and placement are agreeable — say the word on whether you would prefer
claudeCode.desktopNativeModelsor something else, and whether you would want the dashboard toggle in the same change or separately.Checks