0.142.0 /plugins remote catalog hides installed local openai-curated plugins in TUI

Resolved 💬 5 comments Opened Jun 23, 2026 by dualecton Closed Jun 26, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Title: 0.142.0 /plugins remote catalog hides installed local openai-curated plugins in TUI

Labels: bug, CLI, TUI, plugins, regression

What version of Codex CLI is running?

codex-cli 0.142.0

What subscription do you have?

ChatGPT account login. I can provide the exact plan if needed.

Which model were you using?

gpt-5.5

What platform is your computer?

Linux 7.0.12-arch1-1 x86_64 unknown

What terminal emulator and version are you using?

kitty, TERM=xterm-kitty, no terminal multiplexer.

Codex doctor report

I ran codex doctor --json. Summary:

{
  "codexVersion": "0.142.0",
  "overallStatus": "warning",
  "notableChecks": {
    "installation": "ok",
    "runtime.provenance": "ok: running npm on linux-x86_64",
    "config.load": "ok",
    "auth.credentials": "ok: auth is configured",
    "mcp.config": "ok",
    "network.websocket_reachability": "ok",
    "state.paths": "ok",
    "state.rollout_db_parity": "warning: rollout files and state DB thread inventory differ"
  }
}

The warning appears to be unrelated old thread/archive state. Install, auth, config, network, and state databases are otherwise healthy.

What issue are you seeing?

After upgrading to Codex CLI 0.142.0, opening /plugins in the TUI briefly shows a larger plugin list, then most entries disappear after the UI refreshes.

The final visible TUI state shows only about:

9 available
3 installed

However, CLI and app-server diagnostics show the local plugin inventory is still present and healthy:

codex plugin list --available --json
installed: 8
available: 172
enabledInstalled: 6
disabledInstalled: 2

Installed plugin IDs reported by the CLI:

figma@openai-curated
github@openai-curated
cloudflare@openai-curated
build-web-apps@openai-curated
build-web-data-visualization@openai-curated
codex-security@openai-curated
tailwind-plus-codex@ricks
shopify-plugin@ricks

Direct app-server calls also show the local marketplaces correctly:

plugin/list params: {}

openai-curated:
  path: /home/raccoon/.codex/.tmp/plugins/.agents/plugins/marketplace.json
  plugins: 178
  installed: 6
  enabled: 6

ricks:
  path: /home/raccoon/workspace/ricks-codex-marketplace/.agents/plugins/marketplace.json
  plugins: 2
  installed: 2
  enabled: 0

But when querying the new remote/vertical catalog path:

plugin/list params: {"marketplaceKinds":["vertical"]}

openai-curated-remote:
  path: null
  plugins: 7
  installed: 1
  enabled: 1

This matches the symptom: the TUI appears to initially show local plugin data, then refresh to a smaller remote/vertical catalog view. If this is intended behavior after the 0.142.0 plugin UI changes, it is very hard to tell from the UI, because installed local plugins appear hidden or no longer discoverable from /plugins.

What steps can reproduce the bug?

  1. Install or upgrade to Codex CLI 0.142.0.
  2. Have local openai-curated plugins installed/enabled. In my case:

``text
figma@openai-curated
github@openai-curated
cloudflare@openai-curated
build-web-apps@openai-curated
build-web-data-visualization@openai-curated
codex-security@openai-curated
``

  1. Start the Codex TUI.
  2. Open /plugins.
  3. Observe that the plugin list briefly shows more entries, then collapses to a much smaller list.
  4. Compare against:

``bash
codex plugin list --available --json
``

  1. Optional app-server checks:

``text
plugin/list params: {}
plugin/installed params: {}
plugin/list params: {"marketplaceKinds":["local"]}
plugin/list params: {"marketplaceKinds":["vertical"]}
``

Observed app-server result:

plugin/list {}
  openai-curated: 178 plugins, 6 installed/enabled
  ricks: 2 installed, 0 enabled

plugin/installed {}
  openai-curated: 6 installed/enabled
  ricks: 2 installed, 0 enabled

plugin/list {"marketplaceKinds":["vertical"]}
  openai-curated-remote: 7 plugins, 1 installed/enabled

What is the expected behavior?

Either:

  1. /plugins should continue to show installed local plugins from openai-curated and other local marketplaces after the remote catalog refresh, or
  2. if 0.142.0 intentionally changed /plugins to prioritize remote plugin sections, the UI should clearly expose a separate Local/Installed section so installed local plugins do not appear to disappear.

The CLI and TUI should not disagree in a way that makes installed plugins look missing.

Additional information

This may be related to the 0.142.0 change that reorganized /plugins into remote sections such as OpenAI Curated, Workspace, and Shared with me.

Possibly related to #26703 by @canvrno-oai. I am not sure whether the local catalog being replaced/hidden is intended behavior or a regression in the local/remote catalog merge.

I searched for existing issues before filing. I found some plugin UI issues, including a possibly related Desktop/Windows report about hiding openai-curated, but I did not find a matching CLI/TUI Linux issue for 0.142.0 where the remote/vertical catalog appears to replace or hide installed local openai-curated plugins.

Related but not identical:

#29478 Codex Desktop Windows hides openai-curated Plugin Directory when Statsig gate 4218407052=true

This report is for the CLI/TUI on Linux, with app-server evidence that local plugin state is intact while the TUI appears to present a smaller remote/vertical subset.

View original on GitHub ↗

5 Comments

github-actions[bot] contributor · 2 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #29478

Powered by Codex Action

J3m5 · 2 months ago

I came here because of this bug.
The complete list of plugins is displayed, then replaced by another list of 7 plugins.

<img width="1140" height="360" alt="Image" src="https://github.com/user-attachments/assets/b732e9e0-b8ff-4e31-a832-2e53a0cf3106" />

<img width="1408" height="360" alt="Image" src="https://github.com/user-attachments/assets/6e9ea95b-ad69-4ede-88fb-98b5a88086b0" />

appe233 · 2 months ago

Note: this investigation/comment was prepared with help from Codex.

I reproduced and narrowed down the 7-plugin replacement path.

The important distinction seems to be that there are two different remote catalog calls:

Full global catalog:

GET /backend-api/ps/plugins/list?scope=GLOBAL&limit=100

For my account, this paginates correctly:

page 1: 100 plugins
page 2: 81 plugins
total: 181 plugins
contains superpowers: yes

But the legacy vertical collection returns exactly the 7 plugins that the TUI ends up showing:

GET /backend-api/ps/plugins/list?scope=GLOBAL&collection=vertical&limit=100

Result:

total: 7
contains superpowers: no

creative-production
data-analytics
investment-banking
metabase
product-design
public-equity-investing
sales

So the backend global catalog is not actually limited to 7 plugins. The 7-plugin list is the collection=vertical sub-collection.

Relevant client path:

  • codex-rs/tui/src/app/background_requests.rs
  • fetch_additional_plugin_remote_sections
  • when Feature::RemotePlugin is disabled, it requests the "vertical" section labeled as "OpenAI Curated".
  • codex-rs/app-server/src/request_processors/plugins.rs
  • plugin_list_response
  • include_vertical && !Feature::RemotePlugin calls:

fetch_openai_curated_remote_collection_marketplace(...)

  • codex-rs/core-plugins/src/remote.rs
  • fetch_openai_curated_remote_collection_marketplace
  • calls:

/ps/plugins/list?scope=GLOBAL&collection=vertical

  • codex-rs/tui/src/chatwidget/plugin_catalog.rs
  • merge_remote_marketplaces
  • when openai-curated-remote is present, local openai-curated can be removed/replaced.

This means collection=vertical is being modeled/merged as if it were the full OpenAI Curated marketplace, but it is only a small sub-collection. That explains the UI behavior: the full local curated marketplace is visible briefly, then the async vertical-section refresh replaces/hides it with the 7 vertical entries.

Suggested fix direction: do not treat collection=vertical as a replacement for the full OpenAI Curated marketplace. Either keep it as a separate section/identity, or only replace local openai-curated with remote data when the remote response is known to be the full catalog rather than the vertical sub-collection.

appe233 · 2 months ago

This issue should be fixed by v0.142.2.

dualecton · 2 months ago

Fixed for me in 0.142.2