What version of Codex CLI is running?
codex-cli 0.140.0
What subscription do you have?
Not specified.
Which model were you using?
gpt-5.5
What platform is your computer?
Windows x64
What terminal emulator and version are you using (if applicable)?
Windows Terminal, running PowerShell.
Codex doctor report
Codex Doctor v0.140.0 · windows-x86_64
Environment
✓ system en-US
✓ runtime standalone (windows, package <CODEX_HOME>\packages\standalone\releases\0.140.0-x86_64-pc-windows-msvc, bin <CODEX_HOME>\packages\standalone\releases\0.140.0-x86_64-pc-windows-msvc\bin, resources <CODEX_HOME>\packages\standalone\releases\0.140.0-x86_64-pc-windows-msvc\codex-resources, path <CODEX_HOME>\packages\standalone\releases\0.140.0-x86_64-pc-windows-msvc\codex-path)
✓ install consistent
✓ search file exists (bundled)
✓ git git version 2.54.0.windows.1
✓ terminal Windows Terminal · zellij 0.44.3
✓ state databases healthy
✓ threads rollout files and state DB thread inventory agree
Configuration
✓ config loaded
✓ auth auth is configured
✓ mcp 1 server (1 stdio) · 0 disabled
✓ sandbox restricted fs + restricted network · approval OnRequest
Updates
✓ updates update configuration is locally consistent
Connectivity
✓ network no proxy env vars
✓ websocket connected (HTTP 101 Switching Protocols) · 15s timeout
✓ reachability active provider endpoints are reachable over HTTP
Background Server
○ app-server not running (ephemeral mode)
17 ok · 1 idle · 0 warn · 0 fail ok
What issue are you seeing?
Per-plugin enabled = false entries in ~/.codex/config.toml do not suppress remote curated plugin injection in fresh Codex CLI sessions.
My config explicitly disables several remote curated plugins:
[plugins."data-analytics@openai-curated-remote"]
enabled = false
[plugins."figma@openai-curated-remote"]
enabled = false
[plugins."product-design@openai-curated-remote"]
enabled = false
[plugins."public-equity-investing@openai-curated-remote"]
enabled = false
Despite that, a fresh codex exec --ephemeral session still exposes those plugins in the model-visible plugin context:
browser
computer-use
data-analytics
documents
figma
github
pdf
presentations
product-design
public-equity-investing
spreadsheets
This is not stale context from an existing conversation. It reproduces in a new ephemeral CLI session after upgrading from 0.139.0 to 0.140.0.
codex plugin list does not show these remote curated plugins as locally installed/enabled through the regular CLI marketplace path. It only shows the primary runtime plugins as installed/enabled in this environment:
documents@openai-primary-runtime
pdf@openai-primary-runtime
spreadsheets@openai-primary-runtime
presentations@openai-primary-runtime
The remote curated plugin bundles are cached locally under a path like:
<CODEX_HOME>\plugins\cache\openai-curated-remote\
but the user-facing installed plugin list and the per-plugin disabled config do not reflect or control the injected session context.
What steps can reproduce the bug?
-
Use Codex CLI 0.140.0 on Windows with plugins enabled.
-
Add explicit disabled entries for remote curated plugins to ~/.codex/config.toml:
[plugins."data-analytics@openai-curated-remote"]
enabled = false
[plugins."figma@openai-curated-remote"]
enabled = false
[plugins."product-design@openai-curated-remote"]
enabled = false
[plugins."public-equity-investing@openai-curated-remote"]
enabled = false
-
Start a fresh ephemeral session:
codex exec --ephemeral --skip-git-repo-check -C <empty-test-dir> "List the plugins directly visible/injected into this context. Do not run tools. Return only the plugin names, one per line."
-
Observe that the disabled remote curated plugins are still injected:
data-analytics
figma
product-design
public-equity-investing
-
As a control, disable all plugin/app surfaces plus the explicit node_repl MCP server:
codex exec --ephemeral --skip-git-repo-check -C <empty-test-dir> `
-c 'features.plugins=false' `
-c 'features.apps=false' `
-c 'mcp_servers.node_repl.enabled=false' `
"List the plugins directly visible/injected into this context. Do not run tools. Return only the plugin names, one per line. If none are visible, return NONE."
-
Control output:
What is the expected behavior?
If a plugin has this config:
[plugins."plugin-name@marketplace"]
enabled = false
then a fresh Codex session should not inject that plugin's skills/plugin instructions into the model-visible context.
If remote curated plugins are account-synced or controlled by a different identifier than plugin-name@openai-curated-remote, Codex should expose that state clearly in codex plugin list, codex doctor, and documentation, and provide a documented per-host/per-session way to disable each remote curated plugin without turning off all plugins.
Actual behavior
Per-plugin disabled entries appear to be ignored for openai-curated-remote plugin injection. The only reliable workaround found is feature-level disabling:
[features]
plugins = false
apps = false
[mcp_servers.node_repl]
enabled = false
That removes the unwanted remote curated plugin context, but it also disables all plugin/app functionality and is too broad for users who want primary runtime plugins or selected plugins enabled.
Additional information
Related/adjacent issues found before filing:
This report is narrower: it reproduces on codex-cli 0.140.0 with explicit per-plugin enabled = false entries for openai-curated-remote plugins, in fresh codex exec --ephemeral sessions.
What version of Codex CLI is running?
codex-cli 0.140.0
What subscription do you have?
Not specified.
Which model were you using?
gpt-5.5
What platform is your computer?
Windows x64
What terminal emulator and version are you using (if applicable)?
Windows Terminal, running PowerShell.
Codex doctor report
What issue are you seeing?
Per-plugin
enabled = falseentries in~/.codex/config.tomldo not suppress remote curated plugin injection in fresh Codex CLI sessions.My config explicitly disables several remote curated plugins:
Despite that, a fresh
codex exec --ephemeralsession still exposes those plugins in the model-visible plugin context:This is not stale context from an existing conversation. It reproduces in a new ephemeral CLI session after upgrading from
0.139.0to0.140.0.codex plugin listdoes not show these remote curated plugins as locally installed/enabled through the regular CLI marketplace path. It only shows the primary runtime plugins as installed/enabled in this environment:The remote curated plugin bundles are cached locally under a path like:
but the user-facing installed plugin list and the per-plugin disabled config do not reflect or control the injected session context.
What steps can reproduce the bug?
Use Codex CLI
0.140.0on Windows with plugins enabled.Add explicit disabled entries for remote curated plugins to
~/.codex/config.toml:Start a fresh ephemeral session:
Observe that the disabled remote curated plugins are still injected:
As a control, disable all plugin/app surfaces plus the explicit
node_replMCP server:Control output:
What is the expected behavior?
If a plugin has this config:
then a fresh Codex session should not inject that plugin's skills/plugin instructions into the model-visible context.
If remote curated plugins are account-synced or controlled by a different identifier than
plugin-name@openai-curated-remote, Codex should expose that state clearly incodex plugin list,codex doctor, and documentation, and provide a documented per-host/per-session way to disable each remote curated plugin without turning off all plugins.Actual behavior
Per-plugin disabled entries appear to be ignored for
openai-curated-remoteplugin injection. The only reliable workaround found is feature-level disabling:That removes the unwanted remote curated plugin context, but it also disables all plugin/app functionality and is too broad for users who want primary runtime plugins or selected plugins enabled.
Additional information
Related/adjacent issues found before filing:
enabled = falsewere still injected into the request body.This report is narrower: it reproduces on
codex-cli 0.140.0with explicit per-pluginenabled = falseentries foropenai-curated-remoteplugins, in freshcodex exec --ephemeralsessions.