Constraint: Maintainers need repeatable ingestion for external skill repositories with different layouts.\nRejected: Git submodules as the primary mechanism | Codex marketplace installs do not reliably recurse external submodules, and adapters still need layout conversion.\nConfidence: medium\nScope-risk: moderate\nDirective: Add new upstreams through config/external-sources.json and adapter logic rather than hand-copying plugin folders.\nTested: scripts/sync_external_plugins.ps1 -Proxy http://127.0.0.1:18085; scripts/sync_external_plugins.ps1 -Only ui-ux-pro-max -Proxy http://127.0.0.1:18085; python scripts/validate_marketplace.py; validate_plugin.py for superpowers and ui-ux-pro-max; codex plugin add superpowers@eapil-skill-market; codex plugin add ui-ux-pro-max@eapil-skill-market; verified ui-ux-pro-max data/scripts directories in cache.\nNot-tested: Scheduled .gitea workflow execution on git.playones runner.
EAPIL Skill Market
Codex custom plugin marketplace test repository.
Desktop test
In Add plugin marketplace:
- Source:
https://git.playones.com/arechen/EapilSkillMarket.git - Git ref:
main - Sparse path: leave empty
After the marketplace is added, install only the plugin you need from the EAPIL Skill Market marketplace.
If you want to use sparse checkout, enter both paths if the UI allows multiple lines:
.agents
plugins/codex
CLI test
codex plugin marketplace add https://git.playones.com/arechen/EapilSkillMarket.git --ref main
codex plugin add eapil-pdf@eapil-skill-market
Sparse CLI form:
codex plugin marketplace add https://git.playones.com/arechen/EapilSkillMarket.git --ref main --sparse .agents --sparse plugins/codex
codex plugin add eapil-xlsx@eapil-skill-market
For local testing before pushing:
codex plugin marketplace add .
codex plugin add eapil-pptx@eapil-skill-market
Start a new Codex thread after installing so the new skills are loaded into context.
Plugins
eapil-pdfeapil-pptxeapil-xlsxeapil-threejs-animationeapil-threejs-fundamentalseapil-threejs-geometryeapil-threejs-interactioneapil-threejs-lightingeapil-threejs-loaderseapil-threejs-materialseapil-threejs-postprocessingeapil-threejs-shaderseapil-threejs-texturessuperpowersui-ux-pro-max
List available plugins:
codex plugin list --marketplace eapil-skill-market --available
Remove an installed plugin:
codex plugin remove eapil-pdf@eapil-skill-market
External sync
Third-party plugins are configured in config/external-sources.json and synced with:
powershell -ExecutionPolicy Bypass -File .\scripts\sync_external_plugins.ps1
If GitHub access is unstable locally, use the proxy:
powershell -ExecutionPolicy Bypass -File .\scripts\sync_external_plugins.ps1 -Proxy http://127.0.0.1:18085
The sync script currently supports:
codex-plugin: mirrors an upstream Codex plugin repo, used forobra/superpowers.claude-skill: converts one Claude-style skill directory into a Codex plugin, used fornextlevelbuilder/ui-ux-pro-max-skill.
After sync, validate the marketplace:
python scripts\validate_marketplace.py
.gitea/workflows/sync-external-skills.yml is a scheduled workflow prototype for Git-side periodic sync.
Layout
.agents/plugins/marketplace.json
plugins/codex/
.agents/plugins/marketplace.json
plugins/eapil-pdf/
.codex-plugin/plugin.json
skills/pdf/
plugins/eapil-xlsx/
.codex-plugin/plugin.json
skills/xlsx/
plugins/eapil-threejs-fundamentals/
.codex-plugin/plugin.json
skills/threejs-fundamentals/
plugins/superpowers/
.codex-plugin/plugin.json
skills/
plugins/ui-ux-pro-max/
.codex-plugin/plugin.json
skills/ui-ux-pro-max/