OpenAI Developers plugin is enabled and injects skills even though I never installed it
What version of Codex CLI is running?
codex-cli 0.146.0
What subscription do you have?
ChatGPT Plus
Which model were you using?
gpt-5.6-sol
What platform is your computer?
Darwin 25.5.0 arm64 arm (macOS)
What terminal emulator and version are you using?
VS Code integrated terminal 1.130.0
Codex doctor report
{
"schemaVersion": 1,
"overallStatus": "ok",
"codexVersion": "0.146.0",
"auth": {
"mode": "chatgpt",
"storedChatGPTTokens": true,
"storedApiKey": false
},
"runtime": {
"installMethod": "brew",
"platform": "macos-aarch64"
},
"config": {
"model": "gpt-5.6-sol",
"modelProvider": "openai",
"featureFlagOverrides": "none",
"relevantEnabledFeatures": [
"plugins",
"remote_plugin",
"plugin_sharing",
"skill_search",
"mentions_v2"
]
}
}
What issue are you seeing?
Fresh Codex CLI sessions inject five skills from the remote openai-developers plugin even though I did not knowingly install or enable that plugin in Codex, ChatGPT, or a workspace:
openai-developers:agents-sdk
openai-developers:build-chatgpt-app
openai-developers:chatgpt-app-submission
openai-developers:openai-api-troubleshooting
openai-developers:openai-platform-api-key
There are no matching plugin entries in ~/.codex/config.toml and no repo-local plugin or skill configuration.
More importantly, the app-server's authoritative plugin/installed RPC returns this internally inconsistent row:
{
"id": "openai-developers@openai-curated-remote",
"remotePluginId": "plugin_connector_1p_32dba5a7095c8191adca04ee30276304",
"version": "1.2.3",
"name": "openai-developers",
"source": { "type": "remote" },
"installed": true,
"enabled": true,
"installPolicy": "AVAILABLE",
"installPolicySource": null,
"mustShowInstallationInterstitial": true,
"authPolicy": "ON_INSTALL",
"availability": "AVAILABLE"
}
AVAILABLE, mustShowInstallationInterstitial: true, and ON_INSTALL indicate that explicit installation should still be required, but the same response marks the plugin installed and enabled.
The ordinary codex plugin list output is also confusing because it only shows the local openai-curated marketplace row as not installed, while the separate account-level openai-curated-remote installation is what affects sessions.
What steps can reproduce the bug?
- Ensure there is no
openai-developersplugin entry in~/.codex/config.toml. - Start a fresh interactive
codexsession. - Inspect the model-visible
### Available skillsstartup metadata or the persisted rollout developer message. - Observe the five
openai-developers:*skills loaded from:
``text``
~/.codex/plugins/cache/openai-curated-remote/openai-developers/1.2.3/skills/
- Query app-server
plugin/installedwith experimental API enabled. - Observe the contradictory row above:
installed: trueandenabled: true, but policyAVAILABLE, installation interstitial required, auth on install, and no policy source.
Thread showing the behavior: 019fae0e-6ed8-7d32-a389-fb83eb5a50aa.
What is the expected behavior?
A plugin with installPolicy: AVAILABLE, mustShowInstallationInterstitial: true, and authPolicy: ON_INSTALL should not become installed/enabled or contribute skills to model context until the user completes the installation flow.
The CLI should also present local and remotely synchronized installation state consistently instead of showing not installed in codex plugin list while loading the remote plugin.
Source-code inspection
The following is 100% AI generated: at current main commit 9a6668f674d74b35418fa534b3b6285a315d0765, the observed path is:
fetch_remote_installed_pluginstrusts the account-level installed-plugin endpoint for global, workspace, and user scopes.remote_installed_plugin_to_cache_entrycarries throughenabled, install policy, policy source, interstitial requirement, and auth policy without validating contradictory combinations.remote_installed_plugins_to_configpublishes any returned plugin whose bundle exists in the local cache as effective plugin config.load_plugins_from_layer_stackmerges those remote-installed configs.- Session initialization adds the resulting plugin skill roots to the skills snapshot.
This suggests the incorrect installed state may originate in the plugin-service response, but the CLI currently has no fail-closed handling or diagnostic for this inconsistent policy combination.
Additional information
Related but distinct reports:
- #35128 covers a plugin explicitly installed in ChatGPT becoming active in Codex CLI.
- #26275 covers a plugin explicitly installed on another device appearing in a remote CLI.
- #29450 covers plugins reappearing after users uninstall them.
- #21425 requests separating installed plugin availability from default skill injection.
2 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
The downstream behavior is related, but the trigger differs: #35128 starts with a plugin explicitly installed in ChatGPT and unexpectedly inherited by the CLI. In this report,
openai-developerswas not knowingly installed on any surface, yetplugin/installedreports it as installed/enabled while also reportinginstallPolicy: AVAILABLE,mustShowInstallationInterstitial: true, andauthPolicy: ON_INSTALL.