Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
Adding any Codex plugin whose marketplaceName is not openai-curated (for example openai-bundled for chrome, browser, computer-use, or openai-primary-runtime for documents, spreadsheets, presentations) is rejected by the Codex plugin config schema, even though all three marketplaces are first-party OpenAI marketplaces that ship with Codex.
Steps to reproduce
- Run Openclaw 2026.5.12 with the Codex plugin enabled.
- Edit
~/.openclaw/openclaw.json and add a Codex sub-plugin from the bundled marketplace:
{
"plugins": {
"entries": {
"codex": {
"config": {
"codexPlugins": {
"enabled": true,
"plugins": {
"chrome": {
"marketplaceName": "openai-bundled",
"pluginName": "chrome"
}
}
}
}
}
}
}
}
- Restart the gateway:
openclaw restart.
- Inspect the resolved Codex plugin policy (via
/codex plugins list after the picker work, or by tailing gateway logs at startup).
Expected behavior
chrome (from openai-bundled) and documents (from openai-primary-runtime) should be accepted and surfaced in the resolved Codex plugin policy, the same as any openai-curated plugin like google-calendar. All three marketplaces are owned by OpenAI and ship as first-party sources alongside the Codex CLI and Codex.app, so the openclaw allowlist should reflect that.
Actual behavior
The plugin config schema in extensions/codex/openclaw.plugin.json only enumerates openai-curated, so any other marketplaceName value fails schema validation. The resolved Codex plugin policy is empty or partial, and bundled-only plugins like chrome, browser, computer-use, and primary-runtime plugins like documents, spreadsheets, presentations cannot be enabled through openclaw.json at all.
The same constraint shows up in extensions/codex/src/app-server/config.ts as the single-value constant CODEX_PLUGINS_MARKETPLACE_NAME = "openai-curated", which gates every downstream resolver (plugin-activation.ts, plugin-inventory.ts, session-binding.ts, migration/apply.ts).
OpenClaw version
2026.5.12
Operating system
macOS 15.4 (Apple Silicon)
Install method
npm install -g openclaw (Mac Gateway managed install)
Model
gpt-5.4 via Codex (agentRuntime.id=codex)
Provider / routing chain
openclaw -> @openclaw/codex -> @openai/codex-app-server
Additional provider/model setup details
Codex plugin migration auto-populates plugins.entries.codex.config.codexPlugins.plugins from Codex.app's bundled plugin inventory during openclaw update. Because openai-bundled and openai-primary-runtime entries do not match the schema enum, the migration silently drops them, so the local install ends up with a partial picture of the Codex plugin surface that is actually installed on disk.
Logs, screenshots, and evidence
extensions/codex/openclaw.plugin.json (lines around 114-117):
"marketplaceName": {
"type": "string",
"enum": ["openai-curated"]
}
extensions/codex/src/app-server/config.ts:
export const CODEX_PLUGINS_MARKETPLACE_NAME = "openai-curated";
This constant is referenced in:
- extensions/codex/src/app-server/plugin-activation.ts
- extensions/codex/src/app-server/plugin-inventory.ts
- extensions/codex/src/app-server/session-binding.ts
- extensions/codex/src/migration/apply.ts
For reference, the OpenAI Codex CLI itself lists three marketplaces under `codex plugin marketplace list`:
- openai-curated (remote curated catalog)
- openai-bundled (local bundle that ships with Codex.app: chrome, browser, computer-use, latex-tectonic)
- openai-primary-runtime (Codex primary runtime: documents, spreadsheets, presentations)
Impact and severity
Affected: every Openclaw install that wants to use any Codex sub-plugin outside openai-curated. That includes chrome, browser, computer-use, documents, spreadsheets, presentations.
Severity: Medium. Codex still works for curated plugins, but the bundled and primary-runtime surfaces are completely unreachable from openclaw, even though they are first-party OpenAI plugins.
Frequency: Always (deterministic schema rejection).
Consequence: Users either give up on those plugins or bypass openclaw entirely and edit Codex's own config. Computer-use, the most user-visible of the bundled plugins, becomes impossible to manage from openclaw.json.
Additional information
Fix is straightforward: replace the single-value constant with an allowlist array of the three first-party OpenAI marketplaces, update the schema enum to match, and let the downstream resolvers iterate the allowlist when validating marketplaceName. PR: #82219.
Searched for related issues before filing:
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
Adding any Codex plugin whose
marketplaceNameis notopenai-curated(for exampleopenai-bundledforchrome,browser,computer-use, oropenai-primary-runtimefordocuments,spreadsheets,presentations) is rejected by the Codex plugin config schema, even though all three marketplaces are first-party OpenAI marketplaces that ship with Codex.Steps to reproduce
~/.openclaw/openclaw.jsonand add a Codex sub-plugin from the bundled marketplace:{ "plugins": { "entries": { "codex": { "config": { "codexPlugins": { "enabled": true, "plugins": { "chrome": { "marketplaceName": "openai-bundled", "pluginName": "chrome" } } } } } } } }openclaw restart./codex plugins listafter the picker work, or by tailing gateway logs at startup).Expected behavior
chrome(fromopenai-bundled) anddocuments(fromopenai-primary-runtime) should be accepted and surfaced in the resolved Codex plugin policy, the same as anyopenai-curatedplugin likegoogle-calendar. All three marketplaces are owned by OpenAI and ship as first-party sources alongside the Codex CLI and Codex.app, so the openclaw allowlist should reflect that.Actual behavior
The plugin config schema in
extensions/codex/openclaw.plugin.jsononly enumeratesopenai-curated, so any othermarketplaceNamevalue fails schema validation. The resolved Codex plugin policy is empty or partial, and bundled-only plugins likechrome,browser,computer-use, and primary-runtime plugins likedocuments,spreadsheets,presentationscannot be enabled throughopenclaw.jsonat all.The same constraint shows up in
extensions/codex/src/app-server/config.tsas the single-value constantCODEX_PLUGINS_MARKETPLACE_NAME = "openai-curated", which gates every downstream resolver (plugin-activation.ts,plugin-inventory.ts,session-binding.ts,migration/apply.ts).OpenClaw version
2026.5.12
Operating system
macOS 15.4 (Apple Silicon)
Install method
npm install -g openclaw (Mac Gateway managed install)
Model
gpt-5.4 via Codex (agentRuntime.id=codex)
Provider / routing chain
openclaw -> @openclaw/codex -> @openai/codex-app-server
Additional provider/model setup details
Codex plugin migration auto-populates
plugins.entries.codex.config.codexPlugins.pluginsfrom Codex.app's bundled plugin inventory duringopenclaw update. Becauseopenai-bundledandopenai-primary-runtimeentries do not match the schema enum, the migration silently drops them, so the local install ends up with a partial picture of the Codex plugin surface that is actually installed on disk.Logs, screenshots, and evidence
Impact and severity
Affected: every Openclaw install that wants to use any Codex sub-plugin outside
openai-curated. That includeschrome,browser,computer-use,documents,spreadsheets,presentations.Severity: Medium. Codex still works for curated plugins, but the bundled and primary-runtime surfaces are completely unreachable from openclaw, even though they are first-party OpenAI plugins.
Frequency: Always (deterministic schema rejection).
Consequence: Users either give up on those plugins or bypass openclaw entirely and edit Codex's own config. Computer-use, the most user-visible of the bundled plugins, becomes impossible to manage from
openclaw.json.Additional information
Fix is straightforward: replace the single-value constant with an allowlist array of the three first-party OpenAI marketplaces, update the schema enum to match, and let the downstream resolvers iterate the allowlist when validating
marketplaceName. PR: #82219.Searched for related issues before filing: