Skip to content

feat: add Codex plugin support without duplicating skills#88

Open
federicobartoli wants to merge 4 commits intoaddyosmani:mainfrom
federicobartoli:feat/codex-plugin-support
Open

feat: add Codex plugin support without duplicating skills#88
federicobartoli wants to merge 4 commits intoaddyosmani:mainfrom
federicobartoli:feat/codex-plugin-support

Conversation

@federicobartoli
Copy link
Copy Markdown
Contributor

@federicobartoli federicobartoli commented Apr 19, 2026

Summary

Make this repo installable as a Codex plugin with a single command, while keeping skills/ as the single source of truth shared with Claude Code. No files are copied, no installer script, no wrapper skills.

codex marketplace add addyosmani/agent-skills

What this adds

  • codex/.codex-plugin/plugin.json — Codex manifest ("skills": "./skills/").
  • codex/skills — git-tracked symlink to ../skills (9 bytes, mode 120000). Keeps the plugin directory self-contained without duplicating any skill content.
  • .agents/plugins/marketplace.json — marketplace entry declaring the plugin at ./codex.
  • docs/codex-setup.md — install and usage guide, including a fallback that replaces the symlink with a local copy for Windows users.

Net change: 4 files, ~78 lines, 0 duplicated skill content.

Why no duplication

Codex and Claude Code share the same SKILL.md format (YAML frontmatter with name + description). The Codex plugin docs define skills as a relative path to a folder; pointing it at the existing skills/ via a symlink means one file serves both platforms.

.claude/commands/ and agents/ stay Claude-specific — Codex natively supports only skills, apps, and MCP servers, so bundling commands/personas inside a Codex plugin isn't meaningful. Codex users invoke skills directly.

Why a codex/ subdirectory

Codex's manifest validator rejects plugins at the marketplace root: source.path must start with ./ and stay inside the marketplace root. codex/ is that subdirectory.

Verified

Tested with codex-cli 0.121.0:

  • codex marketplace add federicobartoli/agent-skills@feat/codex-plugin-support succeeds.
  • Plugin registered in ~/.codex/config.toml, cached under ~/.codex/plugins/cache/agent-skills/.
  • All 21 skills visible in the plugin's Skills list via the Codex UI.

Open to alternatives

If a symlink in the repo is undesirable, I'm happy to switch to either:

  • Restructuregit mv skills codex/skills and point Claude Code's plugin.json at the new path (no symlink, but larger diff moving 21 directories), or
  • Manual step — drop the symlink and document a cp -R skills codex/skills step after git clone (no symlink, but install is no longer a single codex marketplace add).

Just let me know which direction you prefer.

Relation to #82

Lighter-weight alternative to #82 (which adds ~900 lines: installer script, wrapper skills regenerated from .claude/commands/, bundled copies of skills//references//agents/). Same intent; here Codex reads the existing skills/ directly. Happy to defer to whichever direction the maintainer prefers.

Test plan

  • codex marketplace add federicobartoli/agent-skills@feat/codex-plugin-support succeeds
  • Marketplace appears in ~/.codex/config.toml
  • Plugin cache created under ~/.codex/plugins/cache/agent-skills/
  • All 21 skills visible in Codex UI under the plugin's Skills list
  • Skills invokable in chat after UI install (pending maintainer verification)
Screenshot 2026-04-19 alle 16 43 59 Screenshot 2026-04-19 alle 16 45 08 Screenshot 2026-04-19 alle 16 45 18

Next ideas: consider auto-generating (?) or at least avoiding repetition of the manifest; also consider enriching the manifest with marketplace metadata (https://developers.openai.com/codex/plugins/build#marketplace-metadata
).

Register the repo as a Codex plugin so `codex marketplace add addyosmani/agent-skills`
installs it in a single step. The plugin reads the existing `skills/` directory via
a symlink — no files are copied, and `skills/<name>/SKILL.md` remains the single
source of truth shared with Claude Code.

- codex/.codex-plugin/plugin.json — Codex manifest, skills: "./skills/"
- codex/skills → ../skills — symlink so the plugin dir stays self-contained
  while git tracks a single canonical skills/ at the repo root
- .agents/plugins/marketplace.json — local marketplace entry, plugin at ./codex
- docs/codex-setup.md — install and usage guide

Verified end-to-end with codex-cli 0.121.0: skills appear in the plugin's
Skills list after install.
@brandonxiang
Copy link
Copy Markdown

why not to have claude commands like "spec", "plan", "build", "test", "review", "ship" inside codex?

@ryankert01
Copy link
Copy Markdown

support to add skill in codex more smoothly. I personally want to use it.

Comment thread docs/codex-setup.md Outdated
## Install (one command)

```bash
codex marketplace add addyosmani/agent-skills
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I think also need to update readme for QuickStart?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, thank u man, i'll make the change as soon as I can :D

@federicobartoli federicobartoli force-pushed the feat/codex-plugin-support branch 2 times, most recently from e62f2d3 to a66ba51 Compare April 23, 2026 15:29
@federicobartoli federicobartoli force-pushed the feat/codex-plugin-support branch from a66ba51 to 995b819 Compare April 23, 2026 15:29
In Codex CLI 0.122 the marketplace subcommand moved from
`codex marketplace` to `codex plugin marketplace`. Update README and
docs/codex-setup.md so install snippets work on current Codex (verified
on 0.128.0). Keep one historical reference in the v0.122 callout.
@federicobartoli
Copy link
Copy Markdown
Contributor Author

Pushed d70d7a8 to update the install command for Codex CLI v0.122+.

In Codex CLI 0.122 the marketplace subcommand moved from codex marketplace to codex plugin marketplace (verified on 0.128.0). The README and docs/codex-setup.md now use codex plugin marketplace add addyosmani/agent-skills. The plugin manifest and marketplace.json schemas are unchanged — only the user-facing install command was renamed.

Test plan still valid; just substitute the new subcommand:

codex plugin marketplace add federicobartoli/agent-skills@feat/codex-plugin-support

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants