openai / openai/codex

[Windows] Visualize cannot be permanently uninstalled; Codex Desktop reinstalls it on every launch

Open
#46,420 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug skills windows-os
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Summary

On Codex Desktop for Windows, the bundled visualize@openai-bundled plugin cannot be permanently uninstalled.

The uninstall action succeeds, and the plugin is removed from the current local state. However, after fully restarting Codex Desktop, the app recreates the bundled runtime marketplace and automatically installs Visualize again with reason=missing.

This makes the UI misleading: Visualize is presented as an uninstallable plugin, but the user's explicit uninstall choice is not persisted or respected.

Environment

  • Windows 25H2, build 26200.8875, x64
  • Microsoft Store package: OpenAI.Codex_26.915.3509.0_x64__2p2nqsd0c76g0
  • Plugin: visualize@openai-bundled
  • Visualize bundled plugin version observed locally: 1.0.38

Steps to reproduce

  1. Open Codex Desktop.
  2. Open Plugins.
  3. Uninstall Visualize.
  4. Confirm that the uninstall succeeds.
  5. Fully exit Codex Desktop.
  6. Start Codex Desktop again.
  7. Open Plugins.

Actual behavior

Visualize is installed again automatically.

This has reproduced repeatedly. Sanitized log excerpts:

2026-09-18T09:41:15.345Z
plugin_uninstall_succeeded pluginId=visualize@openai-bundled

2026-09-18T09:43:09.293Z
bundled_plugin_install_requested pluginName=visualize reason=missing

2026-09-18T09:43:09.338Z
plugin_install_succeeded pluginName=visualize

A second reproduction:

2026-09-18T10:54:50.304Z
plugin_uninstall_succeeded pluginId=visualize@openai-bundled

2026-09-18T10:55:23.334Z
bundled_plugin_install_requested pluginName=visualize reason=missing

2026-09-18T10:55:23.404Z
plugin_install_succeeded pluginName=visualize

A later restart produced the same result:

2026-09-18T11:28:04.509Z
bundled_plugin_install_requested pluginName=visualize reason=missing

2026-09-18T11:28:04.578Z
plugin_install_succeeded pluginName=visualize

The generated runtime marketplace also explicitly contains Visualize:

bundled_plugins_runtime_marketplace_written
pluginNames=["codex-app-tools","browser","unified-computer-use","chrome","computer-use","latex","visualize"]
visualizeSkillVariant=proactive

Expected behavior

One of the following should happen:

  1. An explicit uninstall should persist across restarts and prevent automatic reinstallation; or
  2. Codex should provide a documented opt-out for automatically installed bundled plugins; or
  3. If Visualize is a mandatory system component, the UI should identify it as such and should not offer a misleading uninstall action.

A persistent enabled = false entry is not an equivalent solution: the user explicitly wants the plugin uninstalled, not merely disabled while its files and marketplace entry remain installed.

Relevant comparison: Sites

The same installation previously had stale sites@openai-bundled state. Sites could be permanently removed because the current desktop build retires/cleans up that bundled plugin instead of reinstalling it.

Visualize behaves in the opposite way: the user's uninstall succeeds, but the next bundled-plugin reconciliation restores it. Sites therefore provides a useful precedent that bundled-plugin lifecycle cleanup can respect removal.

Possible cross-device symptom

The same ChatGPT account is used on another Windows desktop. Visualize had not previously been visible there, but it appeared there on the same day after Codex was opened on this laptop.

I cannot yet prove whether this was account-level plugin state propagation or two clients independently running the same bundled-plugin reconciliation. Please clarify whether installation state for openai-bundled plugins is intended to sync across devices. Regardless, each local client should respect an explicit uninstall or expose a supported opt-out.

Additional notes

  • Removing the plugin through the official uninstall operation succeeds.
  • Removing only the generated runtime marketplace entry, local cache, or config.toml block is temporary because Codex Desktop regenerates them at startup from the Store package.
  • The source marketplace is inside the signed Microsoft Store package under WindowsApps, so users should not be expected to modify package files or ACLs to opt out.
  • No package files or WindowsApps permissions were modified while collecting this reproduction.

A screenshot of the Plugins page showing Visualize restored after restart can be added if maintainers request it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the Windows startup path that recreates the bundled runtime marketplace and requests installation with reason=missing, then compare it with the uninstall state and the Sites cleanup behavior. Done means an explicit Visualize uninstall survives a restart, or the UI clearly marks Visualize as mandatory and provides a supported opt-out.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.