Skip to content

CLI plugin inventory can report account-installed plugins as uninstalled #33506

Description

@sixfolds

Codex variant

CLI. Observed on codex-cli 0.144.4 on Windows 11 / PowerShell 7.6. The configured-only list path is also present in release 0.144.5 and current main (1d941253e9354fe583a033660a6288df66e27488).

Behavior gap

codex plugin list reports configured marketplace snapshots, while account-backed installed plugins live in a separate remote inventory. When both inventories contain the same display name, the CLI can show an uninstalled configured entry while omitting the enabled account-installed entry. This makes a healthy installation look missing to users and diagnostics.

Concrete example:

  • superpowers@openai-curated-remote 6.1.1 is account-installed and enabled.
  • superpowers@openai-curated 5.1.3 is a distinct configured-marketplace entry and is not installed.

codex plugin list --available --json exposes only the second row. App-server plugin/installed exposes the first. Installing the configured 5.1.3 row would create a real duplicate and is not a valid repair.

Source-level cause

codex-rs/cli/src/plugin_cmd.rs::run_plugin_list calls PluginsManager::list_marketplaces_for_config(...), so its inventory is configured-only. Account installations are loaded separately through PluginsManager::build_and_cache_remote_installed_plugin_marketplaces(...) and app-server plugin/installed.

The two records have distinct canonical marketplace identities and must not be coalesced by display name.

Requested behavior

Please expose an explicit account-installed CLI inventory, for example:

codex plugin list --scope configured   # current default, unchanged and offline
codex plugin list --scope account      # account-installed/enabled inventory
codex plugin list --scope all          # both inventories, canonical IDs preserved

The exact command shape is flexible. The important compatibility requirements are:

  • Existing invocations and configured-scope JSON retain their current shape and offline behavior.
  • Account and combined output preserve marketplace provenance and return same-name identities separately.
  • Missing authentication or a remote failure is explicit, never represented as installed: false.
  • --available continues to apply only to configured catalog entries.

I traced the reusable manager API and can contribute focused CLI tests and an implementation. I have not opened a pull request because docs/contributing.md requires an explicit Codex-team invitation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    CLIIssues related to the Codex CLIbugSomething isn't workingskillsIssues related to skillswindows-osIssues related to Codex on Windows systems

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions