Windows Desktop 26.601: global CLI and Desktop bundled-plugin reconcile can fight over shared config.toml

Open 💬 1 comment Opened Jun 4, 2026 by dingjianhui123-create

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:

  1. Desktop-managed bundled plugin sections should be clearly owned by Desktop and protected from incompatible global CLI edits.
  2. Global CLI plugin marketplace commands should detect when openai-bundled is Desktop-managed and warn before modifying it.
  3. Desktop bundled-plugin reconcile should be idempotent when openai-bundled is already registered to the same generated runtime marketplace.
  4. If the marketplace source is wrong or stale, Settings/doctor should show a clear diagnostic and non-destructive repair path.
  5. The docs should clarify whether users should avoid using global codex plugin marketplace add/remove for Desktop-managed bundled plugins.
  6. There should be a documented way to refresh/regenerate the Desktop bundled marketplace without deleting the entire .codex home.

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?

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗