Windows Desktop 26.601: global CLI and Desktop bundled-plugin reconcile can fight over shared config.toml
Windows Desktop 26.601: global CLI and Desktop bundled-plugin reconcile can fight over shared config.toml
This report was prepared by Codex at the user's request from local diagnostics. User-specific paths are sanitized.
Summary
On Windows Codex Desktop, the global npm Codex CLI and the Desktop-managed/internal Codex runtime both read and write the same user configuration:
%USERPROFILE%\.codex\config.toml
In this environment, plugin repair commands run through the default codex command were actually executed by the global npm CLI, while Codex Desktop later reconciled its own bundled plugin marketplace and runtime state on startup. The Desktop reconcile path logged source conflicts for openai-bundled and requested uninstall of bundled Browser/Chrome plugins.
The machine is currently recovered, but the failure mode is still risky because it is not obvious which runtime owns these config sections:
[marketplaces.openai-bundled]
[plugins."browser@openai-bundled"]
[plugins."chrome@openai-bundled"]
[plugins."computer-use@openai-bundled"]
[mcp_servers.node_repl]
[mcp_servers.node_repl.env]
notify = [...]
Environment
OS: Windows
Install method: Microsoft Store
Codex Desktop Appx: 26.601.2237.0
Codex package: OpenAI.Codex_26.601.2237.0_x64__2p2nqsd0c76g0
Global npm Codex CLI: codex-cli 0.137.0
Desktop/internal CLI referenced by config: codex-cli 0.136.0-alpha.2
Bundled plugin version: 26.601.21317
Default codex resolution:
%USERPROFILE%\.codex\bin\codex.ps1
-> %APPDATA%\npm\codex.ps1
-> global npm Codex CLI 0.137.0
Desktop/internal CLI referenced by mcp_servers.node_repl.env.CODEX_CLI_PATH:
%LOCALAPPDATA%\OpenAI\Codex\bin\<hash>\codex.exe
# codex-cli 0.136.0-alpha.2
Current active bundled marketplace:
%USERPROFILE%\.codex\.tmp\bundled-marketplaces\openai-bundled
Current plugin status after recovery:
browser@openai-bundled installed, enabled 26.601.21317
chrome@openai-bundled installed, enabled 26.601.21317
computer-use@openai-bundled installed, enabled 26.601.21317
codex doctor --summary from the global npm CLI reports:
16 ok · 1 idle · 1 notes · 1 warn · 0 fail degraded
What happened
During local plugin troubleshooting, commands such as the following were run with the default codex command:
codex plugin marketplace remove openai-bundled
codex plugin marketplace add <path>
codex plugin add browser@openai-bundled
codex plugin add chrome@openai-bundled
Because codex resolved to the global npm CLI, those commands wrote Desktop-relevant plugin marketplace state into the shared %USERPROFILE%\.codex\config.toml.
After Codex Desktop restarted, Desktop's bundled-plugin reconcile path logged source conflicts and plugin removals.
Relevant sanitized Desktop log excerpts:
[BundledPluginsMarketplace] bundled_plugins_marketplace_add_failed
errorMessage="marketplace 'openai-bundled' is already added from a different source; remove it before adding this source"
marketplaceName=openai-bundled
marketplaceRoot=%USERPROFILE%\.codex\.tmp\bundled-marketplaces\openai-bundled
[BundledPluginsMarketplace] bundled_plugin_uninstall_requested
pluginId=browser@openai-bundled
pluginName=browser
reason=not_in_bundled_marketplace_plugin_names
[BundledPluginsMarketplace] bundled_plugin_uninstall_requested
pluginId=chrome@openai-bundled
pluginName=chrome
reason=not_in_bundled_marketplace_plugin_names
Another later log line:
[BundledPluginsMarketplace] bundled_plugin_uninstall_requested
pluginId=chrome@openai-bundled
pluginName=chrome
reason=chrome_extension_uninstalled
Additional update-path observation
There is also no obvious supported way to update the Desktop/internal CLI independently.
Running:
& '%LOCALAPPDATA%\OpenAI\Codex\bin\<hash>\codex.exe' update
returns:
Error: Could not detect the Codex installation method. Please update manually: https://developers.openai.com/codex/cli/
Running:
winget upgrade --id 9PLM9XGG6VKS --source msstore --accept-source-agreements --accept-package-agreements
returns:
No available upgrade.
No newer package versions are available from the configured sources.
So the global CLI can be newer than the Desktop/internal CLI, while both still interact with the same %USERPROFILE%\.codex\config.toml.
Expected behavior
One of these would make the setup much safer:
- Desktop-managed bundled plugin sections should be clearly owned by Desktop and protected from incompatible global CLI edits.
- Global CLI plugin marketplace commands should detect when
openai-bundledis Desktop-managed and warn before modifying it. - Desktop bundled-plugin reconcile should be idempotent when
openai-bundledis already registered to the same generated runtime marketplace. - If the marketplace source is wrong or stale, Settings/doctor should show a clear diagnostic and non-destructive repair path.
- The docs should clarify whether users should avoid using global
codex plugin marketplace add/removefor Desktop-managed bundled plugins. - There should be a documented way to refresh/regenerate the Desktop bundled marketplace without deleting the entire
.codexhome.
Actual behavior
The global CLI can mutate shared Desktop-relevant plugin configuration. Desktop may later reconcile the same sections using its own internal runtime and app state, resulting in source conflicts and bundled Browser/Chrome uninstall requests.
This makes plugin repair fragile: a change can appear correct from codex plugin list, then be reverted or reinterpreted after Desktop restarts.
Related issues
This appears related to, but not exactly the same as:
- #23902
- #25220
- #25253
- #25571
- #25665
- #21579
The closest overlap is the Windows bundled marketplace/cache class of failures in #25220 and #25253, but this report specifically highlights the shared-config ownership problem between global npm CLI and Desktop/internal runtime.
Current workaround used locally
The machine is currently left in the Desktop-generated marketplace state:
%USERPROFILE%\.codex\.tmp\bundled-marketplaces\openai-bundled
Browser, Chrome, and Computer Use are installed/enabled again. No destructive cleanup is being applied.
For future recurrence, a safer emergency workaround may be to copy the complete bundled marketplace from the Store package to a user-owned directory with robocopy, then register openai-bundled to that user-owned copy. Directly pointing at WindowsApps appears risky because protected package paths can produce access-denied/runtime-loading failures.
Request
Could maintainers clarify the intended ownership model for these Desktop-managed config sections, especially openai-bundled, node_repl, and Computer Use native-pipe settings?
Also, is there a supported command to safely regenerate or repair the Desktop bundled marketplace without deleting the whole %USERPROFILE%\.codex directory?
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗