Ordering presets landed; drag-and-drop remains open
#3801 (8615f1a1c9) adds picker-order presets and saves them without replacing featured selections. Free-form drag-and-drop and the requested native/featured-row behavior remain outstanding.
Verified against dev 5759d9ea2f1e7281cdc01eb9628f2e0a123fb59c. Original report by @leonclab. The attribution record was added in #3811.
Area
Dashboard
What are you trying to accomplish?
In Codex Desktop, when users configure multiple models across different providers (native OpenAI, OpenCode-Go, Google Antigravity, or custom forward proxies), the display order in the model picker is dominated by subagentModels priority calculation (priority = 0..N-1), while non-featured models are placed arbitrarily.
I need a convenient way in the OpenCodex Web GUI to visually reorder enabled models so that users can organize the Codex Desktop model picker (e.g. keep native OpenAI models on top, followed by cleanly grouped provider sections) without manually editing JSON configuration files.
What prevents this today?
Currently, customizing the model picker display order requires manually crafting the modelPickerOrder array inside ~/.opencodex/config.json. This requires knowing internal model slugs (e.g., provider/model-id), checking catalog priority calculations, and manually restarting or syncing the service. It is error-prone and not accessible from the Web GUI.
What should OpenCodex do?
- In the Models management tab of the Web GUI, provide drag-and-drop handles for all enabled models to visually adjust their display order.
- Provide a quick action button (e.g., "Group by Provider") that clusters models by their upstream provider (e.g., native OpenAI first, then sorted by provider namespaces).
- When the order is changed, save the list directly to
config.modelPickerOrder via the existing /api/config endpoint and trigger catalog synchronization.
Example usage or interface
- Open Web GUI -> Models.
- Drag
google-antigravity/gemini-3.8-flash above another provider row, or click "Group by Provider".
- The GUI sends a PATCH/PUT to
/api/config with {"modelPickerOrder": ["gpt-5.6-sol", "gpt-5.6-luna", "OG/...", "google-antigravity/..."]}.
- OpenCodex triggers
syncModelsToCodex() and Codex Desktop reflects the new picker order.
Alternatives or workarounds
Manually editing ~/.opencodex/config.json and adding a large modelPickerOrder string array by hand.
Additional context
The underlying priority reordering engine modelPickerOrder is already supported in src/codex/catalog/sync.ts (around line 520). Exposing this to the Web GUI would make model ordering much more user-friendly.
Checks
Ordering presets landed; drag-and-drop remains open
#3801 (
8615f1a1c9) adds picker-order presets and saves them without replacing featured selections. Free-form drag-and-drop and the requested native/featured-row behavior remain outstanding.Verified against dev
5759d9ea2f1e7281cdc01eb9628f2e0a123fb59c. Original report by @leonclab. The attribution record was added in #3811.Area
Dashboard
What are you trying to accomplish?
In Codex Desktop, when users configure multiple models across different providers (native OpenAI, OpenCode-Go, Google Antigravity, or custom forward proxies), the display order in the model picker is dominated by
subagentModelspriority calculation (priority = 0..N-1), while non-featured models are placed arbitrarily.I need a convenient way in the OpenCodex Web GUI to visually reorder enabled models so that users can organize the Codex Desktop model picker (e.g. keep native OpenAI models on top, followed by cleanly grouped provider sections) without manually editing JSON configuration files.
What prevents this today?
Currently, customizing the model picker display order requires manually crafting the
modelPickerOrderarray inside~/.opencodex/config.json. This requires knowing internal model slugs (e.g.,provider/model-id), checking catalog priority calculations, and manually restarting or syncing the service. It is error-prone and not accessible from the Web GUI.What should OpenCodex do?
config.modelPickerOrdervia the existing/api/configendpoint and trigger catalog synchronization.Example usage or interface
google-antigravity/gemini-3.8-flashabove another provider row, or click "Group by Provider"./api/configwith{"modelPickerOrder": ["gpt-5.6-sol", "gpt-5.6-luna", "OG/...", "google-antigravity/..."]}.syncModelsToCodex()and Codex Desktop reflects the new picker order.Alternatives or workarounds
Manually editing
~/.opencodex/config.jsonand adding a largemodelPickerOrderstring array by hand.Additional context
The underlying priority reordering engine
modelPickerOrderis already supported insrc/codex/catalog/sync.ts(around line 520). Exposing this to the Web GUI would make model ordering much more user-friendly.Checks