Summary
codex plugin marketplace add microsoft/Webwright succeeds, but Webwright does not appear in codex plugin list or /plugins, so it cannot be installed from the Codex marketplace flow documented in the README.
@n-seiji has reviewed and confirmed all of the issue details below.
Environment
- Repository:
microsoft/Webwright
- Tested upstream commit:
734bc60ea73653498215694d0cc4bc96fbc09e9c
- Codex CLI:
codex-cli 0.134.0
- Date tested: 2026-05-30
Reproduction
codex plugin marketplace add microsoft/Webwright
codex plugin list | rg -i webwright
codex plugin add webwright@webwright
Actual behavior
The marketplace is registered successfully, but no Webwright plugin is listed.
codex plugin add webwright@webwright fails because the plugin cannot be found in the marketplace.
The current repository contains:
.claude-plugin/marketplace.json
.claude-plugin/plugin.json
.codex-plugin/plugin.json
skills/webwright/SKILL.md
but it does not contain a Codex marketplace index at:
.agents/plugins/marketplace.json
Expected behavior
After adding the marketplace, Webwright should appear in codex plugin list and /plugins, and it should be installable with Codex.
Investigation
From the local Codex plugin creator guidance and bundled marketplace examples, Codex repo/team marketplaces are expected to expose a marketplace index at:
.agents/plugins/marketplace.json
The marketplace entries commonly point to plugin roots using:
The plugin root then contains:
.codex-plugin/plugin.json
I also tested more direct root paths such as . and ./, but those did not make the plugin discoverable. This appears related to the Codex behavior discussed in openai/codex#17066, where root plugin source paths are not accepted as expected.
Verified workaround
I verified a fork-based fix using:
.agents/plugins/marketplace.json
plugins/webwright -> ..
The marketplace entry points to:
Because plugins/webwright is a symlink to the repository root, the existing files remain authoritative:
.codex-plugin/plugin.json
skills/webwright/SKILL.md
This avoids duplicating the skills/webwright tree under plugins/webwright/skills/webwright.
With that layout, the following worked locally:
codex plugin marketplace add n-seiji/Webwright
codex plugin list | rg -i webwright
codex plugin add webwright@webwright
The installed cache included:
skills/webwright/SKILL.md
Suggested fix
Add a Codex marketplace index and expose the existing plugin root through a ./plugins/webwright path, for example:
.agents/plugins/marketplace.json
plugins/webwright -> ..
This keeps the existing .codex-plugin/plugin.json and skills/webwright layout intact, while matching the Codex marketplace path convention.
This should not affect the Claude Code plugin path because .claude-plugin/marketplace.json and .claude-plugin/plugin.json remain unchanged.
One tradeoff is that the symlink approach may cause Codex to cache the repository root as the plugin root, rather than a smaller dedicated plugin subdirectory. The benefit is avoiding duplicate skill files and duplicate maintenance.
Summary
codex plugin marketplace add microsoft/Webwrightsucceeds, but Webwright does not appear incodex plugin listor/plugins, so it cannot be installed from the Codex marketplace flow documented in the README.@n-seiji has reviewed and confirmed all of the issue details below.
Environment
microsoft/Webwright734bc60ea73653498215694d0cc4bc96fbc09e9ccodex-cli 0.134.0Reproduction
codex plugin marketplace add microsoft/Webwright codex plugin list | rg -i webwright codex plugin add webwright@webwrightActual behavior
The marketplace is registered successfully, but no Webwright plugin is listed.
codex plugin add webwright@webwrightfails because the plugin cannot be found in the marketplace.The current repository contains:
but it does not contain a Codex marketplace index at:
Expected behavior
After adding the marketplace, Webwright should appear in
codex plugin listand/plugins, and it should be installable with Codex.Investigation
From the local Codex plugin creator guidance and bundled marketplace examples, Codex repo/team marketplaces are expected to expose a marketplace index at:
The marketplace entries commonly point to plugin roots using:
The plugin root then contains:
I also tested more direct root paths such as
.and./, but those did not make the plugin discoverable. This appears related to the Codex behavior discussed in openai/codex#17066, where root plugin source paths are not accepted as expected.Verified workaround
I verified a fork-based fix using:
The marketplace entry points to:
Because
plugins/webwrightis a symlink to the repository root, the existing files remain authoritative:This avoids duplicating the
skills/webwrighttree underplugins/webwright/skills/webwright.With that layout, the following worked locally:
codex plugin marketplace add n-seiji/Webwright codex plugin list | rg -i webwright codex plugin add webwright@webwrightThe installed cache included:
Suggested fix
Add a Codex marketplace index and expose the existing plugin root through a
./plugins/webwrightpath, for example:This keeps the existing
.codex-plugin/plugin.jsonandskills/webwrightlayout intact, while matching the Codex marketplace path convention.This should not affect the Claude Code plugin path because
.claude-plugin/marketplace.jsonand.claude-plugin/plugin.jsonremain unchanged.One tradeoff is that the symlink approach may cause Codex to cache the repository root as the plugin root, rather than a smaller dedicated plugin subdirectory. The benefit is avoiding duplicate skill files and duplicate maintenance.