Skip to content

Local marketplace plugin is enabled but its plugin skills are not exposed in Codex sessions #22078

@alario-tang

Description

@alario-tang

Summary

A local marketplace plugin is enabled and its plugin manifest points to a valid skills directory, but Codex sessions do not expose the plugin's skills. This reproduces in Codex CLI and Codex App after multiple restarts.

This is currently blocking oh-my-codex plugin-mode usage without falling back to legacy skill installation.

Environment

codex-cli 0.130.0
oh-my-codex v0.16.3
macOS / arm64

Expected behavior

When a local marketplace plugin is configured and enabled, Codex should discover and expose the skills declared by the plugin manifest:

{
  "name": "oh-my-codex",
  "version": "0.16.3",
  "skills": "./skills/",
  "mcpServers": "./.mcp.json",
  "apps": "./.app.json"
}

In this case, skills such as team, ralph, deep-interview, ultrawork, wiki, etc. should be visible in a fresh Codex session.

Actual behavior

Only the legacy/user-installed omx-setup skill is visible. The rest of the oh-my-codex plugin skills are not exposed.

A fresh codex exec session shows only these matching skills:

omx-setup
compound-engineering:ce-plan
sophi:use-agent-team

Other plugin skills from non-local/plugin-cache sources, such as compound-engineering:*, sophi:*, browser-use:*, etc., are exposed correctly. The issue appears specific to this local marketplace plugin or its layout/discovery path.

Configuration evidence

Relevant ~/.codex/config.toml entries:

[marketplaces.oh-my-codex-local]
source_type = "local"
source = "/opt/homebrew/lib/node_modules/oh-my-codex"

[plugins."oh-my-codex@oh-my-codex-local"]
enabled = true

The plugin bundle exists and contains a valid manifest:

B=/opt/homebrew/lib/node_modules/oh-my-codex/plugins/oh-my-codex
node -e "const p=require('$B/.codex-plugin/plugin.json'); console.log(JSON.stringify({name:p.name,version:p.version,skills:p.skills,mcpServers:p.mcpServers,apps:p.apps}, null, 2))"

Output:

{
  "name": "oh-my-codex",
  "version": "0.16.3",
  "skills": "./skills/",
  "mcpServers": "./.mcp.json",
  "apps": "./.app.json"
}

The skills are physically present:

find /opt/homebrew/lib/node_modules/oh-my-codex/plugins/oh-my-codex/skills -maxdepth 2 -name SKILL.md | wc -l
# 26

omx doctor also reports the plugin-mode install as healthy:

Resolved setup scope: user
Resolved setup install mode: plugin
[OK] Skills: plugin marketplace oh-my-codex-local registered; OMX skills are supplied by /opt/homebrew/lib/node_modules/oh-my-codex/plugins/oh-my-codex
Results: 15 passed, 0 warnings, 0 failed

Reproduction

  1. Install and configure oh-my-codex in plugin mode.

  2. Ensure the local marketplace and plugin are enabled in ~/.codex/config.toml:

    [marketplaces.oh-my-codex-local]
    source_type = "local"
    source = "/opt/homebrew/lib/node_modules/oh-my-codex"
    
    [plugins."oh-my-codex@oh-my-codex-local"]
    enabled = true
  3. Verify the plugin manifest has skills: "./skills/" and that the skills/*/SKILL.md files exist.

  4. Start a fresh Codex CLI or Codex App session.

  5. Ask the model to list visible skills, or inspect the model-visible skill list.

Observed: oh-my-codex plugin skills are missing.

Local marketplace commands tried

codex plugin marketplace add /opt/homebrew/lib/node_modules/oh-my-codex

Output:

Marketplace `oh-my-codex-local` is already added from /opt/homebrew/lib/node_modules/oh-my-codex.
Installed marketplace root: /opt/homebrew/lib/node_modules/oh-my-codex
codex plugin marketplace upgrade oh-my-codex-local

Output:

Error: marketplace `oh-my-codex-local` is not configured as a Git marketplace

Questions

  1. Are skills from source_type = "local" marketplaces expected to be loaded into Codex sessions?
  2. If yes, is the oh-my-codex local marketplace layout valid for Codex plugin discovery?
  3. Is there a required cache/install step for local marketplace plugins beyond codex plugin marketplace add <local-root> and [plugins."name@marketplace"].enabled = true?
  4. If this is a Codex loader bug, could Codex surface diagnostics explaining why a plugin's declared skills directory was skipped?

Why this matters

oh-my-codex plugin mode intentionally avoids legacy skill installation and relies on Codex plugin discovery for bundled skills. Falling back to legacy mode works around the symptom but defeats the plugin-mode path.

Metadata

Metadata

Assignees

No one assigned

    Labels

    CLIIssues related to the Codex CLIbugSomething isn't workingskillsIssues related to skills

    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