Skip to content

Codex marketplace registration succeeds, but Webwright does not appear in /plugins #37

@n-seiji

Description

@n-seiji

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:

./plugins/<plugin-name>

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:

./plugins/webwright

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions