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
-
Install and configure oh-my-codex in plugin mode.
-
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
-
Verify the plugin manifest has skills: "./skills/" and that the skills/*/SKILL.md files exist.
-
Start a fresh Codex CLI or Codex App session.
-
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
- Are skills from
source_type = "local" marketplaces expected to be loaded into Codex sessions?
- If yes, is the
oh-my-codex local marketplace layout valid for Codex plugin discovery?
- Is there a required cache/install step for local marketplace plugins beyond
codex plugin marketplace add <local-root> and [plugins."name@marketplace"].enabled = true?
- 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.
Summary
A local marketplace plugin is enabled and its plugin manifest points to a valid
skillsdirectory, 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-codexplugin-mode usage without falling back to legacy skill installation.Environment
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-setupskill is visible. The rest of theoh-my-codexplugin skills are not exposed.A fresh
codex execsession shows only these matching skills: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.tomlentries: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:
omx doctoralso reports the plugin-mode install as healthy:Reproduction
Install and configure
oh-my-codexin plugin mode.Ensure the local marketplace and plugin are enabled in
~/.codex/config.toml:Verify the plugin manifest has
skills: "./skills/"and that theskills/*/SKILL.mdfiles exist.Start a fresh Codex CLI or Codex App session.
Ask the model to list visible skills, or inspect the model-visible skill list.
Observed:
oh-my-codexplugin skills are missing.Local marketplace commands tried
Output:
Output:
Questions
source_type = "local"marketplaces expected to be loaded into Codex sessions?oh-my-codexlocal marketplace layout valid for Codex plugin discovery?codex plugin marketplace add <local-root>and[plugins."name@marketplace"].enabled = true?skillsdirectory was skipped?Why this matters
oh-my-codexplugin 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.