Plugins from built-in marketplace are deleted after restart — marketplace source not persisted to config.toml

Open 💬 2 comments Opened Jun 19, 2026 by AIAFKK

Environment

  • Codex Desktop on macOS (arm64)
  • config.toml: ~/.codex/config.toml

Steps to reproduce

  1. Open Codex Plugin UI (Plugins tab)
  2. Install any plugin from the built-in marketplace (e.g., Build Web Apps, Sentry, Superpowers)
  3. Verify plugin appears in plugins cache at ~/.codex/plugins/cache/openai-api-curated/
  4. Restart Codex
  5. Observe: the plugin disappears from cache and is no longer available

Root cause

When plugins are installed through the UI, they are downloaded to ~/.codex/plugins/cache/openai-api-curated/<plugin-name>/, but no corresponding marketplace entry is written to ~/.codex/config.toml.

`openai-curated is a reserved marketplace name that cannot be added via CLI (codex plugin marketplace add https://github.com/openai/plugins` fails with "marketplace 'openai-curated' is reserved").

On restart, the plugin sync process finds cached plugins without a valid marketplace source in config.toml and cleans them up as orphans.

Affected marketplaces

  • openai-curated-remote (binance, data-analytics, figma, github, openai-developers)
  • openai-api-curated (build-web-apps, build-web-data-visualization, circleci, coderabbit, codex-security, sentry, superpowers, mixpanel-headless, etc.)

Expected behavior

Plugins installed through the UI should persist across restarts. The marketplace source should be written to config.toml (or an equivalent persistence mechanism) at install time.

Workaround

  • Plugins from standalone GitHub repos (e.g., agentmemory, circleci-public/skills) work fine when registered via codex plugin marketplace add
  • The 5 plugins from openai-curated-remote can be manually pinned by editing config.toml directly:
[marketplaces."openai-curated"]
source_type = "git"
source = "https://github.com/openai/plugins"

[plugins."github@openai-curated"]
enabled = true
  • However, openai-api-curated plugins have no individual GitHub repos and cannot be registered this way. They can only be re-added via the UI after each restart.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗